Direct HTTP Guide
Most integrations should use MCP (https://mcp.configure.dev), the default path. Use the TypeScript SDK when you own the app's model loop, and direct HTTP only when neither fits.
Base URL: https://api.configure.dev. All server-side requests include:
txt
X-API-Key: sk_...
X-Agent: your-agentLinked users include the agent-scoped token returned by Configure Link or the access token from the Continue with Configure (SSO) token exchange:
txt
Authorization: Bearer <configure-agent-token>Developer-scoped users can use:
txt
X-User-Id: app-local-user-idProfile routes:
GET /v1/profile: the composed profile; optional?sections=identity,summaryand?box=<name>. The box is a name, not an id: a category, a source namespace, orprojects/<slug>. Box reads accept?page=<n>(integer, starts at 1) for paginated box views such asprojects/<slug>,?since=<date or ISO timestamp>for a delta view (only newer notes; the response echoessince, counts the delta intotal, and always returnslatest, the newest note timestamp, as the next cursor), and?detail=fullfor whole notes. Compact box reads cut long notes and mark themtruncated: true. Notes written over MCP carry a server-stampedsessionfield (a short hash) that tells sessions of one agent apart.GET /v1/profile/search: query paramsquery(the search text),source,box,from,to(YYYY-MM-DD),limit,detail(compactorfull).boxcombined withsourcefilters the writer's own shelf;boxalone filters judged canonical categories;box=projects/<slug>spans namespaces. Bare source names that collide with import providers (for exampleclaude) match both the agent's shelf and the import shelf. Useagents/<name>for agent-only results andimports/<provider>orimport:<provider>for import-only results.POST /v1/profile/remember: body{ "fact": "<1 to 10000 chars>", "box"?: "<shelf>" }. Success returns{ saved: true, app, fact, memory: { id, ... } }. Rejected writes (dedupe or invalid content under the admission gate) return{ saved: false, ..., reason }with no memory object. Key onsaved.POST /v1/profile/forget: body{ "id": "mem_<32 hex>", "date"?: "YYYY-MM-DD", "reason"?: "correction" | "user_request" }. Deletes one of your own agent's memories; foreign ids return not-found. Reasonuser_requestalso suppresses the fact across sources. Mirrors the MCPconfigure_profile_forgettool.POST /v1/profile/commit: not a plain save, but a bounded runtime packet{ memories?, messages?, toolResults?, sync? }that Configure extracts memories from. Caps: up to 20 memories of up to 1000 chars each, and up to 20 messages and toolResults.syncdefaults tofalse; async extraction responds202with status"processing". Userememberfor a single explicit fact.
Connector routes live under /v1/connectors/*. Web search and URL fetch are utility routes under /v1/web/*, not connectors. These routes require the agent-scoped Bearer token from Configure Link only; they do not accept SSO access tokens, X-User-Id, or user_id request bodies.
Legacy memory route aliases are not active.