AIRT Groups
Organize tracked prompts into groups for cleaner reporting and bulk operations. Groups live at the site level and are shared across every LLM engine configured for that site; prompts are assigned to groups per engine. Data in the AI Result Tracker is refreshed daily.
Base URL: api4.seranking.com
- Each site has one non-deletable default group. New prompts land in the default group unless a
group_idis specified at creation. - Deleting a non-default group moves its prompts to the default group.
- Group names must be non-empty and unique within a site, maximum 255 characters.
- Aggregated per-group metrics are not yet available in the public API; tracked in a follow-up task.
- This is a Project API feature. Use your Project API key (40-char hex), not the Data API key.
List prompt groups
GET https://api4.seranking.com/sites/{site_id}/airt/prompt-groups
Cost: 0. Managing prompt groups does not consume API credits or subscription quota.
Returns prompt groups for the site, ordered by position. Optionally filter by LLM engine and include prompt counts per group.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. Path parameter. |
token | String | Yes | N/A | Project API access token. Query parameter. |
keys_count | Integer | No | 0 | Set to 1 to include keys_count on every group. Accepts 0 or 1. Query parameter. |
site_llm_ids | Array of Integer | No | N/A | Filter groups to those used by these site LLM IDs. Repeat the parameter: site_llm_ids[]=1&site_llm_ids[]=2. Query parameter. |
Request example
curl -X GET "https://api4.seranking.com/sites/72193/airt/prompt-groups?token=YOUR_API_TOKEN&keys_count=1"Response parameters
| Parameter | Type | Description |
|---|---|---|
id | Integer | Group ID. |
name | String | Group name. |
position | Integer | Ordering position within the site, starting at 0. |
is_default | Integer | 1 for the non-deletable default group, 0 otherwise. |
creation_date | String | Group creation date, in YYYY-MM-DD format. |
keys_count | Integer | Number of prompts in the group. Returned only when keys_count=1. |
Response example
[
{ "id": 1, "name": "Default", "position": 0, "is_default": 1, "creation_date": "2025-06-01", "keys_count": 42 },
{ "id": 12, "name": "Brand queries", "position": 1, "is_default": 0, "creation_date": "2026-03-05", "keys_count": 15 },
{ "id": 18, "name": "Competitors", "position": 2, "is_default": 0, "creation_date": "2026-03-21", "keys_count": 28 }
]Error responses
| Code | Scenario |
|---|---|
400 | Invalid query parameters. |
403 | Access denied to the requested site. |
404 | Site not found. |
Create prompt group
POST https://api4.seranking.com/sites/{site_id}/airt/prompt-groups
Cost: 0. Managing prompt groups does not consume API credits or subscription quota.
Creates a new prompt group for a site. The new group is appended to the end of the group order. Returns 400 if a group with the same name already exists.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. Path parameter. |
token | String | Yes | N/A | Project API access token. Query parameter. |
name | String | Yes | N/A | Group name. Non-empty, maximum 255 characters, unique within the site. Body parameter. |
Request example
curl -X POST "https://api4.seranking.com/sites/72193/airt/prompt-groups?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Competitors"}'Response parameters
| Parameter | Type | Description |
|---|---|---|
id | Integer | ID of the created group. |
Response example
{ "id": 12 }Error responses
| Code | Scenario |
|---|---|
400 | Empty or missing name, name exceeds 255 characters, or name already exists on this site. |
403 | Access denied to the requested site. |
404 | Site not found. |
Rename prompt group
PATCH https://api4.seranking.com/sites/{site_id}/airt/prompt-groups/{group_id}
Cost: 0. Managing prompt groups does not consume API credits or subscription quota.
Updates the name of a prompt group.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. Path parameter. |
group_id | Integer | Yes | N/A | Group ID. Path parameter. |
token | String | Yes | N/A | Project API access token. Query parameter. |
name | String | Yes | N/A | New group name. Non-empty, maximum 255 characters. Body parameter. |
Request example
curl -X PATCH "https://api4.seranking.com/sites/72193/airt/prompt-groups/12?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"name": "Branded queries"}'
Response parameters
| Parameter | Type | Description |
|---|---|---|
id | Integer | ID of the renamed group. |
Response example
{ "id": 12 }Error responses
| Code | Scenario |
|---|---|
400 | Empty or missing name, name exceeds 255 characters, or name already exists on this site. |
403 | Access denied to the requested site. |
404 | Site or group not found. |
Delete prompt group
DELETE https://api4.seranking.com/sites/{site_id}/airt/prompt-groups/{group_id}
Cost: 0. Managing prompt groups does not consume API credits or subscription quota.
Deletes a prompt group. All prompts currently in the group are moved to the default group. The default group itself cannot be deleted.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. Path parameter. |
group_id | Integer | Yes | N/A | Group ID. Path parameter. |
token | String | Yes | N/A | Project API access token. Query parameter. |
Request example
curl -X DELETE "https://api4.seranking.com/sites/72193/airt/prompt-groups/12?token=YOUR_API_TOKEN"Response
Returns 204 No Content on success.
Error responses
| Code | Scenario |
|---|---|
400 | Invalid request. |
403 | Access denied, or attempt to delete the default group. |
404 | Site or group not found. |
Change group order
POST https://api4.seranking.com/sites/{site_id}/airt/prompt-groups/{group_id}/order
Cost: 0. Managing prompt groups does not consume API credits or subscription quota.
Moves a group to a new position in the site’s group order. Provide exactly one of before_id or after_id to anchor the new position.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. Path parameter. |
group_id | Integer | Yes | N/A | ID of the group to move. Path parameter. |
token | String | Yes | N/A | Project API access token. Query parameter. |
before_id | Integer | Conditional | N/A | Place the group immediately before this neighbour group ID. Required if after_id is omitted. Body parameter. |
after_id | Integer | Conditional | N/A | Place the group immediately after this neighbour group ID. Required if before_id is omitted. Body parameter. |
Request example
Move group 12 to right after group 18:
curl -X POST "https://api4.seranking.com/sites/72193/airt/prompt-groups/12/order?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"after_id": 18}'Response
Returns 204 No Content on success.
Error responses
| Code | Scenario |
|---|---|
400 | Both before_id and after_id are provided, or neither. |
403 | Access denied to the requested site. |
404 | Site, source group, or anchor group not found. |
Delete all prompts in group
DELETE https://api4.seranking.com/sites/{site_id}/airt/prompt-groups/{group_id}/keywords
Cost: 0. Managing prompt groups does not consume API credits or subscription quota.
Removes every prompt currently assigned to the group. The group itself is not deleted.
Warning:
- This operation is destructive. Deleted prompts and their historical data cannot be recovered.
- To keep the prompts but empty the group, use Move all prompts from one group to another instead.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. Path parameter. |
group_id | Integer | Yes | N/A | Group ID. Path parameter. |
token | String | Yes | N/A | Project API access token. Query parameter. |
Request example
curl -X DELETE "https://api4.seranking.com/sites/72193/airt/prompt-groups/12/keywords?token=YOUR_API_TOKEN"Response
Returns 204 No Content on success.
Error responses
| Code | Scenario |
|---|---|
400 | Invalid request. |
403 | Access denied to the requested site. |
404 | Site or group not found. |
Move prompts to group
POST https://api4.seranking.com/sites/{site_id}/airt/prompt-groups/{group_id}/moveKeywords
Cost: 0. Managing prompt groups does not consume API credits or subscription quota.
Moves a specific set of prompts into the target group. Prompts can come from any group on the same site.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. Path parameter. |
group_id | Integer | Yes | N/A | Target group ID. Path parameter. |
token | String | Yes | N/A | Project API access token. Query parameter. |
k2site_llm_ids | Array of Integer | Yes | N/A | Prompt-to-LLM link IDs to move, same IDs returned as k2site_llm_id by GET /prompts. Non-empty. Body parameter. |
Request example
curl -X POST "https://api4.seranking.com/sites/72193/airt/prompt-groups/12/moveKeywords?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"k2site_llm_ids": [101, 102, 103]}'Response
Returns 204 No Content on success.
Error responses
| Code | Scenario |
|---|---|
400 | Empty or missing k2site_llm_ids. |
403 | Access denied to the requested site. |
404 | Site, target group, or one or more prompts not found. |
Move all prompts from one group to another
POST https://api4.seranking.com/sites/{site_id}/airt/prompt-groups/moveGroupKeywords
Cost: 0. Managing prompt groups does not consume API credits or subscription quota.
Moves every prompt from one group to another in a single call. Use this to merge a group into another group, then optionally delete the now-empty source group.
Request parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
site_id | Integer | Yes | N/A | Site ID. Path parameter. |
token | String | Yes | N/A | Project API access token. Query parameter. |
from_group_id | Integer | Yes | N/A | Source group ID. Body parameter. |
to_group_id | Integer | Yes | N/A | Target group ID. Body parameter. |
Request example
curl -X POST "https://api4.seranking.com/sites/72193/airt/prompt-groups/moveGroupKeywords?token=YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"from_group_id": 18, "to_group_id": 12}'Response
Returns 204 No Content on success.
Error responses
| Code | Scenario |
|---|---|
400 | Missing from_group_id or to_group_id, or both are equal. |
403 | Access denied to the requested site. |
404 | Site, source group, or target group not found. |
