AI Result Tracker – Prompt 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.
- 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.
List prompt groups
GET https://api.seranking.com/v1/project-management/airt/prompts/groups
Quick start
curl 'https://api.seranking.com/v1/project-management/airt/prompts/groups?site_id=11270054&keys_count=1' \
-H 'Authorization: Token YOUR_API_KEY'Returns every prompt group for project 11270054, ordered by position, with a keys_count on each group.
Request parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
site_id | integer | yes | Project ID. From GET /sites. |
keys_count | enum | no | 0 or 1. When 1, each group includes a keys_count field. Defaults to omitted (no keys_count in response). |
site_llm_ids[] | integer[] | no | Filter to groups that contain at least one prompt on these LLM engines. Repeat the parameter: site_llm_ids[]=1&site_llm_ids[]=2. Combined as OR (union). |
Response shape
[
{
"id": "string",
"name": "string",
"position": "string",
"is_default": "string",
"creation_date": "YYYY-MM-DD",
"keys_count": "string"
}
]The response is a bare JSON array (no data envelope).
| Field | Type | Description |
|---|---|---|
id | string | Numeric group ID, encoded as a string. Use as group_id in every other prompt-group / prompts endpoint. |
name | string | Group name. Unique within the project (case-sensitive). Max 255 chars. |
position | string | Sort order within the project, ascending. Not guaranteed to start at 0. |
is_default | string | "1" for the project’s undeleteable default group, "0" otherwise. Exactly one default per project once AIRT has been initialized. |
creation_date | string | YYYY-MM-DD (server timezone). The default group’s date equals the day AIRT was first opened on the project, not the project’s creation date. |
keys_count | string | Numeric prompt count, encoded as a string. Present only when keys_count=1 in the query. When site_llm_ids[] is also set, this becomes per-filtered-engine. |
Response example
Project 11270054, all three groups, with counts requested:
[
{ "id": "26377", "name": "General", "position": "1", "is_default": "1", "creation_date": "2026-03-03", "keys_count": "25" },
{ "id": "52273", "name": "docs-test-alpha", "position": "2", "is_default": "0", "creation_date": "2026-05-15", "keys_count": "2" },
{ "id": "52276", "name": "docs-test-beta", "position": "3", "is_default": "0", "creation_date": "2026-05-15", "keys_count": "3" }
]Error responses
| Code | Scenario |
|---|---|
| 400 | Invalid query parameters. |
| 403 | Project doesn’t exist, or exists but isn’t owned by the API key (the gateway conflates the two). |
| 404 | site_id=0 only. |
Missing or malformed site_id does not error — it silently returns the /sites project list with HTTP 200.
Create prompt group
POST https://api.seranking.com/v1/project-management/airt/prompts/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. |
name | String | Yes | N/A | Group name. Non-empty, maximum 255 characters, unique within the site. Body parameter. |
Request example
curl -X POST "https://api.seranking.com/v1/project-management/airt/prompts/groups?site_id=123" \
-H "Content-Type: application/json" \
-d '{"name": "Competitors"}'\
-H 'Authorization: Token YOUR_API_KEY'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://api.seranking.com/v1/project-management/airt/prompts/groups
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. |
name | String | Yes | N/A | New group name. Non-empty, maximum 255 characters. Body parameter. |
Request example
curl -X PATCH "https://api.seranking.com/v1/project-management/airt/prompts/groups?site_id=123&group_id=147" \
-H "Content-Type: application/json" \
-d '{"name": "Branded queries"}'\
-H 'Authorization: Token YOUR_API_KEY'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://api.seranking.com/v1/project-management/airt/prompts/groups
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. |
Request example
curl -X DELETE "https://api.seranking.com/v1/project-management/airt/prompts/groups?site_id=123&group_id=147"\
-H 'Authorization: Token YOUR_API_KEY'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://api.seranking.com/v1/project-management/airt/prompts/groups/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. |
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://api.seranking.com/v1/project-management/airt/prompts/groups/order?site_id=123&group_id=147" \
-H "Content-Type: application/json" \
-d '{"after_id": 18}'\
-H 'Authorization: Token YOUR_API_KEY'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 api.seranking.com/v1/project-management/airt/prompts/groups/prompts
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. |
Request example
curl -X DELETE "https://api.seranking.com/v1/project-management/airt/prompts/groups/prompts?site_id=123&group_id=147"\
-H 'Authorization: Token YOUR_API_KEY'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://api.seranking.com/v1/project-management/airt/prompts/groups/move
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. |
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://api.seranking.com/v1/project-management/airt/prompts/groups/move?site_id=123&group_id=147" \
-H "Content-Type: application/json" \
-d '{"k2site_llm_ids": [101, 102, 103]}'\
-H 'Authorization: Token YOUR_API_KEY'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://api.seranking.com/v1/project-management/airt/prompts/groups/transfer
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. |
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://api.seranking.com/v1/project-management/airt/prompts/groups/transfer?site_id=123" \
-H "Content-Type: application/json" \
-d '{"from_group_id": 18, "to_group_id": 12}'\
-H 'Authorization: Token YOUR_API_KEY'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. |
