Get model schema
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://api.ai.wpengine.com/v1/models/anthropic/claude-haiku-4-5/schema"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://api.ai.wpengine.com/v1/models/anthropic/claude-haiku-4-5/schema';const options = {method: 'GET'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://api.ai.wpengine.com/v1/models/anthropic/claude-haiku-4-5/schema');
echo $response->getBody();curl --request GET \ --url https://api.ai.wpengine.com/v1/models/anthropic/claude-haiku-4-5/schemaReturns the generated request (input) and response (output) JSON Schemas for a single model. The model ID is namespaced as “owner/name”, where owner is the model’s vendor (anthropic, google, …). The schemas describe the chat completion contract, so only chat-capable models are served; unknown or non-chat models return 404. No authentication is required.
Authorizations
Section titled “Authorizations”- None
Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Owner (vendor) segment of the namespaced model ID.
Example
anthropicModel-name segment of the namespaced model ID.
Example
claude-haiku-4-5Responses
Section titled “Responses”Generated input and output JSON Schemas for the model
Per-model JSON Schemas. input_schema validates a chat completion request body for this model (with model-specific parameter constraints baked in); output_schema describes the chat completion response. Both are JSON Schema 2020-12 documents emitted as free-form objects.
object
The namespaced model ID the schemas were generated for.
JSON Schema (2020-12) for the chat completion request body.
object
JSON Schema (2020-12) for the chat completion response body.
object
Example
{ "id": "anthropic/claude-haiku-4-5"}Invalid request body or parameters. On agent create and update, error type “profile_unavailable” means the requested profile is not available to the caller.
object
object
Stable, machine-readable cause, set by routes that document their codes (the AI readiness and account AI routes, and an entitlement_required refusal, where it is one of not_eligible, terms_required, not_enabled or suspended); absent elsewhere and on errors from shared layers such as authentication. Clients must allow new codes.
Where the customer can resolve the error, set when one is configured on an entitlement_required refusal that has an error_code, and on a 402 insufficient_credits refusal (the credit purchase page).
Correlation ID for this request, matching the X-Request-ID response header — a 32-character trace ID behind the load balancer, otherwise a UUID. Quote it in support reports.
Example
{ "error": { "type": "invalid_request_error", "request_id": "80f1e2c3a4b5c6d7e8f9a0b1c2d3e4f5" }}The requested resource was not found
object
object
Stable, machine-readable cause, set by routes that document their codes (the AI readiness and account AI routes, and an entitlement_required refusal, where it is one of not_eligible, terms_required, not_enabled or suspended); absent elsewhere and on errors from shared layers such as authentication. Clients must allow new codes.
Where the customer can resolve the error, set when one is configured on an entitlement_required refusal that has an error_code, and on a 402 insufficient_credits refusal (the credit purchase page).
Correlation ID for this request, matching the X-Request-ID response header — a 32-character trace ID behind the load balancer, otherwise a UUID. Quote it in support reports.
Example
{ "error": { "type": "invalid_request_error", "request_id": "80f1e2c3a4b5c6d7e8f9a0b1c2d3e4f5" }}Rate limit exceeded. The request was throttled at the edge; wait and retry later. The response body is a short HTML page generated by the load balancer, not a structured JSON error — clients should rely on the 429 status code rather than parsing the body.