List benchmarks
curl --request GET \
--url https://api.benchgen.com/api/competitions/public/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.benchgen.com/api/competitions/public/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.benchgen.com/api/competitions/public/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.benchgen.com/api/competitions/public/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.benchgen.com/api/competitions/public/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.benchgen.com/api/competitions/public/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.benchgen.com/api/competitions/public/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"next": "https://benchgen.com/benchgen-platform/api/competitions/public/?page=2",
"previous": null,
"count": 283,
"page_size": 20,
"results": [
{
"id": 329,
"title": "WMT25",
"slug": "wmt25",
"created_by": "platform",
"owner_display_name": "platform",
"created_when": "2026-08-31T15:43:44.457868+03:00",
"published": true,
"participants_count": 1,
"logo": null,
"logo_icon": null,
"description": "WMT's annual General Machine Translation shared task, human-evaluation test sets, 12 translation directions. Metric: XCOMET-XXL (0-100).",
"competition_type": "competition",
"reward": "",
"contact_email": "",
"report": "superadmin",
"organization_name": "WMT",
"is_featured": false,
"display_order": 0,
"submissions_count": 3,
"has_files": false
}
]
}{
"detail": "Authentication required for filtering by participating in or organizing."
}Public endpoints
List benchmarks
Returns published benchmarks (competitions). This is the platform’s own public listing action, no authentication required.
GET
/
api
/
competitions
/
public
/
List benchmarks
curl --request GET \
--url https://api.benchgen.com/api/competitions/public/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.benchgen.com/api/competitions/public/"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.benchgen.com/api/competitions/public/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.benchgen.com/api/competitions/public/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.benchgen.com/api/competitions/public/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.benchgen.com/api/competitions/public/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.benchgen.com/api/competitions/public/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"next": "https://benchgen.com/benchgen-platform/api/competitions/public/?page=2",
"previous": null,
"count": 283,
"page_size": 20,
"results": [
{
"id": 329,
"title": "WMT25",
"slug": "wmt25",
"created_by": "platform",
"owner_display_name": "platform",
"created_when": "2026-08-31T15:43:44.457868+03:00",
"published": true,
"participants_count": 1,
"logo": null,
"logo_icon": null,
"description": "WMT's annual General Machine Translation shared task, human-evaluation test sets, 12 translation directions. Metric: XCOMET-XXL (0-100).",
"competition_type": "competition",
"reward": "",
"contact_email": "",
"report": "superadmin",
"organization_name": "WMT",
"is_featured": false,
"display_order": 0,
"submissions_count": 3,
"has_files": false
}
]
}{
"detail": "Authentication required for filtering by participating in or organizing."
}Authorizations
Platform API token created under Profile Settings > Platform API tokens. Scopes are fixed at creation.
Query Parameters
Filter by title, case-insensitive substring match.
Sort order. Defaults to recent when omitted or invalid.
Available options:
recent, popular, with_most_submissions, oldest When true, only include benchmarks with a non-empty reward field.
When true, only include benchmarks the caller is an approved participant in. Requires authentication, returns 401 for anonymous callers.
When true, only include benchmarks the caller created or collaborates on. Requires authentication, returns 401 for anonymous callers.
Page number, 1-indexed.
Results per page.
Required range:
x <= 1000Last modified on September 10, 2026