Zernio
Zernio
API Reference

Phone Numbers

Numbers

List phone numbersGETGet phone numberGETPurchase phone numberPOSTResolve a number claimGETRelease phone numberDELETE

Availability

List offerable number countriesGETCheck country availabilityGETSearch available numbersGET

Stock Watches

List stock watchesGETWatch an out-of-stock countryPOSTStop watching a countryDELETE

KYC

Get KYC form specGETSubmit KYCPOSTPre-validate KYC addressPOSTPre-review a KYC packetPOSTUpload a KYC documentPOSTView a KYC document on fileGETCreate a hosted KYC linkPOST

Remediation

Get declined requirementsGETResubmit a declined numberPOSTReply to the regulatory reviewerPOSTRespond to the regulatory reviewer (message + corrections)POST

Porting

Check portabilityPOSTCountry porting requirementsGETPort numbers inPOSTList port-in ordersGETResolve a port claimGETA port-in order's pending requirementsGETUpload a porting documentPOSTCancel a port-inDELETE

Other

Request the WhatsApp verification code for a numberPOST
Dashboard
llms.txtOpenAPI
OverviewPlatformsAPI ReferenceResources
Phone Numbers

List phone numbers

List all phone numbers purchased by the authenticated user. By default, released numbers are excluded. Connected (bring-your-own) WhatsApp numbers are returned in the separate connected array; they are not billed and have no provisioning lifecycle.


GET
/v1/phone-numbers

Authorization

bearerAuth
AuthorizationBearer <token>

API key authentication: send your Zernio API key in the Authorization header, prefixed with Bearer.

In: header

Query Parameters

status?string

Filter by status (by default excludes released numbers). NOTE: status=pending_regulatory returns the "provisioning" view: numbers still in review PLUS recently-declined (last 30 days) ones, so a failed registration surfaces (with regulatoryDeclineReason) instead of silently disappearing. Declined numbers can be re-submitted via POST /v1/phone-numbers/{id}/remediate. verifying is the short-lived state after the number is provisioned on our side while WhatsApp confirms the activation code; the number is not billed until it reaches active.

Value in

  • "provisioning"
  • "verifying"
  • "pending_payment"
  • "pending_regulatory"
  • "regulatory_declined"
  • "active"
  • "suspended"
  • "releasing"
  • "released"
profileId?string

Filter by profile

Response Body

application/json

application/json

import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.phonenumbers.listPhoneNumbers();console.log(data);
{  "numbers": [    {      "_id": "string",      "phoneNumber": "string",      "country": "string",      "numberType": "string",      "status": "pending_payment",      "profileId": {        "_id": "string",        "name": "string"      },      "createdAt": "2019-08-24T14:15:22Z",      "updatedAt": "2019-08-24T14:15:22Z",      "telnyxOrderId": "string",      "telnyxAdvancedOrderId": "string",      "registrantName": "string",      "endUserFirstName": "string",      "endUserLastName": "string",      "regulatoryDeclineReason": "string",      "regulatoryReviewComment": "string",      "regulatoryInfoStatus": "string",      "onfidoVerificationUrl": "string",      "verifyUrl": "string",      "onfidoOpened": true,      "metaPreverifiedId": "string",      "metaVerificationStatus": "pending",      "metaVerifiedAt": "2019-08-24T14:15:22Z",      "metaVerificationExpiresAt": "2019-08-24T14:15:22Z",      "metaPoolAddRejectedAt": "2019-08-24T14:15:22Z",      "socialAccountId": "string",      "ownerAccountId": "string",      "sipTrunkId": "string",      "whatsAppRequested": true,      "smsRequested": true,      "provisionedAt": "2019-08-24T14:15:22Z",      "activatedAt": "2019-08-24T14:15:22Z",      "connectedAt": "2019-08-24T14:15:22Z",      "suspendedAt": "2019-08-24T14:15:22Z",      "releasedAt": "2019-08-24T14:15:22Z",      "signupError": "string",      "signupErrorAt": "2019-08-24T14:15:22Z",      "signupErrorStep": "string",      "monthlyCents": 0,      "hostedByZernio": true,      "smsCapable": true,      "mmsCapable": true,      "domesticOnly": true,      "smsRegistrationPending": true,      "smsSendApproved": true,      "smsBrandName": "string",      "features": {        "calls": true,        "whatsapp": true,        "smsPending": true      },      "callingEnabled": true,      "forwardTo": "string",      "sipAuthUsername": "string",      "callerIdVerifiedAt": "2019-08-24T14:15:22Z",      "maxCallDurationSeconds": 0,      "recordingEnabled": true,      "transcriptionEnabled": true,      "transcriptionLanguage": "auto",      "callIconCountries": [        "string"      ],      "forwardCallerId": "business",      "pstnVoiceEnabled": true,      "pstnForwardTo": "string",      "voicemailEnabled": true,      "voicemailGreeting": "string",      "businessHoursEnabled": true,      "businessHoursTimezone": "string",      "businessHours": [        {          "day": 0,          "open": "string",          "close": "string"        }      ],      "blockedCallers": [        "string"      ],      "ivrEnabled": true,      "ivrPrompt": "string",      "ivrOptions": [        {          "digit": "string",          "forwardTo": "string",          "label": "string"        }      ]    }  ],  "connected": [    {      "accountId": "string",      "phoneNumber": "string",      "displayName": "string",      "profileId": "string",      "connectedAt": "2019-08-24T14:15:22Z",      "callingEnabled": true    }  ],  "imessage": [    {      "id": "string",      "kind": "phone",      "region": "US",      "handle": "string",      "optInLink": "string",      "status": "ordering",      "priceCents": 0,      "provider": "string",      "profileId": "string",      "displayName": "string",      "failureReason": "string",      "accountId": "string",      "createdAt": "2019-08-24T14:15:22Z"    }  ],  "sandbox": {    "phoneNumber": "string",    "accountId": "string",    "template": {      "name": "string",      "language": "string"    },    "isSandbox": true  }}
Was this page helpful?

Set product metafields

Creates or updates custom fields by namespace and key.

Get phone number

Retrieve the current status of a purchased phone number. Poll this to track Meta pre-verification (US sync path) and, for regulated (Tier 3/4) numbers, the async lifecycle: pending_regulatory → active (or regulatory_declined). When a regulated number has an Onfido ID step, `onfidoVerificationUrl` appears here once the order is placed. Forward it to the end user. (Or subscribe to the whatsapp.number.* webhooks instead of polling.)