Skip to main content

List Instances

Retrieve a paginated list of instances belonging to a client.
GET /dashboard/instances

Query Parameters

client_id
string
required
The client ID to list instances for. Format: cli_<hex16>.
page
integer
Page number. Defaults to 1.
page_size
integer
Items per page. Defaults to 20, maximum 100.

Response

data
InstanceSummary[]
Array of instance summary objects.
page
integer
Current page number.
page_size
integer
Items per page.
total
integer
Total number of instances.
total_pages
integer
Total number of pages.

Example

curl -X GET "https://api.synap.maximem.ai/dashboard/instances?client_id=cli_a1b2c3d4e5f67890&page=1&page_size=10" \
  -H "Authorization: Bearer synap_your_key_here"
Response
{
  "data": [
    {
      "id": "inst_f1e2d3c4b5a69078",
      "name": "Production Chatbot",
      "status": "active",
      "agent_type": "chatbot",
      "config_status": "active",
      "created_at": "2025-01-10T08:00:00Z",
      "last_active_at": "2025-01-15T14:32:00Z"
    },
    {
      "id": "inst_9a8b7c6d5e4f3021",
      "name": "Staging Support Agent",
      "status": "provisioning",
      "agent_type": "support-agent",
      "config_status": "pending",
      "created_at": "2025-01-14T12:00:00Z",
      "last_active_at": null
    }
  ],
  "page": 1,
  "page_size": 10,
  "total": 2,
  "total_pages": 1
}

Get Instance

Retrieve detailed information about a specific instance.
GET /dashboard/instances/{instance_id}

Path Parameters

instance_id
string
required
The instance ID. Format: inst_<hex16>.

Response

id
string
Unique instance identifier.
name
string
Human-readable instance name.
status
string
Current status: active, provisioning, suspended, archived.
agent_type
string
The type of AI agent this instance serves.
config_status
string
Memory architecture configuration status.
client_id
string
The client this instance belongs to.
description
string
Optional description of the instance’s purpose.
metadata
object
Arbitrary key-value metadata attached to the instance.
api_calls_24h
integer
Number of API calls made by this instance in the last 24 hours.
memories_count
integer
Total number of memories stored in this instance.
created_at
string
ISO 8601 creation timestamp.
last_active_at
string
ISO 8601 timestamp of last activity. null if never used.

Example

curl -X GET "https://api.synap.maximem.ai/dashboard/instances/inst_f1e2d3c4b5a69078" \
  -H "Authorization: Bearer synap_your_key_here"
Response
{
  "id": "inst_f1e2d3c4b5a69078",
  "name": "Production Chatbot",
  "status": "active",
  "agent_type": "chatbot",
  "config_status": "active",
  "client_id": "cli_a1b2c3d4e5f67890",
  "description": "Main production chatbot with full memory capabilities",
  "metadata": {
    "environment": "production",
    "team": "product"
  },
  "api_calls_24h": 1247,
  "memories_count": 58432,
  "created_at": "2025-01-10T08:00:00Z",
  "last_active_at": "2025-01-15T14:32:00Z"
}

Create Instance

Create a new Synap instance for a client.
POST /dashboard/instances

Query Parameters

client_id
string
required
The client ID to create the instance under. Format: cli_<hex16>.

Request Body

name
string
required
A human-readable name for the instance. Must be unique within the client.
agent_type
string
required
The type of AI agent this instance will serve. Examples: chatbot, support-agent, copilot, analyst.
description
string
Optional description of the instance’s purpose.
metadata
object
Arbitrary key-value pairs for organizing instances. Values must be strings.

Response

Returns the full InstanceDetail object with status 201 Created.

Example

curl -X POST "https://api.synap.maximem.ai/dashboard/instances?client_id=cli_a1b2c3d4e5f67890" \
  -H "Authorization: Bearer synap_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Support Agent v2",
    "agent_type": "support-agent",
    "description": "Customer support agent with full conversation memory",
    "metadata": {
      "environment": "staging",
      "team": "support"
    }
  }'
Response (201 Created)
{
  "id": "inst_1a2b3c4d5e6f7890",
  "name": "Support Agent v2",
  "status": "provisioning",
  "agent_type": "support-agent",
  "config_status": "pending",
  "client_id": "cli_a1b2c3d4e5f67890",
  "description": "Customer support agent with full conversation memory",
  "metadata": {
    "environment": "staging",
    "team": "support"
  },
  "api_calls_24h": 0,
  "memories_count": 0,
  "created_at": "2025-01-15T16:00:00Z",
  "last_active_at": null
}
Newly created instances start in the provisioning status. They transition to active once their memory architecture is initialized via the Configuration API.

Update Instance

Update an existing instance’s name, description, or metadata.
PATCH /dashboard/instances/{instance_id}

Path Parameters

instance_id
string
required
The instance ID to update. Format: inst_<hex16>.

Request Body

All fields are optional. Only provided fields are updated.
name
string
New name for the instance.
description
string
New description.
metadata
object
Updated metadata. This performs a merge with existing metadata. To remove a key, set its value to null.

Response

Returns the updated InstanceDetail object.

Example

curl -X PATCH "https://api.synap.maximem.ai/dashboard/instances/inst_f1e2d3c4b5a69078" \
  -H "Authorization: Bearer synap_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Production Chatbot v2",
    "metadata": {
      "version": "2.0",
      "environment": "production"
    }
  }'
Response
{
  "id": "inst_f1e2d3c4b5a69078",
  "name": "Production Chatbot v2",
  "status": "active",
  "agent_type": "chatbot",
  "config_status": "active",
  "client_id": "cli_a1b2c3d4e5f67890",
  "description": "Main production chatbot with full memory capabilities",
  "metadata": {
    "environment": "production",
    "team": "product",
    "version": "2.0"
  },
  "api_calls_24h": 1247,
  "memories_count": 58432,
  "created_at": "2025-01-10T08:00:00Z",
  "last_active_at": "2025-01-15T14:32:00Z"
}

Generate Bootstrap Key

Generate a one-time bootstrap key for an instance. The bootstrap key is a legacy credential. For new integrations, use the API key endpoints instead.
POST /dashboard/instances/{instance_id}/bootstrap-key

Path Parameters

instance_id
string
required
The instance ID to generate a bootstrap key for.

Response

key
string
The bootstrap key value. This is shown only once. Store it securely. Format: bsk_<base64>.
key_id
string
Unique identifier for this bootstrap key, used for revocation and auditing.
expires_at
string
ISO 8601 timestamp when the bootstrap key expires. Keys are valid for 24 hours.

Example

curl -X POST "https://api.synap.maximem.ai/dashboard/instances/inst_f1e2d3c4b5a69078/bootstrap-key" \
  -H "Authorization: Bearer synap_your_key_here"
Response (201 Created)
{
  "key": "bsk_dGhpcyBpcyBhIHNhbXBsZSBib290c3RyYXAga2V5...",
  "key_id": "bsk_id_7f8e9d0c1b2a3456",
  "expires_at": "2025-01-16T16:00:00Z"
}
The key value is returned only once in this response. It cannot be retrieved again. If lost, generate a new bootstrap key and revoke the old one.
The bootstrap key is a secrets.token_urlsafe(32) value. Synap stores only the SHA-256 hash of the key. A backup copy is stored in KMS for disaster recovery.

Revoke Bootstrap Key

Revoke an active bootstrap key for an instance. Revoked keys can no longer be used to bootstrap SDK connections.
POST /dashboard/instances/{instance_id}/revoke-key

Path Parameters

instance_id
string
required
The instance ID whose bootstrap key should be revoked.

Response

success
boolean
Whether the revocation was successful.
message
string
Human-readable result message.

Example

curl -X POST "https://api.synap.maximem.ai/dashboard/instances/inst_f1e2d3c4b5a69078/revoke-key" \
  -H "Authorization: Bearer synap_your_key_here"
Response
{
  "success": true,
  "message": "Bootstrap key revoked successfully. Any SDK instances using this key will need to re-bootstrap."
}
Revoking a bootstrap key immediately prevents new SDK connections using that key.

Generate API Key

Generate a new API key for an instance. The key is shown once and cannot be retrieved again. Multiple keys can coexist per instance (one per environment, team, etc.).
POST /dashboard/instances/{instance_id}/api-keys

Path Parameters

instance_id
string
required
The instance ID to generate an API key for.

Request Body

label
string
A human-readable label to identify this key (e.g., “production”, “staging”). Defaults to "default".

Response

api_key
string
The API key value. Shown only once. Format: synap_<random>. Store it in your secret manager immediately.
credential_id
string
Unique identifier for this key, used for listing and revocation.
label
string
The label assigned to this key.
created_at
string
ISO 8601 timestamp of key creation.

Example

curl -X POST "https://api.synap.maximem.ai/dashboard/instances/inst_f1e2d3c4b5a69078/api-keys" \
  -H "Authorization: Bearer synap_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"label": "production"}'
Response (201 Created)
{
  "api_key": "synap_k2m9p4x7n1q8r5t3...",
  "credential_id": "cred_a1b2c3d4e5f6",
  "label": "production",
  "created_at": "2026-04-18T10:00:00Z"
}
The api_key value is returned only once. Store it in your secret manager immediately. If lost, revoke and generate a new key.

List API Keys

List all active API keys for an instance. Key values are masked — only the label, ID, and creation time are returned.
GET /dashboard/instances/{instance_id}/api-keys

Path Parameters

instance_id
string
required
The instance ID to list API keys for.

Response

Returns an array of API key info objects.
credential_id
string
Unique identifier for the key.
label
string
The label assigned to this key.
masked_key
string
Partially masked key value for identification (e.g., synap_k2m9...t3).
created_at
string
ISO 8601 timestamp of key creation.

Example

curl "https://api.synap.maximem.ai/dashboard/instances/inst_f1e2d3c4b5a69078/api-keys" \
  -H "Authorization: Bearer synap_your_key_here"
Response (200 OK)
[
  {
    "credential_id": "cred_a1b2c3d4e5f6",
    "label": "production",
    "masked_key": "synap_k2m9...t3",
    "created_at": "2026-04-18T10:00:00Z"
  }
]

Revoke API Key

Revoke a specific API key by its credential ID. The key is immediately invalidated.
DELETE /dashboard/instances/{instance_id}/api-keys/{credential_id}

Path Parameters

instance_id
string
required
The instance ID.
credential_id
string
required
The credential ID of the key to revoke (from List API Keys).

Response

success
boolean
Whether the revocation was successful.
message
string
Human-readable result message.

Example

curl -X DELETE "https://api.synap.maximem.ai/dashboard/instances/inst_f1e2d3c4b5a69078/api-keys/cred_a1b2c3d4e5f6" \
  -H "Authorization: Bearer synap_your_key_here"
Response (200 OK)
{
  "success": true,
  "message": "API key revoked successfully."
}