List studio outstanding orders
Requires orders:read. Page of unpaid, disputed, unfulfilled, Studio action, production, digital pending or delivery-unconfirmed work. No fabricated whole-Studio count.
curl --request GET \
--url https://api.batchrelay.com/v1/studios/{studio_id}/outstanding-orders \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.batchrelay.com/v1/studios/{studio_id}/outstanding-orders"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.batchrelay.com/v1/studios/{studio_id}/outstanding-orders', 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.batchrelay.com/v1/studios/{studio_id}/outstanding-orders",
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.batchrelay.com/v1/studios/{studio_id}/outstanding-orders"
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.batchrelay.com/v1/studios/{studio_id}/outstanding-orders")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.batchrelay.com/v1/studios/{studio_id}/outstanding-orders")
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{
"coverage": "page",
"is_done": true,
"items": [
{
"athletes": [
{
"id": "<string>",
"name": "<string>"
}
],
"created_at": 123,
"currency": "<string>",
"customer_id": "<string>",
"environment_evidence": "<string>",
"id": "<string>",
"order_code": "<string>",
"outstanding": [
"<string>"
],
"payment_status": "<string>",
"refunded_cents": 123,
"status": "<string>",
"studio_id": "<string>",
"total_paid_cents": 123,
"buyer": {
"masked_email": "<string>",
"name": "<string>"
},
"delivery": {
"coverage": "<string>",
"delivery": {
"downloads": {
"claimed_at": 123,
"link_expires_at": 123,
"opened": true,
"sent_at": 123,
"state": "<string>"
},
"prints": {
"open_studio_tasks": 123,
"shipped_at": 123,
"state": "<string>",
"studio_fulfilled": true
},
"reasons": [
"<string>"
],
"state": "<string>"
},
"fulfillment_status": "<string>",
"order_id": "<string>",
"payment_status": "<string>",
"physical_delivery": "<string>",
"source_updated_at": 123
},
"line_items": [
{
"athlete_id": "<string>",
"athlete_name": "<string>",
"label": "<string>",
"line_total_cents": 123,
"quantity": 123
}
]
}
],
"next_cursor": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Batch Relay scoped API key or an anonymous Test Mode session. Scope names document required capabilities. Anonymous sessions are sandbox-only and do not authorize studio, event, billing, or Live Mode operations.
Headers
Original delegated Clerk OAuth bearer. Go independently verifies signature/current revocation, exact resource audience, allowed OAuth client and action scope. Caller must match attributed API key creator. Never send an unverified subject header.
Untrusted optional analytics hint naming the calling client surface. It never affects authorization, routing, pricing, or behavior.
1 - 100Untrusted optional analytics hint naming the calling client version. It never affects authorization, routing, pricing, or behavior.
1 - 100Untrusted optional analytics hint naming the invocation mode. It never affects authorization, routing, pricing, or behavior.
1 - 100Path Parameters
Opaque public studio_id. Private Convex IDs are rejected.
Query Parameters
1 <= x <= 50curl --request GET \
--url https://api.batchrelay.com/v1/studios/{studio_id}/outstanding-orders \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.batchrelay.com/v1/studios/{studio_id}/outstanding-orders"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.batchrelay.com/v1/studios/{studio_id}/outstanding-orders', 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.batchrelay.com/v1/studios/{studio_id}/outstanding-orders",
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.batchrelay.com/v1/studios/{studio_id}/outstanding-orders"
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.batchrelay.com/v1/studios/{studio_id}/outstanding-orders")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.batchrelay.com/v1/studios/{studio_id}/outstanding-orders")
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{
"coverage": "page",
"is_done": true,
"items": [
{
"athletes": [
{
"id": "<string>",
"name": "<string>"
}
],
"created_at": 123,
"currency": "<string>",
"customer_id": "<string>",
"environment_evidence": "<string>",
"id": "<string>",
"order_code": "<string>",
"outstanding": [
"<string>"
],
"payment_status": "<string>",
"refunded_cents": 123,
"status": "<string>",
"studio_id": "<string>",
"total_paid_cents": 123,
"buyer": {
"masked_email": "<string>",
"name": "<string>"
},
"delivery": {
"coverage": "<string>",
"delivery": {
"downloads": {
"claimed_at": 123,
"link_expires_at": 123,
"opened": true,
"sent_at": 123,
"state": "<string>"
},
"prints": {
"open_studio_tasks": 123,
"shipped_at": 123,
"state": "<string>",
"studio_fulfilled": true
},
"reasons": [
"<string>"
],
"state": "<string>"
},
"fulfillment_status": "<string>",
"order_id": "<string>",
"payment_status": "<string>",
"physical_delivery": "<string>",
"source_updated_at": 123
},
"line_items": [
{
"athlete_id": "<string>",
"athlete_name": "<string>",
"label": "<string>",
"line_total_cents": 123,
"quantity": 123
}
]
}
],
"next_cursor": "<string>"
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}