Skip to main content
POST
/
v1
/
chatads
/
messages
curl -X POST 'https://api.getchatads.com/v1/chatads/messages' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
    "message": "The Bose QuietComfort Ultra earbuds are great for commuting. They have solid noise cancellation and a comfortable fit. Battery life is around six hours, which is enough for most people."
  }'
{
  "data": {
    "status": "filled",
    "offers": [
      {
        "link_text": "Bose QuietComfort Ultra earbuds",
        "url": "https://www.amazon.com/dp/B0CD2FSRDD/?tag=yourtag-20",
        "products": [
          {
            "title": "Bose QuietComfort Ultra Bluetooth Earbuds...",
            "stars": 3.8,
            "reviews": 9765,
            "price": 199.0,
            "image": "https://m.media-amazon.com/images/I/51example.jpg"
          }
        ]
      }
    ],
    "requested": 1,
    "returned": 1,
    "billed": true
  },
  "error": null,
  "meta": {
    "request_id": "0f04eb2e-820a-460a-8427-ccc1a6233b6a",
    "timestamp": "2026-03-11T13:57:42.074Z",
    "version": "1.0.0",
    "usage": {
      "monthly_requests": 13,
      "daily_requests": 3,
      "daily_limit": 10000,
      "is_free_tier": false
    }
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.getchatads.com/llms.txt

Use this file to discover all available pages before exploring further.

Analyzes a user message to extract product keywords and return relevant affiliate links.
Using the API Explorer: Click “Try It” on the right to test this endpoint interactively. Enter your API key from app.getchatads.com/api/keys in the Authorization header field.

Request Body

message
string
required
The user message to analyze. Required, max 10,000 characters. Min 10 words.
ip
string
IP address (IPv4 or IPv6) for country detection. Anything identified as non-US will be skipped.
country
string
Country code (e.g., ‘US’). If provided, skips IP-based country detection.
extraction_mode
string
default:"standard"
Controls how product keywords are extracted from the message:
  • none — skips product extraction and all filters (country, language, keyword, IP); finds an offer on the provided string
  • standard — default full extraction
resolution_mode
string
default:"standard"
Controls how extracted keywords are resolved to affiliate URLs:
  • none — doesn’t look for offers; returns extracted product only
  • standard — default full resolution
max_offers
integer
default:"1"
Max distinct keyterms with offers extracted (1-3). Defaults to 1.
max_products_per_offer
integer
default:"1"
Max product offers per keyterm (1-3). Defaults to 1.
metadata
JSON object
Arbitrary JSON key-value pairs to attach to the request. Passed through and returned in the response for your own tracking purposes. Example: {"session_id": "abc123", "user_id": "u_456"}.

Response

data
object
error
object
Error details when request fails. Null for successful requests. Check error == null to determine success.
meta
object
curl -X POST 'https://api.getchatads.com/v1/chatads/messages' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{
    "message": "The Bose QuietComfort Ultra earbuds are great for commuting. They have solid noise cancellation and a comfortable fit. Battery life is around six hours, which is enough for most people."
  }'
{
  "data": {
    "status": "filled",
    "offers": [
      {
        "link_text": "Bose QuietComfort Ultra earbuds",
        "url": "https://www.amazon.com/dp/B0CD2FSRDD/?tag=yourtag-20",
        "products": [
          {
            "title": "Bose QuietComfort Ultra Bluetooth Earbuds...",
            "stars": 3.8,
            "reviews": 9765,
            "price": 199.0,
            "image": "https://m.media-amazon.com/images/I/51example.jpg"
          }
        ]
      }
    ],
    "requested": 1,
    "returned": 1,
    "billed": true
  },
  "error": null,
  "meta": {
    "request_id": "0f04eb2e-820a-460a-8427-ccc1a6233b6a",
    "timestamp": "2026-03-11T13:57:42.074Z",
    "version": "1.0.0",
    "usage": {
      "monthly_requests": 13,
      "daily_requests": 3,
      "daily_limit": 10000,
      "is_free_tier": false
    }
  }
}