Skip to content

Get a domain claim

Poll a claim's status while you wait for its TXT record to propagate.

http
GET /v1/domains/{id}/claim

Requires a Full access API key.

Path parameters

ParameterTypeRequiredDescription
idstringYesThe placeholder domain's id — the domain_id returned by Claim a domain.

The path takes the placeholder domain's id, not the claim's own id. That id came back as domain_id when you opened the claim.

Example

bash
curl "https://api.sendgrail.com/v1/domains/$DOMAIN_ID/claim" \
  -H "Authorization: Bearer $SENDGRAIL_API_KEY"
js
const res = await fetch(
  `https://api.sendgrail.com/v1/domains/${domainId}/claim`,
  { headers: { Authorization: `Bearer ${process.env.SENDGRAIL_API_KEY}` } },
);

const claim = await res.json();

Response

The latest claim for the domain — the same shape returned by Claim a domain.

json
{
  "object": "domain_claim",
  "id": "9a3c1e64-1b17-4f8c-9f0e-3b6c1e0f5c31",
  "name": "example.com",
  "status": "pending",
  "domain_id": "5f1c3a9e-0d42-4b7c-9a63-2e8b41d7c015",
  "region": "us-east-1",
  "record": {
    "type": "TXT",
    "name": "example.com",
    "value": "sendgrail-domain-verification=6f1a2b3c4d5e6f7a8b9c0d1e2f3a4b5c",
    "ttl": "Auto"
  },
  "blocked_reason": null,
  "failure_reason": null,
  "created_at": "2026-07-14T19:44:32+00:00",
  "expires_at": "2026-07-21T19:44:32+00:00"
}

See Claim a domain for the field-by-field breakdown.

This call only reads the claim — it doesn't re-check DNS. To actually run the ownership check, call Verify a domain claim; use this endpoint to poll the result afterwards.

No claim on this domain — 404

If the domain has never had a claim opened against it, there's nothing to return:

json
{
  "message": "This domain has no claim.",
  "code": "not_found",
  "request_id": "8f2c1e64-1b17-4f8c-9f0e-3b6c1e0f5c31"
}

A domain belonging to another team also answers 404. A Sending access key answers 403. See Errors.

Transactional email on your own domain.