API reference.

A small REST surface. Stable since v1.0. Versioned URLs, a deprecation policy, and a full audit trail for every recall.

v1 · stableOpenAPI spec availableQuickstart →

01Authentication

Every request carries a Bearer token in the Authorization header. Keys are scoped to a single container by default; use a workspace-level key for cross-container audit work.

bashcurl
curl https://agentprizm.com/api/v1/agent/recall \
  -H "Authorization: Bearer ap_••••" \
  -H "Content-Type: application/json"

A machine-readable OpenAPI 3.1 spec covering all endpoints is at GET /api/v1/agent/openapi.json.

02POST /api/v1/agent/memories

Create one or more memories. Returns assigned IDs and any contradictions detected against existing memories. Send a single memory body, or batch with { memories: [...] }.

Request body

FieldTypeNotes
contentstringRequired. The memory itself.
typeenumRequired. fact · lesson · directive · preference · contact · bookmark
containersstring[]Optional. Containers this memory belongs to.
tagsstring[]Optional. Free-form tags for filtering.
sourceenumOptional. direct · conversation · capture · extraction · compaction
validFromISO 8601Optional. Defaults to creation time.
validUntilISO 8601Optional. Marks the memory stale after this date.
metadataobjectArbitrary JSON, queryable.

03POST /api/v1/agent/recall

Retrieve the most relevant memories for a query. Recall is hybrid semantic + keyword — set searchMode to semantic, keyword, or hybrid (the default). Filter by container, type, and time range.

jsonrequest
{
  "query": "when can we close?",
  "containers": ["acme-co"],
  "types": ["fact"],
  "limit": 5,
  "searchMode": "hybrid"
}
jsonresponse
{
  "memories": [
    {
      "id": "mem_01H...",
      "content": "Procurement freezes Dec 15 → Jan 5...",
      "type": "fact",
      "similarity": 0.94,
      "containers": ["acme-co"],
      "validUntil": "2026-12-31"
    }
  ]
}

04Memory object

Every memory has a stable ID, a confidence score (0–1), a type, and provenance. Updates create a new version, and contradictions shadow rather than overwrite. Read or edit a single memory at GET / PATCH / DELETE /api/v1/agent/memories/:id.

05GET /api/v1/agent/stats

Fetch usage stats and your plan limits — memories stored, recalls used, and remaining quota. Stats queries don't bill against your quota.

bashcurl
curl https://agentprizm.com/api/v1/agent/stats \
  -H "Authorization: Bearer ap_••••"

06Errors

CodeStatusMeaning
invalid_request400Malformed body or missing field.
auth_failed401Bad or expired API key.
forbidden403Key not scoped to this container.
not_found404Memory or trace ID doesn't exist.
cost_ceiling402Per-account cost ceiling or included quota exhausted. Upgrade or wait for the monthly reset.
MARKETPLACE_DISABLED403The marketplace feature flag is off for this deployment.
COPYLEFT_LOCKED409Cannot unpublish or deprecate a fork — forks are copyleft and stay public.
APPEAL_CONFLICT409Cannot appeal — the skill isn't in a removed state, or you already have a pending appeal.
quota_exhausted429Plan cap hit. See retry-after.
rate_limited429Too many concurrent requests.
server_error500Something on our end. Retries are safe.

07Rate limits

Default rate limit is 100 RPS per API key, burstable to 500 for 10 seconds. Enterprise keys are negotiated. All endpoints honor the standard X-RateLimit-Limit, X-RateLimit-Remaining, and X-RateLimit-Reset headers.

08Skills API

Skills are reusable, versioned capabilities — a name, a description, and a SKILL.md body — that your agents can publish, discover, and load. These endpoints operate on your skills only; cross-author discovery lives in the Marketplace API below. All skill routes are POST and take a JSON body.

MethodEndpointPurpose
POST/api/v1/agent/skillsPublish (create) a skill.
POST/api/v1/agent/skills/getFetch one of your skills by id or slug.
POST/api/v1/agent/skills/searchSemantic discovery across your skills.
POST/api/v1/agent/skills/listList your skills with filters.
POST/api/v1/agent/skills/updateUpdate a skill in place.
POST/api/v1/agent/skills/deprecateSoft-deprecate a skill.
POST/api/v1/agent/skills/importPublish from a SKILL.md manifest.
POST/api/v1/agent/skills/exportExport a skill as SKILL.md.
POST/api/v1/agent/skills/publish-publicPublish a private skill to the public marketplace.
POST/api/v1/agent/skills/unpublishRemove your skill from the marketplace.

POST /api/v1/agent/skills

Create a skill. name, description, and content (the SKILL.md body) are required; slug, tags, containers, and maturity are optional.

jsonrequest
{
  "name": "Close-Plan Drafter",
  "description": "Drafts a deal close plan from recalled account facts.",
  "content": "# Close-Plan Drafter\\n\\n## Instructions\\n...",
  "slug": "close-plan-drafter",
  "tags": ["sales", "planning"],
  "containers": ["acme-co"],
  "maturity": "stable"
}
jsonresponse
{
  "skill": {
    "id": "skl_01H...",
    "slug": "close-plan-drafter",
    "name": "Close-Plan Drafter",
    "description": "Drafts a deal close plan from recalled account facts.",
    "maturity": "stable",
    "visibility": "private",
    "version": 1,
    "containers": ["acme-co"],
    "createdAt": "2026-06-21T00:00:00Z"
  }
}

09Marketplace API

The marketplace exposes public skills published by all authors. It is governed by Terms §21–24 (UGC, copyleft, DMCA) and is gated by a server feature flag — when the flag is off these routes return 403 MARKETPLACE_DISABLED. All routes are POST and take a JSON body.

MethodEndpointPurpose
POST/api/v1/agent/marketplace/searchBrowse/search public skills across all authors (semantic when query is present, else popular/new).
POST/api/v1/agent/marketplace/getPublic skill detail (by id, or slug + authorHandle); includes the SKILL.md body.
POST/api/v1/agent/marketplace/installInstall a public skill as a private, read-only copy.
POST/api/v1/agent/marketplace/forkFork a public skill (public-from-creation, immutable lineage, copyleft).
POST/api/v1/agent/marketplace/reportReport a public skill for moderation.
POST/api/v1/agent/marketplace/appealAppeal a takedown of your own removed skill (owner-only; one pending at a time).

A fork is public and can never be made private — its copyleft lineage is immutable. If you want a private copy, use install instead.

When an admin takes down a public skill, its author is emailed (best-effort) with the reason and how to appeal. Authors can appeal via POST /api/v1/agent/marketplace/appeal (or the skill_appeal MCP tool) — submit { id, message } for a removed skill you own; only one appeal can be pending at a time (5/day). Admins grant the appeal (restored to the marketplace) or deny it (stays removed), and the author is emailed the outcome.

jsonrequest
{
  "query": "close plan drafting",
  "tags": ["sales"],
  "sort": "popular",
  "limit": 10
}
jsonresponse
{
  "skills": [
    {
      "id": "skl_01H...",
      "slug": "close-plan-drafter",
      "authorHandle": "acme",
      "name": "Close-Plan Drafter",
      "description": "Drafts a deal close plan from recalled account facts.",
      "installs": 128,
      "forks": 9,
      "similarity": 0.91
    }
  ]
}

Need integration help?

Stuck on a tricky integration?

Our solutions engineers help design partners ship in days, not weeks. Send the snippet, we'll send the fix.

Ship agents that remember.

Six lines of code. Confidence scores, validity windows, and audit trails included. Free until your agents ship.

Talk to us