data.status field indicates the outcome of the request:
| Status | Meaning | When This Occurs | Billable | Input Type |
|---|---|---|---|---|
"filled" | Offer was found | An affiliate offer was matched | Yes | All |
"no_offer" | No affiliate offer available | Couldn’t match a keyword to an affiliate URL | Yes | All |
"no_brand_found" | No brand detected (brand-only mode) | Brand Only is enabled but no brand-like words found in message | Yes | Text only |
"message_too_short" | Message below minimum word count | Fewer than 10 words after sanitization | No | Text only |
"message_too_long" | Message above maximum character count | Over 10,000 characters | No | Text, 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’ | No | All |
"blocked_keyword" | Blocked keyword detected | Message contains keyword you added to Rules | No | Text only |
"language_not_allowed" | Language is not ‘en’ (ChatAds is English-only currently) | ChatAds’s language detection identifies text as non-English | No | Text only |
"ip_country_not_allowed" | Passed IP is not US | You passed ip and it resolved to non-US location | No | All |
The
offers array only contains offers with URLs. If the array is empty, check the status field to understand why no offers were returned.