{"openapi":"3.0.3","externalDocs":{"description":"AI agent integration guide: prerequisites, implementation and acceptance criteria","url":"https://orbiprediction.com/integration-agent.md"},"info":{"title":"OrbiPrediction — Integration API","version":"1.1.0","description":"B2B iframe integration. Simulation only: fictitious credits; no deposits, withdrawals or wallet callbacks. API keys are server-side secrets. Launch links expire in 120 seconds and are single-use. Aggregator API supports isolated customer provisioning and delegated launches. 120 requests/minute per aggregator across all keys, plus the shared 240/minute/IP limit. No CORS. Keys are hashed at rest; full secrets appear only at issuance."},"servers":[{"url":"https://orbiprediction.com"}],"paths":{"/api/v1/me":{"get":{"operationId":"getClient","summary":"Validate API key and inspect client configuration","security":[{"ApiKey":[]}],"responses":{"200":{"description":"Authenticated client","content":{"application/json":{"schema":{"type":"object","properties":{"clientId":{"type":"string","format":"uuid"},"name":{"type":"string"},"status":{"type":"string","enum":["active"]},"allowedOrigins":{"type":"array","items":{"type":"string","format":"uri"}},"mode":{"type":"string","enum":["simulation"]},"apiVersion":{"type":"string","enum":["v1"]}}}}}},"401":{"description":"Erro de validação ou autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Erro de validação ou autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Erro de validação ou autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/launch":{"post":{"operationId":"createLaunch","summary":"Create a single-use player iframe URL","security":[{"ApiKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"16–100 alphanumeric, hyphen or underscore characters. UUID recommended. Reuse only to retry an identical unconsumed launch within its 120-second lifetime.","schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{16,100}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchRequest"}}}},"responses":{"201":{"description":"Launch URL created or identical pending launch returned","headers":{"X-Request-Id":{"schema":{"type":"string","format":"uuid"}}},"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchResponse"}}}},"400":{"description":"Erro de validação ou autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Erro de validação ou autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Erro de validação ou autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Erro de validação ou autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Erro de validação ou autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Erro de validação ou autenticação","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/aggregator/me":{"get":{"operationId":"getAggregator","summary":"Inspect your aggregator and key scopes (clients:read)","security":[{"AggregatorKey":[]}],"responses":{"200":{"description":"Authenticated aggregator","content":{"application/json":{"schema":{"type":"object","properties":{"aggregator":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"name":{"type":"string"},"status":{"type":"string","enum":["active","suspended","archived"]}}},"scopes":{"type":"array","items":{"type":"string"}},"mode":{"type":"string","enum":["simulation"]}}}}}},"400":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait."}}}}}},"/api/v1/aggregator/clients":{"get":{"operationId":"listAggregatorClients","summary":"List only your clients (clients:read)","security":[{"AggregatorKey":[]}],"parameters":[{"name":"page","in":"query","schema":{"type":"integer","minimum":1,"maximum":100000,"default":1}},{"name":"externalClientId","in":"query","schema":{"type":"string","maxLength":128},"description":"Exact filter, scoped to your aggregator."}],"responses":{"200":{"description":"Page of clients","content":{"application/json":{"schema":{"type":"object","properties":{"clients":{"type":"array","items":{"$ref":"#/components/schemas/AggregatorClient"}},"total":{"type":"integer"},"page":{"type":"integer"},"pageSize":{"type":"integer","enum":[50]}}}}}},"400":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait."}}}}},"post":{"operationId":"provisionAggregatorClient","summary":"Provision an isolated client (clients:write)","description":"Atomic creation. The same aggregator + Idempotency-Key + normalized body returns the original public response with created:false and HTTP 200. Records persist without automatic expiry. Reusing the key with different content returns 409. A new key with an existing externalClientId returns 409 EXTERNAL_CLIENT_EXISTS; look up the existing client. No passwords or customer keys are created or returned.","security":[{"AggregatorKey":[]}],"parameters":[{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{16,100}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionClientRequest"}}}},"responses":{"200":{"description":"Idempotent replay of original public configuration; use GET for current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionClientResponse"}}}},"201":{"description":"Client created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProvisionClientResponse"}}}},"400":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait."}}}}}},"/api/v1/aggregator/clients/{clientId}":{"get":{"operationId":"getAggregatorClient","summary":"Read one owned client (clients:read)","security":[{"AggregatorKey":[]}],"parameters":[{"name":"clientId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Current client configuration. Foreign or absent clients both return 404.","content":{"application/json":{"schema":{"type":"object","properties":{"client":{"$ref":"#/components/schemas/AggregatorClient"}},"required":["client"]}}}},"400":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait."}}}}},"patch":{"operationId":"updateAggregatorClient","summary":"Update one owned client (clients:write)","description":"Ownership and externalClientId are immutable. Only supplied properties change; branding is a complete object. A platform suspension cannot be cleared by the aggregator.","security":[{"AggregatorKey":[]}],"parameters":[{"name":"clientId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAggregatorClientRequest"}}}},"responses":{"200":{"description":"Updated client","content":{"application/json":{"schema":{"type":"object","properties":{"client":{"$ref":"#/components/schemas/AggregatorClient"}},"required":["client"]}}}},"400":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait."}}}}}},"/api/v1/aggregator/clients/{clientId}/launch":{"post":{"operationId":"createAggregatorClientLaunch","summary":"Open an owned client player session (launch:write)","description":"Backend must resolve clientId from trusted casino membership and externalUserId from the authenticated player session. Never accept an arbitrary clientId from a public browser. Same 120-second, single-use launch contract as the direct client API.","security":[{"AggregatorKey":[]}],"parameters":[{"name":"clientId","in":"path","required":true,"schema":{"type":"string","format":"uuid"}},{"name":"Idempotency-Key","in":"header","required":true,"schema":{"type":"string","pattern":"^[a-zA-Z0-9_-]{16,100}$"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchRequest"}}}},"responses":{"201":{"description":"Single-use URL","content":{"application/json":{"schema":{"$ref":"#/components/schemas/LaunchResponse"}}}},"400":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"401":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"415":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Error. Use HTTP status and code; message may be localized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"headers":{"Retry-After":{"schema":{"type":"integer"},"description":"Seconds to wait."}}}}}}},"components":{"securitySchemes":{"ApiKey":{"type":"http","scheme":"bearer","description":"orb_sk_... key issued in the admin or client backoffice. Never expose it in browser code."},"AggregatorKey":{"type":"http","scheme":"bearer","description":"orb_agg_... credential issued only by the platform admin. Store only in the central aggregator backend. Scopes: clients:read, clients:write, launch:write. A per-customer orb_sk_ key is not accepted."}},"schemas":{"LaunchRequest":{"type":"object","required":["externalUserId","parentOrigin"],"properties":{"externalUserId":{"type":"string","minLength":1,"maxLength":128,"description":"Stable opaque ID of your authenticated user. No control characters. Do not send passwords, personal documents or email addresses."},"parentOrigin":{"type":"string","format":"uri","example":"https://client.example","description":"Exact allowlisted HTTPS origin, including port if non-default. No path or wildcard. HTTP only for localhost."},"mode":{"type":"string","enum":["simulation"],"default":"simulation"},"locale":{"type":"string","enum":["pt-BR","en","es"],"default":"pt-BR"}}},"LaunchResponse":{"type":"object","required":["launchId","launchUrl","expiresAt","mode","locale"],"properties":{"launchId":{"type":"string","format":"uuid"},"launchUrl":{"type":"string","format":"uri"},"expiresAt":{"type":"string","format":"date-time"},"mode":{"type":"string","enum":["simulation"]},"locale":{"type":"string","enum":["pt-BR","en","es"]}}},"Error":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"},"requestId":{"type":"string","format":"uuid"}}},"AggregatorClient":{"type":"object","required":["clientId","aggregatorId","externalClientId","name","status","platformBlocked","allowedOrigins","branding","mode"],"properties":{"clientId":{"type":"string","format":"uuid"},"aggregatorId":{"type":"string","format":"uuid"},"externalClientId":{"type":"string","maxLength":128},"name":{"type":"string"},"status":{"type":"string","enum":["active","suspended","archived"]},"platformBlocked":{"type":"boolean","description":"Only a platform administrator can clear this restriction."},"allowedOrigins":{"type":"array","maxItems":20,"items":{"type":"string","format":"uri"},"description":"Exact HTTPS origins. No wildcard, path, query or fragment. HTTP only on localhost."},"branding":{"type":"object","additionalProperties":false,"required":["name","tagline","accent","categories","paused"],"properties":{"theme":{"type":"object","additionalProperties":false,"properties":{"version":{"type":"integer","enum":[1]},"preset":{"type":"string","enum":["dark","light","midnight"]},"colors":{"type":"object","additionalProperties":false,"properties":{"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"elevated":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"muted":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"border":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"positive":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"negative":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}},"font":{"type":"string","enum":["dm-sans","space-grotesk","system","serif","mono"]},"fontSize":{"type":"integer","minimum":14,"maximum":18},"radius":{"type":"object","additionalProperties":false,"properties":{"card":{"type":"integer","minimum":0,"maximum":28},"control":{"type":"integer","minimum":0,"maximum":20}}},"density":{"type":"string","enum":["compact","comfortable"]},"shadow":{"type":"string","enum":["none","soft"]},"showHero":{"type":"boolean"}},"description":"Version 1 theme tokens. Optional properties use preset defaults. Text and muted text require 4.5:1 contrast on background, surface and elevated. Accent foreground is derived automatically. Raw CSS and remote fonts are not accepted."},"name":{"type":"string","minLength":2,"maxLength":30},"tagline":{"type":"string","maxLength":100},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"categories":{"type":"array","minItems":1,"items":{"type":"string","enum":["Política","Esportes","Crypto","Economia","Tecnologia","Mundo"]}},"paused":{"type":"boolean"}}},"mode":{"type":"string","enum":["simulation"]}}},"ProvisionClientRequest":{"type":"object","additionalProperties":false,"required":["externalClientId","name"],"properties":{"externalClientId":{"type":"string","pattern":"^[a-zA-Z0-9][a-zA-Z0-9_.:-]{0,127}$","description":"Stable casino ID, unique within this aggregator. Immutable."},"name":{"type":"string","minLength":2,"maxLength":60},"allowedOrigins":{"type":"array","maxItems":20,"items":{"type":"string","format":"uri"},"description":"Exact HTTPS origins. No wildcard, path, query or fragment. HTTP only on localhost."},"branding":{"type":"object","additionalProperties":false,"required":["name","tagline","accent","categories","paused"],"properties":{"theme":{"type":"object","additionalProperties":false,"properties":{"version":{"type":"integer","enum":[1]},"preset":{"type":"string","enum":["dark","light","midnight"]},"colors":{"type":"object","additionalProperties":false,"properties":{"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"elevated":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"muted":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"border":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"positive":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"negative":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}},"font":{"type":"string","enum":["dm-sans","space-grotesk","system","serif","mono"]},"fontSize":{"type":"integer","minimum":14,"maximum":18},"radius":{"type":"object","additionalProperties":false,"properties":{"card":{"type":"integer","minimum":0,"maximum":28},"control":{"type":"integer","minimum":0,"maximum":20}}},"density":{"type":"string","enum":["compact","comfortable"]},"shadow":{"type":"string","enum":["none","soft"]},"showHero":{"type":"boolean"}},"description":"Version 1 theme tokens. Optional properties use preset defaults. Text and muted text require 4.5:1 contrast on background, surface and elevated. Accent foreground is derived automatically. Raw CSS and remote fonts are not accepted."},"name":{"type":"string","minLength":2,"maxLength":30},"tagline":{"type":"string","maxLength":100},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"categories":{"type":"array","minItems":1,"items":{"type":"string","enum":["Política","Esportes","Crypto","Economia","Tecnologia","Mundo"]}},"paused":{"type":"boolean"}}}}},"UpdateAggregatorClientRequest":{"type":"object","additionalProperties":false,"properties":{"name":{"type":"string","minLength":2,"maxLength":60},"allowedOrigins":{"type":"array","maxItems":20,"items":{"type":"string","format":"uri"},"description":"Exact HTTPS origins. No wildcard, path, query or fragment. HTTP only on localhost."},"branding":{"type":"object","additionalProperties":false,"required":["name","tagline","accent","categories","paused"],"properties":{"theme":{"type":"object","additionalProperties":false,"properties":{"version":{"type":"integer","enum":[1]},"preset":{"type":"string","enum":["dark","light","midnight"]},"colors":{"type":"object","additionalProperties":false,"properties":{"background":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"surface":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"elevated":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"text":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"muted":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"border":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"positive":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"negative":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"}}},"font":{"type":"string","enum":["dm-sans","space-grotesk","system","serif","mono"]},"fontSize":{"type":"integer","minimum":14,"maximum":18},"radius":{"type":"object","additionalProperties":false,"properties":{"card":{"type":"integer","minimum":0,"maximum":28},"control":{"type":"integer","minimum":0,"maximum":20}}},"density":{"type":"string","enum":["compact","comfortable"]},"shadow":{"type":"string","enum":["none","soft"]},"showHero":{"type":"boolean"}},"description":"Version 1 theme tokens. Optional properties use preset defaults. Text and muted text require 4.5:1 contrast on background, surface and elevated. Accent foreground is derived automatically. Raw CSS and remote fonts are not accepted."},"name":{"type":"string","minLength":2,"maxLength":30},"tagline":{"type":"string","maxLength":100},"accent":{"type":"string","pattern":"^#[0-9a-fA-F]{6}$"},"categories":{"type":"array","minItems":1,"items":{"type":"string","enum":["Política","Esportes","Crypto","Economia","Tecnologia","Mundo"]}},"paused":{"type":"boolean"}}},"status":{"type":"string","enum":["active","suspended","archived"]}}},"ProvisionClientResponse":{"type":"object","required":["created","client","documentationUrl"],"properties":{"created":{"type":"boolean"},"client":{"$ref":"#/components/schemas/AggregatorClient"},"documentationUrl":{"type":"string","format":"uri"}}}}}}