const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
provider_options: {},
model: '<string>',
prompts: ['<string>'],
items: [{}],
system: '<string>',
max_tokens: 123,
temperature: 123,
input_file_id: '<string>',
requests: [
{
body: JSON.stringify({}),
custom_id: '<string>',
method: 'POST',
url: '<string>'
}
],
completion_window: '<string>',
metadata: {},
session_id: '<string>',
webhook_endpoint_id: '<string>',
debug: {
enabled: true,
return_upstream_request: true,
return_upstream_response: true,
trace: true
},
provider: {
order: ['<string>'],
only: ['<string>'],
ignore: ['<string>'],
include_alpha: true,
allow_fallbacks: true,
require_parameters: true,
required_execution_region: '<string>',
required_data_region: '<string>',
require_zero_data_retention: true,
zdr: true,
enforce_distillable_text: true,
quantizations: ['<string>'],
sort: '<string>',
max_price: {prompt: 123, completion: 123, image: 123, audio: 123, request: 123},
preferred_min_throughput: 123,
preferred_max_latency: 123
}
})
};
fetch('https://api.phaseo.app/v1/batches', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.phaseo.app/v1/batches"
payload = {
"provider_options": {},
"model": "<string>",
"prompts": ["<string>"],
"items": [{}],
"system": "<string>",
"max_tokens": 123,
"temperature": 123,
"input_file_id": "<string>",
"requests": [
{
"body": {},
"custom_id": "<string>",
"method": "POST",
"url": "<string>"
}
],
"completion_window": "<string>",
"metadata": {},
"session_id": "<string>",
"webhook_endpoint_id": "<string>",
"debug": {
"enabled": True,
"return_upstream_request": True,
"return_upstream_response": True,
"trace": True
},
"provider": {
"order": ["<string>"],
"only": ["<string>"],
"ignore": ["<string>"],
"include_alpha": True,
"allow_fallbacks": True,
"require_parameters": True,
"required_execution_region": "<string>",
"required_data_region": "<string>",
"require_zero_data_retention": True,
"zdr": True,
"enforce_distillable_text": True,
"quantizations": ["<string>"],
"sort": "<string>",
"max_price": {
"prompt": 123,
"completion": 123,
"image": 123,
"audio": 123,
"request": 123
},
"preferred_min_throughput": 123,
"preferred_max_latency": 123
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api.phaseo.app/v1/batches \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"provider_options": {},
"model": "<string>",
"prompts": [
"<string>"
],
"items": [
{}
],
"system": "<string>",
"max_tokens": 123,
"temperature": 123,
"input_file_id": "<string>",
"requests": [
{
"body": {},
"custom_id": "<string>",
"method": "POST",
"url": "<string>"
}
],
"completion_window": "<string>",
"metadata": {},
"session_id": "<string>",
"webhook_endpoint_id": "<string>",
"debug": {
"enabled": true,
"return_upstream_request": true,
"return_upstream_response": true,
"trace": true
},
"provider": {
"order": [
"<string>"
],
"only": [
"<string>"
],
"ignore": [
"<string>"
],
"include_alpha": true,
"allow_fallbacks": true,
"require_parameters": true,
"required_execution_region": "<string>",
"required_data_region": "<string>",
"require_zero_data_retention": true,
"zdr": true,
"enforce_distillable_text": true,
"quantizations": [
"<string>"
],
"sort": "<string>",
"max_price": {
"prompt": 123,
"completion": 123,
"image": 123,
"audio": 123,
"request": 123
},
"preferred_min_throughput": 123,
"preferred_max_latency": 123
}
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.phaseo.app/v1/batches"
payload := strings.NewReader("{\n \"provider_options\": {},\n \"model\": \"<string>\",\n \"prompts\": [\n \"<string>\"\n ],\n \"items\": [\n {}\n ],\n \"system\": \"<string>\",\n \"max_tokens\": 123,\n \"temperature\": 123,\n \"input_file_id\": \"<string>\",\n \"requests\": [\n {\n \"body\": {},\n \"custom_id\": \"<string>\",\n \"method\": \"POST\",\n \"url\": \"<string>\"\n }\n ],\n \"completion_window\": \"<string>\",\n \"metadata\": {},\n \"session_id\": \"<string>\",\n \"webhook_endpoint_id\": \"<string>\",\n \"debug\": {\n \"enabled\": true,\n \"return_upstream_request\": true,\n \"return_upstream_response\": true,\n \"trace\": true\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.phaseo.app/v1/batches")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"provider_options\": {},\n \"model\": \"<string>\",\n \"prompts\": [\n \"<string>\"\n ],\n \"items\": [\n {}\n ],\n \"system\": \"<string>\",\n \"max_tokens\": 123,\n \"temperature\": 123,\n \"input_file_id\": \"<string>\",\n \"requests\": [\n {\n \"body\": {},\n \"custom_id\": \"<string>\",\n \"method\": \"POST\",\n \"url\": \"<string>\"\n }\n ],\n \"completion_window\": \"<string>\",\n \"metadata\": {},\n \"session_id\": \"<string>\",\n \"webhook_endpoint_id\": \"<string>\",\n \"debug\": {\n \"enabled\": true,\n \"return_upstream_request\": true,\n \"return_upstream_response\": true,\n \"trace\": true\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.phaseo.app/v1/batches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'provider_options' => [
],
'model' => '<string>',
'prompts' => [
'<string>'
],
'items' => [
[
]
],
'system' => '<string>',
'max_tokens' => 123,
'temperature' => 123,
'input_file_id' => '<string>',
'requests' => [
[
'body' => [
],
'custom_id' => '<string>',
'method' => 'POST',
'url' => '<string>'
]
],
'completion_window' => '<string>',
'metadata' => [
],
'session_id' => '<string>',
'webhook_endpoint_id' => '<string>',
'debug' => [
'enabled' => true,
'return_upstream_request' => true,
'return_upstream_response' => true,
'trace' => true
],
'provider' => [
'order' => [
'<string>'
],
'only' => [
'<string>'
],
'ignore' => [
'<string>'
],
'include_alpha' => true,
'allow_fallbacks' => true,
'require_parameters' => true,
'required_execution_region' => '<string>',
'required_data_region' => '<string>',
'require_zero_data_retention' => true,
'zdr' => true,
'enforce_distillable_text' => true,
'quantizations' => [
'<string>'
],
'sort' => '<string>',
'max_price' => [
'prompt' => 123,
'completion' => 123,
'image' => 123,
'audio' => 123,
'request' => 123
],
'preferred_min_throughput' => 123,
'preferred_max_latency' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.phaseo.app/v1/batches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"provider_options\": {},\n \"model\": \"<string>\",\n \"prompts\": [\n \"<string>\"\n ],\n \"items\": [\n {}\n ],\n \"system\": \"<string>\",\n \"max_tokens\": 123,\n \"temperature\": 123,\n \"input_file_id\": \"<string>\",\n \"requests\": [\n {\n \"body\": {},\n \"custom_id\": \"<string>\",\n \"method\": \"POST\",\n \"url\": \"<string>\"\n }\n ],\n \"completion_window\": \"<string>\",\n \"metadata\": {},\n \"session_id\": \"<string>\",\n \"webhook_endpoint_id\": \"<string>\",\n \"debug\": {\n \"enabled\": true,\n \"return_upstream_request\": true,\n \"return_upstream_response\": true,\n \"trace\": true\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"native_batch_id": "<string>",
"object": "<string>",
"endpoint": "<string>",
"errors": {},
"input_file_id": "<string>",
"completion_window": "<string>",
"status": "<string>",
"lifecycle_status": "pending",
"progress": 50,
"polling_url": "<string>",
"websocket_url": "<string>",
"cancel_url": "<string>",
"results_url": "<string>",
"output_file_id": "<string>",
"error_file_id": "<string>",
"created_at": 123,
"in_progress_at": 123,
"expires_at": 123,
"finalizing_at": 123,
"completed_at": 123,
"failed_at": 123,
"expired_at": 123,
"cancelling_at": 123,
"cancelled_at": 123,
"request_counts": {
"total": 123,
"completed": 123,
"failed": 123
},
"metadata": {},
"request_id": "<string>",
"provider": "<string>",
"session_id": "<string>",
"webhook": {
"url": "<string>",
"events": [
"<string>"
],
"has_secret": true,
"delivery": {
"total_attempts": 123,
"delivered_events": 123,
"delivered_event_types": [
"video.completed"
],
"pending_retries": 123,
"next_retry_at": "<string>",
"last_attempt_at": "<string>",
"last_attempt_status": "delivered",
"last_response_status": 123,
"last_delivered_at": "<string>",
"last_failure_at": "<string>",
"last_error_message": "<string>"
},
"attempts": [
{
"id": "<string>",
"delivery_key": "video.completed",
"event_type": "video.completed",
"status": "delivered",
"attempt_number": 123,
"max_attempts": 123,
"tried_at": "<string>",
"delivered_at": "<string>",
"next_retry_at": "<string>",
"response_status": 123,
"error_message": "<string>",
"response_body_preview": "<string>"
}
]
},
"next_webhook_retry_at": "<string>",
"last_webhook_progress": 123,
"last_webhook_progress_at": "<string>",
"last_webhook_dispatched_at": "<string>",
"finalized_at": "<string>",
"pricing_lines": [
{}
],
"usage": {
"requests": 123,
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"cost_nanos": 123,
"cost_usd": 123,
"currency": "<string>"
},
"billing": {
"currency": "<string>",
"billed": true,
"charged": true,
"reason": "<string>",
"state": "pending",
"reservation_id": "<string>",
"reservation_status": "<string>",
"estimated_provider_cost": "<string>",
"estimated_user_cost": "<string>",
"settled_provider_cost": "<string>",
"settled_user_cost": "<string>",
"estimated_nanos": 123,
"reserved_nanos": 123,
"estimation_truncated": true,
"estimation_sample_size": 123,
"estimation_total_rows": 123,
"total_nanos": 123,
"cost_nanos": 123,
"cost_usd": 123,
"finalized_at": "<string>",
"pricing_breakdown": {}
}
}{
"error": "error_type",
"ok": false,
"message": "Human-readable error message",
"description": "Additional error details.",
"generation_id": "G-abc123",
"status_code": 502,
"error_type": "system",
"error_origin": "upstream",
"reason": "all_candidates_failed",
"attempt_count": 2,
"failed_providers": [
"google-ai-studio",
"openai"
],
"failed_statuses": [
403,
429
],
"upstream_error": {
"code": "PERMISSION_DENIED",
"message": "The caller does not have permission.",
"description": "<string>",
"param": "<string>"
},
"failure_sample": [
{
"provider": "<string>",
"type": "<string>",
"status": 123,
"upstream_error_code": "<string>",
"upstream_error_message": "<string>",
"upstream_error_description": "<string>",
"upstream_error_param": "<string>",
"upstream_payload_preview": "<string>",
"retryable": true
}
],
"provider_failure_diagnostics": {
"category": "credentials_not_configured",
"hint": "<string>",
"provider": "<string>"
},
"routing_diagnostics": {
"filterStages": [
{
"stage": "<string>",
"beforeCount": 123,
"afterCount": 123,
"droppedProviders": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
}
]
},
"provider_candidate_diagnostics": {
"totalProviders": 123,
"supportsEndpointCount": 123,
"candidateCount": 123,
"droppedUnsupportedEndpoint": [
"<string>"
],
"droppedMissingAdapter": [
{
"providerId": "<string>",
"endpoint": "<string>"
}
]
},
"provider_enablement": {
"capability": "<string>",
"providersBefore": [
"<string>"
],
"providersAfter": [
"<string>"
],
"dropped": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
},
"missing_pricing_providers": [
"<string>"
],
"provider_payment_required_provider": "openai",
"provider_payment_required_support_notice": "Our upstream provider billing appears to be unavailable. If this persists, contact support.",
"details": [
{}
]
}Stapel erstellen
Erstellt einen asynchronen Batch-Auftrag und gibt das Batch-Objekt des Anbieters zurück. Über das angefragte model werden OpenAI, Anthropic, Google Gemini, Mistral, xAI, Groq und Together AI unterstützt. Das Gateway leitet den Anbieter aus dem Modell ab und akzeptiert session_id und webhook für Beobachtbarkeit und asynchrone Benachrichtigungen. provider nur als erweiterte Routing-Einschränkung verwenden.
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
provider_options: {},
model: '<string>',
prompts: ['<string>'],
items: [{}],
system: '<string>',
max_tokens: 123,
temperature: 123,
input_file_id: '<string>',
requests: [
{
body: JSON.stringify({}),
custom_id: '<string>',
method: 'POST',
url: '<string>'
}
],
completion_window: '<string>',
metadata: {},
session_id: '<string>',
webhook_endpoint_id: '<string>',
debug: {
enabled: true,
return_upstream_request: true,
return_upstream_response: true,
trace: true
},
provider: {
order: ['<string>'],
only: ['<string>'],
ignore: ['<string>'],
include_alpha: true,
allow_fallbacks: true,
require_parameters: true,
required_execution_region: '<string>',
required_data_region: '<string>',
require_zero_data_retention: true,
zdr: true,
enforce_distillable_text: true,
quantizations: ['<string>'],
sort: '<string>',
max_price: {prompt: 123, completion: 123, image: 123, audio: 123, request: 123},
preferred_min_throughput: 123,
preferred_max_latency: 123
}
})
};
fetch('https://api.phaseo.app/v1/batches', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.phaseo.app/v1/batches"
payload = {
"provider_options": {},
"model": "<string>",
"prompts": ["<string>"],
"items": [{}],
"system": "<string>",
"max_tokens": 123,
"temperature": 123,
"input_file_id": "<string>",
"requests": [
{
"body": {},
"custom_id": "<string>",
"method": "POST",
"url": "<string>"
}
],
"completion_window": "<string>",
"metadata": {},
"session_id": "<string>",
"webhook_endpoint_id": "<string>",
"debug": {
"enabled": True,
"return_upstream_request": True,
"return_upstream_response": True,
"trace": True
},
"provider": {
"order": ["<string>"],
"only": ["<string>"],
"ignore": ["<string>"],
"include_alpha": True,
"allow_fallbacks": True,
"require_parameters": True,
"required_execution_region": "<string>",
"required_data_region": "<string>",
"require_zero_data_retention": True,
"zdr": True,
"enforce_distillable_text": True,
"quantizations": ["<string>"],
"sort": "<string>",
"max_price": {
"prompt": 123,
"completion": 123,
"image": 123,
"audio": 123,
"request": 123
},
"preferred_min_throughput": 123,
"preferred_max_latency": 123
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)curl --request POST \
--url https://api.phaseo.app/v1/batches \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"provider_options": {},
"model": "<string>",
"prompts": [
"<string>"
],
"items": [
{}
],
"system": "<string>",
"max_tokens": 123,
"temperature": 123,
"input_file_id": "<string>",
"requests": [
{
"body": {},
"custom_id": "<string>",
"method": "POST",
"url": "<string>"
}
],
"completion_window": "<string>",
"metadata": {},
"session_id": "<string>",
"webhook_endpoint_id": "<string>",
"debug": {
"enabled": true,
"return_upstream_request": true,
"return_upstream_response": true,
"trace": true
},
"provider": {
"order": [
"<string>"
],
"only": [
"<string>"
],
"ignore": [
"<string>"
],
"include_alpha": true,
"allow_fallbacks": true,
"require_parameters": true,
"required_execution_region": "<string>",
"required_data_region": "<string>",
"require_zero_data_retention": true,
"zdr": true,
"enforce_distillable_text": true,
"quantizations": [
"<string>"
],
"sort": "<string>",
"max_price": {
"prompt": 123,
"completion": 123,
"image": 123,
"audio": 123,
"request": 123
},
"preferred_min_throughput": 123,
"preferred_max_latency": 123
}
}
'package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.phaseo.app/v1/batches"
payload := strings.NewReader("{\n \"provider_options\": {},\n \"model\": \"<string>\",\n \"prompts\": [\n \"<string>\"\n ],\n \"items\": [\n {}\n ],\n \"system\": \"<string>\",\n \"max_tokens\": 123,\n \"temperature\": 123,\n \"input_file_id\": \"<string>\",\n \"requests\": [\n {\n \"body\": {},\n \"custom_id\": \"<string>\",\n \"method\": \"POST\",\n \"url\": \"<string>\"\n }\n ],\n \"completion_window\": \"<string>\",\n \"metadata\": {},\n \"session_id\": \"<string>\",\n \"webhook_endpoint_id\": \"<string>\",\n \"debug\": {\n \"enabled\": true,\n \"return_upstream_request\": true,\n \"return_upstream_response\": true,\n \"trace\": true\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.phaseo.app/v1/batches")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"provider_options\": {},\n \"model\": \"<string>\",\n \"prompts\": [\n \"<string>\"\n ],\n \"items\": [\n {}\n ],\n \"system\": \"<string>\",\n \"max_tokens\": 123,\n \"temperature\": 123,\n \"input_file_id\": \"<string>\",\n \"requests\": [\n {\n \"body\": {},\n \"custom_id\": \"<string>\",\n \"method\": \"POST\",\n \"url\": \"<string>\"\n }\n ],\n \"completion_window\": \"<string>\",\n \"metadata\": {},\n \"session_id\": \"<string>\",\n \"webhook_endpoint_id\": \"<string>\",\n \"debug\": {\n \"enabled\": true,\n \"return_upstream_request\": true,\n \"return_upstream_response\": true,\n \"trace\": true\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}")
.asString();<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.phaseo.app/v1/batches",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'provider_options' => [
],
'model' => '<string>',
'prompts' => [
'<string>'
],
'items' => [
[
]
],
'system' => '<string>',
'max_tokens' => 123,
'temperature' => 123,
'input_file_id' => '<string>',
'requests' => [
[
'body' => [
],
'custom_id' => '<string>',
'method' => 'POST',
'url' => '<string>'
]
],
'completion_window' => '<string>',
'metadata' => [
],
'session_id' => '<string>',
'webhook_endpoint_id' => '<string>',
'debug' => [
'enabled' => true,
'return_upstream_request' => true,
'return_upstream_response' => true,
'trace' => true
],
'provider' => [
'order' => [
'<string>'
],
'only' => [
'<string>'
],
'ignore' => [
'<string>'
],
'include_alpha' => true,
'allow_fallbacks' => true,
'require_parameters' => true,
'required_execution_region' => '<string>',
'required_data_region' => '<string>',
'require_zero_data_retention' => true,
'zdr' => true,
'enforce_distillable_text' => true,
'quantizations' => [
'<string>'
],
'sort' => '<string>',
'max_price' => [
'prompt' => 123,
'completion' => 123,
'image' => 123,
'audio' => 123,
'request' => 123
],
'preferred_min_throughput' => 123,
'preferred_max_latency' => 123
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.phaseo.app/v1/batches")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"provider_options\": {},\n \"model\": \"<string>\",\n \"prompts\": [\n \"<string>\"\n ],\n \"items\": [\n {}\n ],\n \"system\": \"<string>\",\n \"max_tokens\": 123,\n \"temperature\": 123,\n \"input_file_id\": \"<string>\",\n \"requests\": [\n {\n \"body\": {},\n \"custom_id\": \"<string>\",\n \"method\": \"POST\",\n \"url\": \"<string>\"\n }\n ],\n \"completion_window\": \"<string>\",\n \"metadata\": {},\n \"session_id\": \"<string>\",\n \"webhook_endpoint_id\": \"<string>\",\n \"debug\": {\n \"enabled\": true,\n \"return_upstream_request\": true,\n \"return_upstream_response\": true,\n \"trace\": true\n },\n \"provider\": {\n \"order\": [\n \"<string>\"\n ],\n \"only\": [\n \"<string>\"\n ],\n \"ignore\": [\n \"<string>\"\n ],\n \"include_alpha\": true,\n \"allow_fallbacks\": true,\n \"require_parameters\": true,\n \"required_execution_region\": \"<string>\",\n \"required_data_region\": \"<string>\",\n \"require_zero_data_retention\": true,\n \"zdr\": true,\n \"enforce_distillable_text\": true,\n \"quantizations\": [\n \"<string>\"\n ],\n \"sort\": \"<string>\",\n \"max_price\": {\n \"prompt\": 123,\n \"completion\": 123,\n \"image\": 123,\n \"audio\": 123,\n \"request\": 123\n },\n \"preferred_min_throughput\": 123,\n \"preferred_max_latency\": 123\n }\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"native_batch_id": "<string>",
"object": "<string>",
"endpoint": "<string>",
"errors": {},
"input_file_id": "<string>",
"completion_window": "<string>",
"status": "<string>",
"lifecycle_status": "pending",
"progress": 50,
"polling_url": "<string>",
"websocket_url": "<string>",
"cancel_url": "<string>",
"results_url": "<string>",
"output_file_id": "<string>",
"error_file_id": "<string>",
"created_at": 123,
"in_progress_at": 123,
"expires_at": 123,
"finalizing_at": 123,
"completed_at": 123,
"failed_at": 123,
"expired_at": 123,
"cancelling_at": 123,
"cancelled_at": 123,
"request_counts": {
"total": 123,
"completed": 123,
"failed": 123
},
"metadata": {},
"request_id": "<string>",
"provider": "<string>",
"session_id": "<string>",
"webhook": {
"url": "<string>",
"events": [
"<string>"
],
"has_secret": true,
"delivery": {
"total_attempts": 123,
"delivered_events": 123,
"delivered_event_types": [
"video.completed"
],
"pending_retries": 123,
"next_retry_at": "<string>",
"last_attempt_at": "<string>",
"last_attempt_status": "delivered",
"last_response_status": 123,
"last_delivered_at": "<string>",
"last_failure_at": "<string>",
"last_error_message": "<string>"
},
"attempts": [
{
"id": "<string>",
"delivery_key": "video.completed",
"event_type": "video.completed",
"status": "delivered",
"attempt_number": 123,
"max_attempts": 123,
"tried_at": "<string>",
"delivered_at": "<string>",
"next_retry_at": "<string>",
"response_status": 123,
"error_message": "<string>",
"response_body_preview": "<string>"
}
]
},
"next_webhook_retry_at": "<string>",
"last_webhook_progress": 123,
"last_webhook_progress_at": "<string>",
"last_webhook_dispatched_at": "<string>",
"finalized_at": "<string>",
"pricing_lines": [
{}
],
"usage": {
"requests": 123,
"input_tokens": 123,
"output_tokens": 123,
"total_tokens": 123,
"cost_nanos": 123,
"cost_usd": 123,
"currency": "<string>"
},
"billing": {
"currency": "<string>",
"billed": true,
"charged": true,
"reason": "<string>",
"state": "pending",
"reservation_id": "<string>",
"reservation_status": "<string>",
"estimated_provider_cost": "<string>",
"estimated_user_cost": "<string>",
"settled_provider_cost": "<string>",
"settled_user_cost": "<string>",
"estimated_nanos": 123,
"reserved_nanos": 123,
"estimation_truncated": true,
"estimation_sample_size": 123,
"estimation_total_rows": 123,
"total_nanos": 123,
"cost_nanos": 123,
"cost_usd": 123,
"finalized_at": "<string>",
"pricing_breakdown": {}
}
}{
"error": "error_type",
"ok": false,
"message": "Human-readable error message",
"description": "Additional error details.",
"generation_id": "G-abc123",
"status_code": 502,
"error_type": "system",
"error_origin": "upstream",
"reason": "all_candidates_failed",
"attempt_count": 2,
"failed_providers": [
"google-ai-studio",
"openai"
],
"failed_statuses": [
403,
429
],
"upstream_error": {
"code": "PERMISSION_DENIED",
"message": "The caller does not have permission.",
"description": "<string>",
"param": "<string>"
},
"failure_sample": [
{
"provider": "<string>",
"type": "<string>",
"status": 123,
"upstream_error_code": "<string>",
"upstream_error_message": "<string>",
"upstream_error_description": "<string>",
"upstream_error_param": "<string>",
"upstream_payload_preview": "<string>",
"retryable": true
}
],
"provider_failure_diagnostics": {
"category": "credentials_not_configured",
"hint": "<string>",
"provider": "<string>"
},
"routing_diagnostics": {
"filterStages": [
{
"stage": "<string>",
"beforeCount": 123,
"afterCount": 123,
"droppedProviders": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
}
]
},
"provider_candidate_diagnostics": {
"totalProviders": 123,
"supportsEndpointCount": 123,
"candidateCount": 123,
"droppedUnsupportedEndpoint": [
"<string>"
],
"droppedMissingAdapter": [
{
"providerId": "<string>",
"endpoint": "<string>"
}
]
},
"provider_enablement": {
"capability": "<string>",
"providersBefore": [
"<string>"
],
"providersAfter": [
"<string>"
],
"dropped": [
{
"providerId": "<string>",
"reason": "<string>"
}
]
},
"missing_pricing_providers": [
"<string>"
],
"provider_payment_required_provider": "openai",
"provider_payment_required_support_notice": "Our upstream provider billing appears to be unavailable. If this persists, contact support.",
"details": [
{}
]
}Autorisierungen
Authentifizierung mit Bearer-Token
Body
Erweiterungen nach kanonischer Anbieter-ID. OpenAI akzeptiert output_expires_after; Mistral akzeptiert metadata. Nur Optionen des gewählten Anbieters werden angewandt. Optionen nicht auf oberster Ebene duplizieren. Optionen dürfen bepreiste Zeilen, Modelle oder Dateien nicht überschreiben.
Show child attributes
Show child attributes
Modell-ID zum Ableiten des Batch-Anbieters. Anfragezeilen können auch body.model enthalten; das Modell auf oberster Ebene wird bevorzugt.
Kurzform für einfache Prompts. Phaseo wandelt jeden Prompt in eine anbietereigene Batch-Zeile für das gewählte Modell um.
Kurzform für strukturierte Prompts. Einträge können id, custom_id, prompt, messages, input, system, max_tokens, temperature oder einen erweiterten body enthalten.
Optionale Systemanweisung für Prompt-Kurzformzeilen.
Optionales maximales Tokenlimit für Prompt-Kurzformzeilen.
Optionale Sampling-Temperatur für Prompt-Kurzformzeilen.
Vorhandene Anbieter-Datei-ID zur Batch-Erstellung per Datei-Upload.
Erweiterte Batch-Anfragezeilen. Genau eines von prompts, items, requests oder input_file_id angeben.
Show child attributes
Show child attributes
Anfrageformat für den Aufrufer. Jede Anfrage eines Batches verwendet diesen Endpunkt. Ohne Angabe wählt Phaseo anhand des Modells einen anbietereigenen Standard.
/v1/chat/completions, /v1/responses, /v1/messages, /v1/embeddings, /v1/generateContent Eindeutige Kennung, um zusammengehörige Anfragen (zum Beispiel eine Unterhaltung oder einen Agenten-Workflow) für die Beobachtbarkeit zu gruppieren.
256Show child attributes
Show child attributes
Praktischer Alias für webhook.endpoint_id.
Gateway-Debug-Steuerungen. Diese Flags werden niemals an den Anbieter weitergeleitet.
Show child attributes
Show child attributes
Erweiterte Routing-Einschränkung. Die meisten Anfragen sollten die modellbasierte Anbieterableitung nutzen.
Show child attributes
Show child attributes
Antwort
Batch-Statusantwort
Anbietereigene Batch-ID, wenn sie von der Gateway-ID abweicht.
Normalisierter asynchroner Lebenszyklusstatus für Polling-, WebSocket- und Webhook-Empfänger.
pending, running, completed, failed, cancelled, expired Grober Batch-Abschlussprozentsatz aus den Anfragezahlen des Anbieters, sofern verfügbar. Abgeschlossene Batches melden 100.
0 <= x <= 100WebSocket-URL zum Abonnieren normalisierter Lebenszyklusaktualisierungen asynchroner Aufträge.
Für Kompatibilität reserviert; derzeit immer null.
Authentifizierte Phaseo-JSONL-Download-URL für unterstützte Batches im Endstatus. Während der Verarbeitung null. Ein finaler Batch kann ohne Ausgabe sein. API-Schlüssel des besitzenden Workspaces verwenden; Aufbewahrungsfristen des Anbieters gelten.
Show child attributes
Show child attributes
Bereinigte asynchrone Webhook-Konfiguration und Zustellstatus. Geheimnisse werden nie zurückgegeben; has_secret zeigt an, ob signierte Zustellungen aktiviert sind. Signierte Zustellungen enthalten die Header x-phaseo-signature, x-phaseo-timestamp, x-phaseo-event-id, x-phaseo-event-type, x-phaseo-delivery-key, x-phaseo-attempt und x-phaseo-max-attempts.
Show child attributes
Show child attributes
Normalisierte Gesamtnutzung und Gesamtkosten nach Abschluss.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
War diese Seite hilfreich?