Ozan Soft Phone API
The Phone API from Ozan Soft — 1 operation(s) for phone.
Operations 2
Documentation
Documentation
https://www.genderapi.io/api-documentation
APIReference
https://www.genderapi.io/swagger/
The Phone API from Ozan Soft — 1 operation(s) for phone.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/ozan-soft-phone-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: GenderAPI Public Phone API
version: 1.0.0
summary: Gender inference and phone validation endpoints.
description: API-owner-approved contract derived from the public English documentation and verified backend handlers. Gender values are probabilistic inferences, not verified identity. Publication remains controlled by the separate GEO release gate.
termsOfService: https://www.genderapi.io/terms
contact:
url: https://www.genderapi.io/contact
servers:
- url: https://api.genderapi.io
description: Production API
tags:
- name: Phone
paths:
/api/phone:
get:
tags:
- Phone
operationId: validatePhoneWithQuery
summary: Validate and format a phone number using query parameters
description: POST with Bearer authentication is preferred for secret handling.
security:
- apiKeyQuery: []
parameters:
- name: number
in: query
required: true
schema:
type: string
- name: address
in: query
required: false
schema:
type: string
x-documentation-url: https://www.genderapi.io/docs-phone-validation-formatter-api
x-credit-cost: Confirm current usage accounting in account and pricing documentation.
responses:
'200':
description: Application response. Inspect status before reading result fields; live verification observed validation and authentication errors inside HTTP 200 responses.
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/PhoneResponse'
- $ref: '#/components/schemas/Error'
example:
status: true
remaining_credits: 15709
expires: 0
duration: 18ms
regionCode: US
countryCode: 1
country: United States
national: (212) 867-5309
international: +1 212-867-5309
e164: '+12128675309'
isValid: true
isPossible: true
numberType: FIXED_LINE_OR_MOBILE
'400':
description: Request rejected. Branch on errno rather than errmsg text.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Request rejected. Branch on errno rather than errmsg text.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Request rejected. Branch on errno rather than errmsg text.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Request rejected. Branch on errno rather than errmsg text.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
post:
tags:
- Phone
operationId: validatePhone
summary: Validate and format a phone number
description: 'Canonical documentation: https://www.genderapi.io/docs-phone-validation-formatter-api'
security:
- bearerAuth: []
x-documentation-url: https://www.genderapi.io/docs-phone-validation-formatter-api
x-credit-cost: Confirm current usage accounting in account and pricing documentation.
requestBody:
required: true
content:
application/json:
schema:
type: object
additionalProperties: false
required:
- number
properties:
number:
type: string
minLength: 1
address:
type: string
example:
number: +1 212 867 5309
address: US
responses:
'200':
description: Application response. Inspect status before reading result fields; live verification observed validation and authentication errors inside HTTP 200 responses.
content:
application/json:
schema:
oneOf:
- $ref: '#/components/schemas/PhoneResponse'
- $ref: '#/components/schemas/Error'
example:
status: true
remaining_credits: 15709
expires: 0
duration: 18ms
e164: '+12128675309'
isValid: true
'400':
description: Request rejected. Branch on errno rather than errmsg text.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Request rejected. Branch on errno rather than errmsg text.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'403':
description: Request rejected. Branch on errno rather than errmsg text.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Request rejected. Branch on errno rather than errmsg text.
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
PhoneResponse:
type: object
required:
- status
properties:
status:
type: boolean
const: true
remaining_credits:
type: integer
minimum: 0
expires:
type: integer
duration:
type: string
regionCode:
type: string
pattern: ^[A-Z]{2}$
description: ISO 3166-1 alpha-2 country code used as regional context.
examples:
- US
countryCode:
type: integer
country:
type: string
national:
type: string
international:
type: string
e164:
type: string
isValid:
type: boolean
isPossible:
type: boolean
numberType:
type: string
enum:
- FIXED_LINE
- MOBILE
- FIXED_LINE_OR_MOBILE
- TOLL_FREE
- PREMIUM_RATE
- SHARED_COST
- VOIP
- PERSONAL_NUMBER
- PAGER
- UAN
- VOICEMAIL
- UNKNOWN
nationalSignificantNumber:
type: string
rawInput:
type: string
isGeographical:
type: boolean
areaCode:
type: string
location:
type: string
Error:
type: object
additionalProperties: true
required:
- status
- errno
- errmsg
properties:
status:
type: boolean
const: false
errno:
type: integer
enum:
- 50
- 90
- 91
- 92
- 93
- 94
- 99
errmsg:
type: string
example:
status: false
errno: 94
errmsg: invalid or missing key
x-error-catalog:
- errno: 50
message: access denied
action: Review API-key IP or referrer restrictions.
- errno: 90
message: invalid country code
action: Validate an ISO 3166-1 alpha-2 country code.
- errno: 91
message: required input not set
action: Add the endpoint's required name, email, or username.
- errno: 92
message: batch limit exceeded
action: Split input according to the documented endpoint limit.
- errno: 93
message: query limit reached
action: Pause lookups and review the account quota.
- errno: 94
message: invalid or missing key
action: Check server-side credential injection.
- errno: 99
message: API key has expired
action: Review or renew the package before retrying.
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Recommended server-side API-key transport.
apiKeyQuery:
type: apiKey
in: query
name: key
description: Supported by documented GET endpoints; keep requests server-side.
x-lifecycle-policy:
approvedAt: '2026-09-15'
canonicalTransport: Bearer authentication on POST operations; query-key on documented GET compatibility operations.
compatibility: Existing legacy GET, authentication transports, JSONP or alternate response shapes, HTTP error mappings, and errno values remain operational until measured, announced, and migrated.
breakingChange: Removing or changing an accepted request transport, operation, response shape, field type, HTTP/application-error mapping, or errno value is a breaking change.
minimumNoticeMonths: 6
criticalEnterpriseNoticeMonths: 12
noticeChannels:
- developer documentation
- account email
sunsetSignaling:
- documentation deprecation notice
- Sunset HTTP header where technically applicable