Skip to main content
POST
/
v1
/
groups
Create group
curl --request POST \
  --url https://api.production.xtrace.ai/v1/groups \
  --header 'Content-Type: application/json' \
  --header 'X-Org-Id: <api-key>' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "name": "<string>",
  "prompt": "<string>"
}
'
{
  "id": "<string>",
  "name": "<string>",
  "prompt": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "object": "group",
  "updated_at": "2023-11-07T05:31:56Z"
}

Authorizations

x-api-key
string
header
required

Long-lived org API key. Alternative: Authorization: Bearer <key>.

X-Org-Id
string
header
required

Required alongside the API key (no key→org reverse index).

Body

application/json

POST /v1/groups — register a new group.

The prompt is the instruction the ingest classifier reads on every ingest to decide whether an extracted memory belongs in this group. Write it as a description of what belongs, not a chat instruction — e.g. "Facts about the Tokyo trip: dates, flights, hotels, dietary preferences for Tokyo", not "tag this if you think it should be tagged".

name
string
required

Human-readable label, shown in UI. Not used by the classifier.

Required string length: 1 - 120
Example:

"Tokyo trip 2026"

prompt
string
required

Free-text criterion the ingest classifier reads to decide whether an extracted memory belongs in this group. Describe what belongs, not how the classifier should behave.

Required string length: 1 - 2000
Example:

"Facts about the Tokyo trip in May 2026: dates, flights, hotels, restaurants, dietary preferences for this trip."

Response

Successful Response

Wire shape of a group. id is the opaque handle that goes into IngestRequest.group_ids and into search filters.

id
string
required

Stable group id of the form grp_<32-hex-chars>.

Example:

"grp_a1b2c3d4e5f6071829304a5b6c7d8e9f"

name
string
required

Human-readable label.

prompt
string
required

Classifier criterion. Read by the ingest pipeline on every request that includes this group's id in group_ids.

status
enum<string>
required

active groups are tagged on new ingests. archived groups still surface on search (rows tagged with the id stay reachable) but the ingest classifier rejects them.

Available options:
active,
archived
created_at
string<date-time>
required

ISO-8601 timestamp the group was registered.

object
string
default:group

Constant discriminator for the resource type.

Allowed value: "group"
updated_at
string<date-time>

ISO-8601 timestamp of the most recent edit.