Skip to main content
The CorePillar REST API lives under /api/v1 on each product’s host. It’s the same API the AgentHub and ModelHub web apps call, plus a small set of endpoints meant for your own code: trace ingestion and OpenTelemetry export.

Base URLs

Every path in this reference is relative to the base URL. For example, trace ingestion is:

Which endpoints you can call from your code

The endpoints fall into two groups that authenticate differently. Authentication has the details. The app endpoints are documented so you can see what the product does and what each permission unlocks. They require a browser session cookie, and there are no personal API tokens to call them from a script. If you need to automate something beyond ingestion, talk to your CorePillar contact.
There’s no CorePillar SDK package. Use any HTTP client for the ingest endpoint, or any standard OpenTelemetry exporter for the OTLP endpoint. See the Tracing quickstart.

Response envelope

Most endpoints return JSON in one of two shapes. Success:
  • data holds the result: an object or an array.
  • meta is present only on endpoints that page or count results.
Error:
  • code is a stable SCREAMING_SNAKE_CASE identifier. Branch on code, never on message.
  • message is a human-readable sentence that may change.
  • details is an object with extra context. It’s often empty ({}).
The full list is in Errors.

Exceptions to the envelope

A few endpoints answer in a different shape because a client outside AgentHub dictates it:

Pagination

Most list endpoints return the full list in one response. The exceptions: Traces are ordered newest first by started_at. The cursor marks a started_at boundary, so if several traces share exactly the same started_at as the last item on a page, some of them can be skipped by the next page.

Content types

  • Send request bodies as application/json unless an endpoint says otherwise. The synthetic-data endpoints reject other content types with 415.
  • POST /chat/attachments takes multipart/form-data with the file in a file field.
  • The OTLP endpoints take application/x-protobuf or application/json, optionally gzip or deflate compressed.
  • Timestamps are ISO 8601 strings in UTC. The ingest endpoint requires a trailing Z.
  • IDs for organizations, projects, evaluators, collections, runs and keys are UUIDs. A trace’s trace_id is your own string.

Status codes

Versioning

The version is part of the path (/api/v1). There’s no version header. Within v1, fields may be added to responses, so ignore fields you don’t recognize. There is no v2 today.

Rate limits

Only one endpoint is rate limited by AgentHub itself: POST /auth/sso-discovery, at 30 requests per minute per client IP. Everything else, including ingestion, has no per-key rate limit today. Long-running streaming endpoints can run for up to 800 seconds.