{"openapi":"3.1.0","info":{"title":"QuoAPI – SMS & OTP API","version":"1.3.0","description":"Canonical QuoAPI public API contract. Provider details and internal routes are intentionally excluded."},"servers":[{"url":"https://api.quoapi.com"}],"tags":[{"name":"sms-api","description":"Send SMS, track delivery and integrate one-time password verification."}],"paths":{"/v1/sms/send":{"post":{"operationId":"sms_send","summary":"Send SMS","description":"Send a transactional SMS.","tags":["sms-api"],"security":[{"BearerAuth":["sms.send"]}],"x-quoapi-capability":"sms.send","x-quoapi-contract-version":"1.3.0:sms.send","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","x-quoapi-widget":"phone","title":"To","default":"+491701234567","format":"phone"},"text":{"type":"string","x-quoapi-widget":"textarea","title":"Text","default":"Your code is 123456"},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["to","text"]},"example":{"to":"+491701234567","text":"Your code is 123456"}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sms/status":{"post":{"operationId":"sms_status","summary":"SMS status","description":"Check SMS delivery status.","tags":["sms-api"],"security":[{"BearerAuth":["sms.status"]}],"x-quoapi-capability":"sms.status","x-quoapi-contract-version":"1.3.0:sms.status","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message_id":{"type":"string","x-quoapi-widget":"text","title":"Message Id","default":"sms_demo_001"},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["message_id"]},"example":{"message_id":"sms_demo_001"}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/otp/send":{"post":{"operationId":"otp_send","summary":"Send OTP","description":"Create and send a one-time code.","tags":["sms-api"],"security":[{"BearerAuth":["otp.send"]}],"x-quoapi-capability":"otp.send","x-quoapi-contract-version":"1.3.0:otp.send","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"to":{"type":"string","x-quoapi-widget":"phone","title":"To","default":"+491701234567","format":"phone"},"channel":{"type":"string","x-quoapi-widget":"select","title":"Channel","default":"sms","enum":["sms"]},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["to","channel"]},"example":{"to":"+491701234567","channel":"sms"}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/otp/verify":{"post":{"operationId":"otp_verify","summary":"Verify OTP","description":"Verify a one-time code.","tags":["sms-api"],"security":[{"BearerAuth":["otp.verify"]}],"x-quoapi-capability":"otp.verify","x-quoapi-contract-version":"1.3.0:otp.verify","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"verification_id":{"type":"string","x-quoapi-widget":"text","title":"Verification Id","default":"otp_demo_001"},"code":{"type":"string","x-quoapi-widget":"text","title":"Code","default":"123456"},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["verification_id","code"]},"example":{"verification_id":"otp_demo_001","code":"123456"}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}},"/v1/sms/webhook":{"post":{"operationId":"sms_webhook","summary":"SMS webhook","description":"Inspect normalized delivery webhook examples.","tags":["sms-api"],"security":[{"BearerAuth":["sms.webhook"]}],"x-quoapi-capability":"sms.webhook","x-quoapi-contract-version":"1.3.0:sms.webhook","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"event":{"type":"string","x-quoapi-widget":"select","title":"Event","default":"sms.delivered","enum":["demo.event"]},"country":{"type":"string","pattern":"^[A-Z]{2}$","x-quoapi-widget":"country","x-quoapi-hidden":true,"description":"Optional ISO 3166-1 alpha-2 routing context."},"currency":{"type":"string","pattern":"^[A-Z]{3}$","x-quoapi-widget":"currency","x-quoapi-hidden":true,"description":"Optional ISO 4217 commercial context."}},"additionalProperties":false,"required":["event"]},"example":{"event":"sms.delivered"}}}},"responses":{"200":{"description":"Canonical response","content":{"application/json":{"schema":{"type":"object","required":["data","request_id"],"properties":{"data":{"type":"object","additionalProperties":true,"description":"Canonical QuoAPI response data for this capability."},"request_id":{"type":"string"}}}}}},"4XX":{"description":"Canonical client error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"5XX":{"description":"Canonical service error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}},"components":{"securitySchemes":{"BearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"QuoAPI API key"}},"schemas":{"ErrorResponse":{"type":"object","required":["error"],"properties":{"error":{"type":"object","required":["code","message","request_id","details"],"properties":{"code":{"type":"string"},"message":{"type":"string"},"request_id":{"type":"string"},"details":{"type":"object","additionalProperties":true}}}}}}}}