
Keywords & Answers API
API for managing keywords and accessing AI-generated answers. Used by LLM crawling services to track brand mentions across ChatGPT, Perplexity, Gemini, and other AI platforms.
Authentication
All endpoints require authentication via the X-API-Key header:
curl -H "X-API-Key: $LLM_CRAWLING_SERVICE_TOKEN" \ https://enception.ai/api2/keywords
Note: API key cannot perform DELETE operations. Access is scoped to clients within the configured team only.
Keywords API
/api2/keywordsFetch keywords for accessible clients.
Query Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
client_id | UUID | No | Filter by specific client |
Response
{
"keywords": [
{
"id": "uuid",
"client_id": "uuid",
"core_keyword": "best crm software",
"extended_keywords": ["crm for small business"],
"platforms": ["chatgpt", "perplexity", "gemini"],
"interval_days": 1,
"locale": "us",
"next_queried": "2024-01-15T00:00:00Z"
}
]
}/api2/keywordsCreate a new keyword.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
client_id | UUID | Yes | Client this keyword belongs to |
core_keyword | string | Yes | Primary keyword to track |
extended_keywords | string[] | No | Related keywords |
platforms | string[] | No | AI platforms to query |
interval_days | number | No | Query frequency in days (default: 1) |
locale | string | No | Geographic locale (default: "us") |
Example Request
curl -X POST https://enception.ai/api2/keywords \
-H "X-API-Key: $LLM_CRAWLING_SERVICE_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"client_id": "abc-123",
"core_keyword": "best project management software",
"platforms": ["chatgpt", "perplexity"]
}'/api2/keywordsUpdate an existing keyword. Requires id field.
/api2/keywords?id={id}Delete a keyword by ID. Not available via API key.
Answers API
/api2/answersCreate a new answer from an AI platform response.
Request Body
| Field | Type | Required | Description |
|---|---|---|---|
keyword_id | UUID | Yes | Keyword this answer belongs to |
core_keyword | string | Yes | The core keyword text |
platform | string | Yes | AI platform (chatgpt, perplexity, gemini, etc.) |
answer | string | Yes | The full answer text |
date_queried | string | Yes | Date queried (YYYY-MM-DD) |
sources | string[] | No | Source URLs cited |
brands_mentioned | string[] | No | Brands mentioned in answer |
/api2/answersFetch answers for accessible clients' keywords.
Query Parameters
| Parameter | Type | Description |
|---|---|---|
client_id | UUID | Filter by specific client |
keyword_id | UUID | Filter by specific keyword (optimized) |
keyword_ids | string | Comma-separated UUIDs (optimized) |
date | string | Filter by date (YYYY-MM-DD) |
Performance Tip: Using keyword_id or keyword_ids bypasses client filtering and is significantly faster.
/api2/answers/{id}Fetch a single answer with full details including answer text.
/api2/answers/analyze-brandsAnalyze answer text to extract brand mentions using GPT.
Request Body
{
"answer": "The top CRM solutions include Salesforce...",
"clientBrand": "Acme CRM",
"alternativeNames": ["Acme", "AcmeCRM"]
}Response
{
"brands": ["Salesforce", "HubSpot", "Acme CRM"]
}Error Responses
| Status Code | Description |
|---|---|
400 | Bad Request - Missing or invalid parameters |
401 | Unauthorized - Invalid or missing authentication |
403 | Forbidden - No access to requested resource |
404 | Not Found - Resource doesn't exist |
500 | Internal Server Error |