Skip to main content
The data.status field indicates the outcome of the request:
StatusMeaningWhen This OccursBillableInput Type
"filled"All requested offers were filledreturned == requestedYesAll
"partial_fill"Some offers filled (multi-offer mode)0 < returned < requestedYesAll
"no_offer"No affiliate offer availableCouldn’t match a keyword to an affiliate URLYesAll
"message_too_short"Message below minimum word countFewer than 10 words after sanitizationNoText only
"message_too_long"Message above maximum character countOver 10,000 charactersNoText, Image URL
"country_not_allowed"Country is not ‘US’ (ChatAds is US-only currently)You passed country parameter with any value that isn’t ‘US’NoAll
"blocked_keyword"Blocked keyword detectedMessage contains keyword you added to RulesNoText only
"language_not_allowed"Language is not ‘en’ (ChatAds is English-only currently)ChatAds’s language detection identifies text as non-EnglishNoText only
"ip_country_not_allowed"Passed IPv4 is not USYou passed ip and it resolved to non-US locationNoAll
Example response with no offers:
{
  "data": {
    "status": "no_offer",
    "offers": [],
    "requested": 1,
    "returned": 0,
    "billed": true,
    "extraction_debug": []
  },
  "error": null,
  "meta": {
    "request_id": "d6a8f6f2-3b5a-4f0a-81ab-1b4a4c9dd5ea",
    "timestamp": "2026-03-08T22:01:37.613823963Z",
    "version": "1.0.0"
  }
}
The offers array only contains offers with URLs. If the array is empty, check the status field to understand why no offers were returned.