{"openapi":"3.1.0","info":{"title":"QuietPass API","version":"1.0.0","description":"Global formatting and numbering-plan validation, with selectable intelligence layers. Development keys can query only their owner’s SMS-verified phone. Supplier authentication is configured; customer network execution remains disabled; unavailable results are never negative fraud results."},"servers":[{"url":"https://quietpass.com"}],"paths":{"/v1/coverage":{"get":{"operationId":"getCoverage","summary":"Get global coverage by layer","security":[],"parameters":[{"name":"country","in":"query","schema":{"type":"string","pattern":"^[A-Za-z]{2}$"},"description":"Optional ISO two-letter country filter."}],"responses":{"200":{"description":"Global application coverage and supplier-reported network capabilities, restrictions, freshness, and explicit execution status."},"400":{"description":"Unsupported country filter."},"429":{"description":"Rate limit reached."}}}},"/v1/phone/check":{"post":{"operationId":"checkPhone","summary":"Check your verified phone","security":[{"apiKey":[]}],"description":"Call from your backend. Browser-origin requests are rejected. Formatting and basic line type are free. Choose paid layers to receive their current availability; no paid lookup or charge occurs. Development limits: 60 new requests per minute and 1,000 per rolling 24 hours across your keys.","parameters":[{"name":"Idempotency-Key","in":"header","schema":{"type":"string","pattern":"^[A-Za-z0-9._:-]{1,128}$"},"description":"Optional retry identifier, scoped to the API key. Identical semantic requests replay for 24 hours without another usage entry. A different request with the same identifier returns 409. Expired retained identifiers return 409; use a new identifier for a new check."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneRequest"},"example":{"phone":"+64211234567","checks":["basic_line_type","current_carrier","sim_swap"]}}}},"responses":{"200":{"description":"Formatting, validation, selected results and explicit unavailability. Billing is always zero in this release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PhoneResult"}}}},"400":{"description":"Invalid input or unsupported fields."},"401":{"description":"Missing, invalid, expired, or revoked API key."},"403":{"description":"Query differs from your verified number, or a browser Origin header was supplied."},"409":{"description":"Idempotency conflict or expired replay."},"429":{"description":"Rate or daily request limit reached."},"503":{"description":"Service unavailable or setup incomplete."}}}}},"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","description":"A qp_dev_ key. Shown once when created; keep it on your server."}},"schemas":{"PhoneRequest":{"type":"object","additionalProperties":false,"required":["phone"],"properties":{"phone":{"type":"string","minLength":1,"maxLength":250,"description":"One number. Use + and the calling code, or supply default_country."},"default_country":{"type":"string","pattern":"^[A-Za-z]{2}$"},"checks":{"type":"array","maxItems":5,"uniqueItems":true,"items":{"type":"string","enum":["basic_line_type","enhanced_line_type","current_carrier","live_status","sim_swap"]},"description":"Omit to select basic_line_type. Use [] for formatting and validation only."}}},"PhoneResult":{"type":"object","required":["requestId","preparedAt","validation","number","checks","billing","limitations"],"properties":{"requestId":{"type":"string","format":"uuid"},"preparedAt":{"type":"string","format":"date-time"},"validation":{"type":"object","properties":{"valid":{"type":"boolean"},"possible":{"type":"boolean"},"basis":{"const":"numbering_plan"}}},"number":{"type":["object","null"],"properties":{"e164":{"type":["string","null"]},"national":{"type":["string","null"]},"international":{"type":["string","null"]},"country":{"type":["string","null"]}}},"checks":{"type":"object","description":"Per-layer status: not_requested, skipped, completed, or unavailable. Basic type is numbering-plan metadata; current carrier is not verified."},"billing":{"type":"object","properties":{"charged":{"const":false},"paidChecksExecuted":{"const":0}}},"limitations":{"type":"array","items":{"type":"string"}}}}}}}