For the complete documentation index, see llms.txt. This page is also available as Markdown.

Cortex Agents API

Cortex Agents are lightweight "remote triage workers" that let your client check in, fetch its configuration, submit files for analysis, poll for results, and emit alerts — all under a consistent response envelope and strict ownership enforcement per API key.

API Base URL

https://ai.perkinsfund.org


Common Response Envelope

All endpoints return this top-level structure:

{
  "error": {},
  "request_metadata": {
    "request_id": "req_...",
    "request_timestamp": 1768241023.740849,
    "schema_version": "traceix.agent_output.v1"
  },
  "results": {},
  "success": true
}

On failure:

Authentication

All endpoints require:

  • X-Api-Key: YOUR_API_KEY

Ownership rule (important)

Where an endpoint accepts agent_uuid, the agent_uuid must belong to the authenticated user (API key owner). Otherwise, the request fails (e.g., “Invalid agent UUID” / “Agent does not exist”).


Agent Check-in

Endpoint: /api/traceix/agent/checkin Request type: POST Content type: JSON

Headers:

  • X-Api-Key: YOUR_API_KEY

  • content-type: application/json

Body:

  • agent_uuid: string

Example request

Expected outputs

Success:

Failure (invalid agent UUID):


Get Agent Metadata

Endpoint: /api/traceix/agent/metadata Request type: POST Content type: JSON

Headers:

  • X-Api-Key: YOUR_API_KEY

  • content-type: application/json

Body:

  • agent_uuid: string

Example request

Expected outputs

Success:

Failure (not owned / not accessible / doesn’t exist):


Run Agent

Endpoint: /api/traceix/agent/run Request type: POST Content type: multipart/form-data

Headers:

  • X-Api-Key: YOUR_API_KEY

  • X-Agent-Id: AGENT_UUID

Body:

  • file: the file to submit (multipart form)

NOTE: This endpoint queues an analysis job and returns a uuid you will poll using /api/traceix/agent/status.

Example request

Expected outputs

Success (queued):

Failure (agent does not exist / not accessible):


Check Agent Run Status

Endpoint: /api/traceix/agent/status Request type: POST Content type: JSON

Headers:

  • X-Api-Key: YOUR_API_KEY

  • content-type: application/json

Body:

  • uuid: string (the job UUID returned from /api/traceix/agent/run)

  • agent_uuid: string (the agent UUID used to launch the job)

NOTE: You must provide both uuid and agent_uuid.

Example request

Expected outputs

Success can return either a pending status or completed results.

Success (pending):

Success (completed example):

Failure example:


Submit Agent Alert

Endpoint: /api/traceix/agent/alert Request type: POST Content type: JSON

Headers:

  • X-Api-Key: YOUR_API_KEY

  • content-type: application/json

Body (required):

  • agent_uuid: string

  • client_id: string

  • classification: string (example: safe, malicious, etc.)

  • file_path: string

  • sha256_hash: string

Body (optional / nullable):

  • capa: array or null

  • exif: object or null

  • yara: string or null

Example request

Expected outputs

Success:

Failure (invalid agent UUID):


Get Agent Alerts

Endpoint: /api/traceix/agent/alerts/get Request type: POST Content type: JSON

Headers:

  • X-Api-Key: YOUR_API_KEY

  • content-type: application/json

Body:

  • agent_uuid: string

Example request

Expected outputs

Success (example shape):

Failure (invalid agent UUID):


SDKs

  • GitHub: https://github.com/Perkins-Fund/Traceix-SDK

  • More languages: coming soon…

Last updated

Was this helpful?