A successful Domain WHOIS Lookup call returns success: true and the verification result under data.result.
Success Response — 200
{
"status": "SUCCESS",
"status_code": 200,
"charged": true,
"success": true,
"message": "",
"message_code": "OK",
"order_id": "W2A1739512345abcdef01",
"data": {
"order_id": "W2A1739512345abcdef01",
"result": {
"domain_name": "way2api.com",
"is_registered": true,
"created_on": "2024-03-03",
"updated_on": "2026-02-21",
"expires_on": "2031-03-03",
"registrar": {
"name": "GoDaddy.com, LLC",
"iana_id": "146",
"url": "http://www.godaddy.com",
"abuse_email": "[email protected]",
"abuse_phone": "+14806242505"
},
"registrant": {
"registry_id": "way2apicom-reg",
"name": "Registration Private",
"organization": "Domains By Proxy, LLC",
"email": "",
"phone": "+14806242599",
"street": "DomainsByProxy.com 100 S. Mill Ave, Suite 1600",
"city": "Tempe",
"state": "Arizona",
"zip_code": "85281",
"country": "United States",
"country_code": "US"
},
"technical_contact": {
"email": ""
},
"name_servers": [
"magnolia.ns.cloudflare.com",
"charles.ns.cloudflare.com"
],
"domain_status": [
"client_update_prohibited",
"client_delete_prohibited",
"client_renew_prohibited",
"client_transfer_prohibited"
],
"queried_at": "2026-08-06 05:53:51"
}
}
}
Response Keys
| Key |
Type |
What it tells you |
status |
string |
Order lifecycle: SUCCESS, PENDING or FAILED. Describes the order, not the verification — a charged call that came back negative is a completed order. |
status_code |
int |
The HTTP status, echoed into the body. |
charged |
bool |
The authority on billing. Never infer it from the HTTP status. |
success |
bool |
The verification outcome. Independent of charged. |
message |
string |
Human-readable text. For display and logs — do not parse it. |
message_code |
string |
Machine-readable reason from a fixed vocabulary. Branch on this. |
order_id |
string |
Present once a call reached the provider; quote it on a support ticket. Its absence means nothing was billed. |
data.result |
object |
The verification payload for this endpoint. |
When You Are Charged
| message_code |
Charged |
HTTP |
status |
What it means |
OK |
Yes
|
200 |
SUCCESS |
Verified. The provider ran the lookup and returned a result. |
ACCEPTED |
Yes
|
202 |
PENDING |
Queued at the provider. Quote the order_id to collect the result. |
PROVIDER_NO_RESPONSE |
Yes
|
202 |
PENDING |
The provider did not respond in time. Held for manual review — not auto-refunded. |
VERIFICATION_FAILED |
Yes
|
422 |
SUCCESS |
The provider ran the lookup and the details did not verify. The work was done, so the call is billed. |
NO_RECORD_FOUND |
Yes
|
422 |
SUCCESS |
The provider ran the lookup and found no matching record. Billed for the same reason. |
INVALID_INPUT |
No
|
422 |
FAILED |
Your parameters were rejected before any call was placed. |
REQUEST_FAILED |
No
|
400 |
FAILED |
The call was placed and failed definitively. Refunded to your wallet automatically. |
MISSING_API_KEY |
No
|
401 |
FAILED |
No API key on the request. |
INVALID_API_KEY |
No
|
401 |
FAILED |
Key invalid or expired, or the calling IP is not allowed. |
INSUFFICIENT_BALANCE |
No
|
402 |
FAILED |
Your wallet balance is below the price of this call. |
NO_API_ACCESS |
No
|
403 |
FAILED |
Your account is not subscribed to this API. |
NOT_FOUND |
No
|
404 |
FAILED |
No such endpoint. |
RATE_LIMITED |
No
|
429 |
FAILED |
Per-key, per-service one-minute limit exceeded. |
INTERNAL_ERROR |
No
|
500 |
FAILED |
Unexpected error on our side. |
PROVIDER_UNAVAILABLE |
No
|
503 |
FAILED |
The service could not be reached. |