curl --request GET \
--url https://gateway.errorbar.ai/v1/reward/sessions/{id}/environment \
--header 'Authorization: Bearer <token>'import requests
url = "https://gateway.errorbar.ai/v1/reward/sessions/{id}/environment"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://gateway.errorbar.ai/v1/reward/sessions/{id}/environment', 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://gateway.errorbar.ai/v1/reward/sessions/{id}/environment",
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://gateway.errorbar.ai/v1/reward/sessions/{id}/environment"
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://gateway.errorbar.ai/v1/reward/sessions/{id}/environment")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://gateway.errorbar.ai/v1/reward/sessions/{id}/environment")
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{
"bundle_v": 123,
"kind": "errorbar.reward_environment",
"issued_at": "2023-11-07T05:31:56Z",
"session": {
"id": "<string>",
"status": "<string>",
"agentic": true,
"label": "<string>",
"created_at": "<string>",
"expires_at": "<string>",
"held": true,
"pinned_step": "<string>"
},
"reward": {
"mode": "single",
"criterionId": "<string>"
},
"grader": {
"criteria": [
{}
],
"certificates": [
{}
],
"assertions": [
{}
]
},
"anchor": {},
"tools": [
{
"name": "<string>",
"read_only": true,
"max_calls_per_episode": 123
}
],
"tasks": [
{
"goal": [
{
"role": "<string>",
"content": "<string>"
}
],
"image": "<string>",
"verifier": [
{
"command": "<string>",
"timeout_sec": 123
}
]
}
],
"task_count": 123,
"endpoints": {},
"adapters": {
"trl": "<string>",
"verifiers": "<string>"
},
"signature": {}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "Invalid API key",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}Export the environment bundle
The grader, packaged: reward spec, each judge’s calibration certificate, deterministic assertions, declared env tools (names only — never endpoint URLs or auth), the session’s stored tasks, the anchor and its hold state, and adapter snippets for TRL and verifiers. Signed with the same key as eval evidence bundles; verify with POST /v1/verify. format=tasks returns just tasks.jsonl — one task per line in the shape rl/omnia_grpo/tasks.py and OpenEnv-style loaders read.
curl --request GET \
--url https://gateway.errorbar.ai/v1/reward/sessions/{id}/environment \
--header 'Authorization: Bearer <token>'import requests
url = "https://gateway.errorbar.ai/v1/reward/sessions/{id}/environment"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://gateway.errorbar.ai/v1/reward/sessions/{id}/environment', 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://gateway.errorbar.ai/v1/reward/sessions/{id}/environment",
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://gateway.errorbar.ai/v1/reward/sessions/{id}/environment"
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://gateway.errorbar.ai/v1/reward/sessions/{id}/environment")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://gateway.errorbar.ai/v1/reward/sessions/{id}/environment")
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{
"bundle_v": 123,
"kind": "errorbar.reward_environment",
"issued_at": "2023-11-07T05:31:56Z",
"session": {
"id": "<string>",
"status": "<string>",
"agentic": true,
"label": "<string>",
"created_at": "<string>",
"expires_at": "<string>",
"held": true,
"pinned_step": "<string>"
},
"reward": {
"mode": "single",
"criterionId": "<string>"
},
"grader": {
"criteria": [
{}
],
"certificates": [
{}
],
"assertions": [
{}
]
},
"anchor": {},
"tools": [
{
"name": "<string>",
"read_only": true,
"max_calls_per_episode": 123
}
],
"tasks": [
{
"goal": [
{
"role": "<string>",
"content": "<string>"
}
],
"image": "<string>",
"verifier": [
{
"command": "<string>",
"timeout_sec": 123
}
]
}
],
"task_count": 123,
"endpoints": {},
"adapters": {
"trl": "<string>",
"verifiers": "<string>"
},
"signature": {}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "Invalid API key",
"type": "invalid_request_error",
"code": "invalid_api_key"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}{
"error": {
"message": "<string>",
"type": "<string>",
"code": "<string>"
}
}Authorizations
Your workspace API key, e.g. sk_sovereign_..., sent as Authorization: Bearer <key>.
Path Parameters
Query Parameters
bundle (default, JSON) or tasks (JSONL).
bundle, tasks Response
The signed bundle, or tasks.jsonl when format=tasks.
Signed (HS256 over canonical JSON; signature: null + unsigned: true when the deployment has no signing key).
errorbar.reward_environment Show child attributes
Show child attributes
- Option 1
- Option 2
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes