Skip to content

HTTP API Reference

The SDK is the supported integration surface for PR1. Direct HTTP is available for runtimes that cannot use the TypeScript SDK.

Authentication

Server-side calls use:

txt
X-API-Key: sk_...
X-Agent: your-agent

API keys are issued from the developer dashboard after you sign in at https://configure.dev/login.

Linked or SSO-authenticated users send an approved Configure token. For OAuth SSO, keep the access token server-side. For Link fallback, use the agent-scoped token returned by Configure Link:

txt
Authorization: Bearer <configure-agent-token>

Developer-scoped users send:

txt
X-User-Id: external-user-id

Connector and web utility routes are token-authoritative: use X-API-Key plus an approved Bearer token. They do not accept X-User-Id or user_id request bodies.

Legacy Hosted Sign-In Code Routes

These routes support the older hosted return-code flow. New web products with an OAuth provider row should start with Continue with Configure. In the legacy flow, the hosted first-party page at https://accounts.configure.dev/ returns a short-lived code, never a JWT. Exchange that code on your server with a secret key.

MethodRouteAuthPurpose
POST/v1/auth/sign-in/return-destinationsX-API-Key: sk_...Allowlist a web callback or native deep link for the acting agent.
GET/v1/auth/sign-in/return-destinationsX-API-Key: sk_...List allowlisted return destinations.
DELETE/v1/auth/sign-in/return-destinationsX-API-Key: sk_...Remove an allowlisted return destination.
POST/v1/auth/sign-in/codeAuthorization: Bearer <configure-agent-token>Configure-owned hosted surface creates the return code after user approval.
POST/v1/auth/sign-in/exchangeX-API-Key: sk_...Exchange one code for an agent-scoped token.
POST/v1/auth/sign-in/validateX-API-Key: sk_...Validate a stored agent-scoped sign-in token for the acting agent.

POST /v1/auth/sign-in/return-destinations

json
{
  "return_to": "https://app.example/auth/configure/callback"
}

Return destinations must be absolute URLs or app links. https: is expected for production web callbacks. http: is accepted only for localhost development. URL fragments are stripped before storage.

POST /v1/auth/sign-in/exchange

json
{
  "code": "cfgsic_..."
}

Successful exchange returns the same token shape as Configure Link:

json
{
  "token": "eyJ...",
  "userId": "00000000-0000-0000-0000-000000000000",
  "tokenUse": "agent",
  "approved": true,
  "agent": "your-agent"
}

Codes expire after five minutes, are single-use, and are scoped to the developer account and acting agent resolved from the secret API key.

POST /v1/auth/sign-in/validate

Use this server-side when restoring a legacy hosted sign-in session. Do not validate agent-scoped SSO tokens through /v1/me; that route accepts user-scoped JWTs only.

json
{
  "token": "eyJ..."
}

The token is valid only if it is an unexpired Configure agent token, belongs to the developer account and agent resolved from your sk_ key, and the user still has an approved agent relationship.

json
{
  "valid": true,
  "userId": "00000000-0000-0000-0000-000000000000",
  "tokenUse": "agent",
  "approved": true,
  "agent": "your-agent"
}

Canonical Profile Routes

MethodRouteSDK method
GET/v1/profileprofile.read()
GET/v1/profile/searchprofile.search()
POST/v1/profile/rememberprofile.remember()
POST/v1/profile/commitprofile.commit()

Legacy memory aliases are not mounted.

Bulk Import Routes

Bulk import is server-side only and requires a secret key. It is not a model tool, does not use profile.commit(), and does not use X-Configure-* runtime correlation headers.

MethodRouteSDK method
POST/v1/import/profilesconfigure.importProfiles()
GET/v1/import/jobs/:jobIdconfigure.importJobs.get(jobId)
POST/v1/import/jobs/:jobId/cancelHTTP only

POST /v1/import/profiles

Headers:

txt
X-API-Key: sk_...
X-Agent: your-agent
Content-Type: application/json

Body:

json
{
  "mode": "backfill",
  "idempotencyKey": "migration-2026-05-11",
  "users": [
    {
      "externalId": "customer-123",
      "profile": {
        "summary": "Longtime traveler based in SF.",
        "preferences": ["Prefers window seats."]
      },
      "conversations": [
        {
          "id": "thread-1",
          "messages": [
            { "role": "user", "content": "I usually fly out of SFO." },
            { "role": "assistant", "content": "Got it." }
          ]
        }
      ]
    }
  ]
}

Successful requests return 202 with a durable job:

json
{
  "id": "imp_aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
  "mode": "backfill",
  "status": "queued",
  "accepted_profiles": 1,
  "estimated_message_count": 2,
  "estimated_input_chars": 48
}

Request bodies may include externalId, conversations, profile hints, mode, and idempotency keys. Request-level idempotency is scoped to the developer account and acting agent. Bodies may not include storage paths, source, written_by, timestamps, or memory IDs. Storage namespace, source, and written_by are derived from the server-resolved agent.

Import Storage

Import writes typed memories under:

txt
/agents/{resolved-agent}/memories/{YYYY-MM-DD}/{mem_id}.json

Import records live under:

txt
/agents/{resolved-agent}/imports/{import_job_id}/...

Import does not write root profile files such as /identity.json, /preferences.md, /user.md, or /context.md.

Import Limits

TierUnique imported profilesMax profiles/jobMax input chars/jobConcurrent import jobs
Free100252M1
Pro1,00025020M2
Scale10,0001,000200M5
EnterpriseUnlimited10,000 default chunk200M direct API default; larger by staged contract10 default; contract-managed

Global caps: 250 conversations/profile, 1,000 messages/conversation, and 20,000 characters/message.

StatusCodeMeaning
402quota_exceededUnique imported-profile quota would be exceeded.
413payload_too_largeThe payload exceeds a job/input cap.
422invalid_formatThe shape is invalid or includes forbidden metadata.
429rate_limitedConcurrent import job cap reached.

Native MCP

The native backend MCP endpoint exposes only the default profile tools in PR1:

  • configure_profile_read
  • configure_profile_search
  • configure_profile_remember

Use the package MCP server when you need connector or action tool opt-ins.

Personalization infrastructure for agents