Skip to content

Prompts and tags

List and manage tracked prompts and the tags used to organise them.

Code example

List Prompts
curl -X GET 'https://api.trakkr.ai/get-prompts?brand_id=00000000-0000-4000-8000-234e03c0ef68&active_only=false&limit=100&offset=0' \
  -H "Authorization: Bearer $TRAKKR_API_KEY"
Response · 200 OK
{
  "prompts": [
    {
      "id": "00000000-0000-4000-8000-234e03c0ef68",
      "brand_id": "00000000-0000-4000-8000-81f286d10c3c",
      "text": "What are the best CRM tools for enterprise?",
      "active": true,
      "focus_area": "enterprise",
      "intent": "recommendation",
      "audience": "enterprise",
      "specificity": 3,
      "quality_score": 85,
      "source": "generated",
      "created_at": "2026-01-05T08:00:00Z",
      "updated_at": "2026-01-08T14:30:00Z",
      "tags": [
        { "id": "a1b2c3d4-...", "name": "Enterprise", "colour": "#2563eb" }
      ]
    }
  ],
  "total": 25,
  "limit": 100,
  "offset": 0
}

Synthetic example. Values are made up.

API key required

60 req/min

List Prompts

GET/get-prompts

Authenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide

Request parameters

brand_idstringqueryRequired

Brand UUID

Format: uuid

active_onlybooleanqueryOptional

Only return active prompts

Default: false

tag_idsstring | nullqueryOptional

Comma-separated tag UUIDs to filter by

limitintegerqueryOptional

Results per page

Default: 100 · Minimum: 1 · Maximum: 500

offsetintegerqueryOptional

Pagination offset

Default: 0 · Minimum: 0

Responses and errors
200Successful Response

application/json

promptsobject[]Required

Fields in prompts

Array of object.

idstringRequired

brand_idstringRequired

textstringRequired

activebooleanOptional

Default: true

focus_areastring | nullOptional

intentstring | nullOptional

audiencestring | nullOptional

specificityinteger | nullOptional

quality_scoreinteger | nullOptional

sourcestringOptional

Default: "api"

created_atstringRequired

updated_atstring | nullOptional

tagsobject[] | nullOptional

totalintegerRequired

limitintegerRequired

offsetintegerRequired

401Missing, malformed, or expired credentials

application/json

detailstring | object | nullOptional

errorstring | nullOptional

402The current plan does not fund this operation

application/json

detailstring | object | nullOptional

errorstring | nullOptional

403Invalid credentials, missing brand access, or insufficient role

application/json

detailstring | object | nullOptional

errorstring | nullOptional

422Validation Error

application/json

detailobject[]Optional

Fields in detail

Array of object.

locstring | integer[]Required

Fields in loc

Array of string | integer.

string

string.

integer

integer.

msgstringRequired

typestringRequired

429Rate limit exceeded

application/json

detailstring | object | nullOptional

errorstring | nullOptional

500The operation failed

application/json

detailstring | object | nullOptional

errorstring | nullOptional

503Authentication, entitlement, or a required dependency is temporarily unavailable

application/json

detailstring | object | nullOptional

errorstring | nullOptional

OpenAPI source

Returns all prompts for a brand. Use active_only=true to filter to only active prompts.

Use the brand UUID returned by /get-brands. Pass it as brand_id when listing prompts or tags.
Try GET /get-prompts

Create Prompt

POST/get-prompts

Authenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide

JSON request body (required)

brand_idstringRequired

Format: uuid

textstringRequired

activebooleanOptional

Default: true

focus_areastring | nullOptional

intentstring | nullOptional

audiencestring | nullOptional

Responses and errors
201Successful Response

application/json

idstringRequired

brand_idstringRequired

textstringRequired

activebooleanOptional

Default: true

focus_areastring | nullOptional

intentstring | nullOptional

audiencestring | nullOptional

specificityinteger | nullOptional

quality_scoreinteger | nullOptional

sourcestringOptional

Default: "api"

created_atstringRequired

updated_atstring | nullOptional

tagsobject[] | nullOptional

401Missing, malformed, or expired credentials

application/json

detailstring | object | nullOptional

errorstring | nullOptional

402The current plan does not fund this operation

application/json

detailstring | object | nullOptional

errorstring | nullOptional

403Invalid credentials, missing brand access, or insufficient role

application/json

detailstring | object | nullOptional

errorstring | nullOptional

422Validation Error

application/json

detailobject[]Optional

Fields in detail

Array of object.

locstring | integer[]Required

Fields in loc

Array of string | integer.

string

string.

integer

integer.

msgstringRequired

typestringRequired

429Rate limit exceeded

application/json

detailstring | object | nullOptional

errorstring | nullOptional

500The operation failed

application/json

detailstring | object | nullOptional

errorstring | nullOptional

503Authentication, entitlement, or a required dependency is temporarily unavailable

application/json

detailstring | object | nullOptional

errorstring | nullOptional

OpenAPI source

Create a new prompt for tracking. New prompts are included in the next scan.

Create Prompt
curl -X POST 'https://api.trakkr.ai/get-prompts' \
  -H "Authorization: Bearer $TRAKKR_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"brand_id":"00000000-0000-4000-8000-81f286d10c3c","text":"What are the best CRM tools for healthcare?","active":true,"focus_area":"industry","intent":"recommendation"}'

Update Prompt

PUT/get-prompts

Authenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide

JSON request body (required)

prompt_idstringRequired

Format: uuid

textstring | nullOptional

activeboolean | nullOptional

focus_areastring | nullOptional

intentstring | nullOptional

audiencestring | nullOptional

Responses and errors
200Successful Response

application/json

idstringRequired

brand_idstringRequired

textstringRequired

activebooleanOptional

Default: true

focus_areastring | nullOptional

intentstring | nullOptional

audiencestring | nullOptional

specificityinteger | nullOptional

quality_scoreinteger | nullOptional

sourcestringOptional

Default: "api"

created_atstringRequired

updated_atstring | nullOptional

tagsobject[] | nullOptional

401Missing, malformed, or expired credentials

application/json

detailstring | object | nullOptional

errorstring | nullOptional

402The current plan does not fund this operation

application/json

detailstring | object | nullOptional

errorstring | nullOptional

403Invalid credentials, missing brand access, or insufficient role

application/json

detailstring | object | nullOptional

errorstring | nullOptional

422Validation Error

application/json

detailobject[]Optional

Fields in detail

Array of object.

locstring | integer[]Required

Fields in loc

Array of string | integer.

string

string.

integer

integer.

msgstringRequired

typestringRequired

429Rate limit exceeded

application/json

detailstring | object | nullOptional

errorstring | nullOptional

500The operation failed

application/json

detailstring | object | nullOptional

errorstring | nullOptional

503Authentication, entitlement, or a required dependency is temporarily unavailable

application/json

detailstring | object | nullOptional

errorstring | nullOptional

OpenAPI source

Update an existing prompt. Include prompt_id in the request body.

Delete Prompt

DELETE/get-prompts?prompt_id={id}

Authenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide

Request parameters

prompt_idstringqueryRequired

Prompt UUID to delete

Format: uuid

Responses and errors
200Successful Response

application/json

successbooleanRequired

deleted_idstringRequired

401Missing, malformed, or expired credentials

application/json

detailstring | object | nullOptional

errorstring | nullOptional

402The current plan does not fund this operation

application/json

detailstring | object | nullOptional

errorstring | nullOptional

403Invalid credentials, missing brand access, or insufficient role

application/json

detailstring | object | nullOptional

errorstring | nullOptional

422Validation Error

application/json

detailobject[]Optional

Fields in detail

Array of object.

locstring | integer[]Required

Fields in loc

Array of string | integer.

string

string.

integer

integer.

msgstringRequired

typestringRequired

429Rate limit exceeded

application/json

detailstring | object | nullOptional

errorstring | nullOptional

500The operation failed

application/json

detailstring | object | nullOptional

errorstring | nullOptional

503Authentication, entitlement, or a required dependency is temporarily unavailable

application/json

detailstring | object | nullOptional

errorstring | nullOptional

OpenAPI source

Delete a prompt. Historical data for this prompt will be retained.

List Tags

GET/get-tags

Authenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide

Request parameters

brand_idstringqueryRequired

Brand UUID

Format: uuid

Responses and errors
200Successful Response

application/json

tagsobject[]Required

Fields in tags

Array of object.

idstringRequired

namestringRequired

colourstring | nullOptional

prompt_countintegerOptional

Default: 0

totalintegerRequired

401Missing, malformed, or expired credentials

application/json

detailstring | object | nullOptional

errorstring | nullOptional

402The current plan does not fund this operation

application/json

detailstring | object | nullOptional

errorstring | nullOptional

403Invalid credentials, missing brand access, or insufficient role

application/json

detailstring | object | nullOptional

errorstring | nullOptional

422Validation Error

application/json

detailobject[]Optional

Fields in detail

Array of object.

locstring | integer[]Required

Fields in loc

Array of string | integer.

string

string.

integer

integer.

msgstringRequired

typestringRequired

429Rate limit exceeded

application/json

detailstring | object | nullOptional

errorstring | nullOptional

500The operation failed

application/json

detailstring | object | nullOptional

errorstring | nullOptional

503Authentication, entitlement, or a required dependency is temporarily unavailable

application/json

detailstring | object | nullOptional

errorstring | nullOptional

OpenAPI source

Returns every tag owned by the brand, including unused tags. Each item includes its currentprompt_count.

List Tags
curl -X GET 'https://api.trakkr.ai/get-tags?brand_id=00000000-0000-4000-8000-81f286d10c3c' \
  -H "Authorization: Bearer $TRAKKR_API_KEY"
Response · 200 OK
{
  "tags": [
    {
      "id": "a1b2c3d4-...",
      "name": "Enterprise",
      "colour": "#2563eb",
      "prompt_count": 6
    }
  ],
  "total": 1
}

Synthetic example. Values are made up.

Manage Prompt Tags

POST/manage-prompt-tags

Authenticate with Authorization: Bearer $TRAKKR_API_KEY. Key and access guide

JSON request body (required)

actionstringRequired

Options: "create", "update", "delete", "add", "remove"

brand_idstringRequired

Format: uuid

tag_idstring | nullOptional

Format: uuid

tag_namestring | nullOptional

Maximum length: 60

colourstring | nullOptional

prompt_idsstring[]Optional

Maximum items: 200

Fields in prompt_ids

Array of string. Maximum items: 200

string. Format: uuid

create_if_missingbooleanOptional

Default: true

Responses and errors
200Successful Response

application/json

successbooleanRequired

actionstringRequired

tagobjectRequired

Tag in API response.

Fields in tag

idstringRequired

namestringRequired

colourstring | nullOptional

createdbooleanOptional

Default: false

affected_prompt_idsstring[]Optional

Fields in affected_prompt_ids

Array of string.

string.

affected_countintegerOptional

Default: 0

unchanged_countintegerOptional

Default: 0

401Missing, malformed, or expired credentials

application/json

detailstring | object | nullOptional

errorstring | nullOptional

402The current plan does not fund this operation

application/json

detailstring | object | nullOptional

errorstring | nullOptional

403Invalid credentials, missing brand access, or insufficient role

application/json

detailstring | object | nullOptional

errorstring | nullOptional

422Validation Error

application/json

detailobject[]Optional

Fields in detail

Array of object.

locstring | integer[]Required

Fields in loc

Array of string | integer.

string

string.

integer

integer.

msgstringRequired

typestringRequired

429Rate limit exceeded

application/json

detailstring | object | nullOptional

errorstring | nullOptional

500The operation failed

application/json

detailstring | object | nullOptional

errorstring | nullOptional

503Authentication, entitlement, or a required dependency is temporarily unavailable

application/json

detailstring | object | nullOptional

errorstring | nullOptional

OpenAPI source

Use create, update, ordelete to manage a tag. Use add orremove to change that tag across up to 200 prompts at once.

Add and remove are safe to retry. For add/remove, provide exactly one of tag_id ortag_name. Adding by name creates the tag when missing unlesscreate_if_missing is false. Editor access is required for every action.

Use tag_name for create and tag_id for update or delete. For add and remove, supply 1 to 200 prompt_ids plus a tag ID or name.create_if_missing controls whether adding by name may create a new tag.

Add a Tag to Prompts
curl -X POST 'https://api.trakkr.ai/manage-prompt-tags' \
  -H "Authorization: Bearer $TRAKKR_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"action":"add","brand_id":"00000000-0000-4000-8000-81f286d10c3c","tag_name":"Enterprise","prompt_ids":["00000000-0000-4000-8000-234e03c0ef68"],"create_if_missing":true}'

Enum Values

focus_area

generalbudgetenterprisefeaturesuxintegrationscomparisonsindustrygeographictrends

intent

recommendationcomparisonalternativediscoverybest_for

audience

enterprisesmbconsumerdevelopergeneral

Rate Limits

Rate limit: 60 requests/minute for GET. Write operations (POST, PUT, DELETE) are limited to 30 requests/minute.