Mem0 Profiles API

The Profiles API from Mem0 — 4 operation(s) for profiles.

GitHub OpenAPI

Operations 5

GET /v2/entities/{entity_type}/{entity_id}/profile/ Get an entity's profile #
GET /v2/profiles/settings/ Get profile settings #
POST /v2/profiles/settings/ Update profile settings #
POST /v2/profiles/jobs/ Generate profiles #
GET /v2/profiles/jobs/{job_id}/ Read a generation job #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/mem0:mem0-profiles-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

mem0-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Mem0 API Docs Profiles API
  description: mem0.ai API Docs
  contact:
    email: support@mem0.ai
  license:
    name: Apache 2.0
  version: v1
servers:
- url: https://api.mem0.ai/
security:
- ApiKeyAuth: []
tags:
- name: Profiles
paths:
  /v2/entities/{entity_type}/{entity_id}/profile/:
    get:
      tags:
      - Profiles
      operationId: profiles_read
      summary: Get an entity's profile
      description: 'Return the memory profile for one user.


        Generation is asynchronous, so a known entity that has no profile yet is a normal 200 carrying a `status`. A 404 means only that no such entity exists.'
      parameters:
      - name: entity_type
        in: path
        required: true
        schema:
          type: string
          enum:
          - user
        description: The kind of entity that carries the profile.
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
        description: The entity's id, as supplied when the memory was added.
      responses:
        '200':
          description: The profile envelope.
          content:
            application/json:
              schema:
                type: object
                properties:
                  profile:
                    type: object
                    additionalProperties: true
                    description: The generated profile, shaped by the project's schema. Empty unless status is succeeded.
                  status:
                    type: string
                    enum:
                    - succeeded
                    - pending
                    - failed
                    - not_enabled
                    - insufficient_data
                    description: Generation state. Branch on this rather than on an empty profile.
                  entity_type:
                    type: string
                    enum:
                    - user
                  entity_id:
                    type: string
                  updated_at:
                    type:
                    - string
                    - 'null'
                    format: date-time
                  generation_count:
                    type: integer
        '400':
          description: Unsupported entity type.
        '404':
          description: No such entity in this project.
  /v2/profiles/settings/:
    get:
      tags:
      - Profiles
      operationId: profiles_settings_read
      summary: Get profile settings
      description: Return the profile settings for the project the API key is scoped to.
      responses:
        '200':
          description: Current settings.
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    type: boolean
                    description: Whether profile generation runs for this project. Project-wide.
                  entities:
                    type: object
                    description: Settings for user profiles, under `user`.
                    properties:
                      user:
                        type: object
                        properties:
                          schema:
                            type:
                            - object
                            - 'null'
                            additionalProperties: true
                            description: JSON Schema describing the profile. Every property needs a description.
                          custom_instructions:
                            type:
                            - string
                            - 'null'
                            description: Extra guidance for the extraction step.
                  capabilities:
                    type: object
                    properties:
                      jobs:
                        type: boolean
                      estimates:
                        type: boolean
                      samples:
                        type: boolean
                      full_rebuild:
                        type: boolean
                        description: Whether a project-wide rebuild (regenerate/backfill) is available. Currently false.
    post:
      tags:
      - Profiles
      operationId: profiles_settings_update
      summary: Update profile settings
      description: Update the project's profile settings. Only the fields present in the body are written, so one setting can change without re-sending the others.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              description: Only the fields present are written. `schema` and `custom_instructions` nest under `entities.user`; a flat body is rejected.
              properties:
                enabled:
                  type: boolean
                  description: Whether profile generation runs for this project. Project-wide.
                entities:
                  type: object
                  description: Settings for user profiles, under `user`.
                  properties:
                    user:
                      type: object
                      properties:
                        schema:
                          type:
                          - object
                          - 'null'
                          additionalProperties: true
                          description: JSON Schema describing the profile. Every property needs a description. Send null to clear it.
                        custom_instructions:
                          type:
                          - string
                          - 'null'
                          description: Extra guidance for the extraction step. Send null to clear it.
      responses:
        '200':
          description: Settings as stored after the update.
          content:
            application/json:
              schema:
                type: object
                properties:
                  enabled:
                    type: boolean
                    description: Whether profile generation runs for this project. Project-wide.
                  entities:
                    type: object
                    description: Settings for user profiles, under `user`.
                    properties:
                      user:
                        type: object
                        properties:
                          schema:
                            type:
                            - object
                            - 'null'
                            additionalProperties: true
                            description: JSON Schema describing the profile. Every property needs a description.
                          custom_instructions:
                            type:
                            - string
                            - 'null'
                            description: Extra guidance for the extraction step.
                  capabilities:
                    type: object
                    properties:
                      jobs:
                        type: boolean
                      estimates:
                        type: boolean
                      samples:
                        type: boolean
                      full_rebuild:
                        type: boolean
                        description: Whether a project-wide rebuild (regenerate/backfill) is available. Currently false.
        '400':
          description: The schema is not a valid profile schema.
  /v2/profiles/jobs/:
    post:
      tags:
      - Profiles
      operationId: profiles_create_job
      summary: Generate profiles
      description: 'Start one generation. `operation` says what to build:


        - `sample` — up to 10 real entities, so a schema can be judged before it is used widely. These are real profiles: they are saved to those entities and count toward usage.

        - `trigger` — one entity, named by `entity_id`.


        Send an `Idempotency-Key` header. Replaying the same key returns the same job instead of charging twice. Poll `status_url` from the response until the status is terminal.'
      parameters:
      - in: header
        name: Idempotency-Key
        required: true
        schema:
          type: string
          minLength: 8
          maxLength: 128
        description: 'Makes a retry safe: the same key returns the same job.'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
              - operation
              - entity_type
              properties:
                operation:
                  type: string
                  enum:
                  - sample
                  - trigger
                  description: What to generate. Optional only when `entity_id` is set, which means `trigger`.
                entity_type:
                  type: string
                  enum:
                  - user
                entity_id:
                  type: string
                  description: One entity, for `trigger`.
                limit:
                  type: integer
                  minimum: 1
                  maximum: 10
                  description: How many entities to sample.
      responses:
        '202':
          description: Job accepted.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job_id:
                    type: string
                  status:
                    type: string
                  status_url:
                    type: string
                    description: Poll this. Building the path yourself breaks on a route change.
                  operation:
                    type: string
                  entity_type:
                    type: string
                  entity_count_reserved:
                    type: integer
                    description: Entities reserved against usage for this job.
                  event_id:
                    type:
                    - string
                    - 'null'
                  replayed:
                    type: boolean
                    description: True when an Idempotency-Key returned an existing job.
                  sampled:
                    type: integer
                    description: '`sample` only.'
                  entity_ids:
                    type: array
                    items:
                      type: string
                    description: '`sample` only: the entity ids picked. Read each with `GET /v2/entities/user/{entity_id}/profile/`.'
        '400':
          description: Unknown or missing `operation`, or profiles are not configured.
        '402':
          description: Payment required.
        '409':
          description: A job is already running, or the Idempotency-Key was used for a different request. Branch on `error.code`.
        '429':
          description: Cooldown. `retry_after_seconds` sits inside `error`.
        '503':
          description: '`jobs_unavailable` — generation is switched off for this project.'
  /v2/profiles/jobs/{job_id}/:
    get:
      tags:
      - Profiles
      operationId: profiles_get_job
      summary: Read a generation job
      description: The job nests under `job`. `total` is null until `enumeration_complete`, and `completed` is `succeeded + failed + skipped`.
      parameters:
      - in: path
        name: job_id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The job.
          content:
            application/json:
              schema:
                type: object
                properties:
                  job:
                    type: object
                    properties:
                      id:
                        type: string
                      operation:
                        type: string
                      entity_type:
                        type: string
                      status:
                        type: string
                        enum:
                        - QUEUED
                        - RUNNING
                        - SUCCEEDED
                        - PARTIALLY_SUCCEEDED
                        - FAILED
                        - CANCELLED
                      total:
                        type:
                        - integer
                        - 'null'
                      enumeration_complete:
                        type: boolean
                      completed:
                        type: integer
                      succeeded:
                        type: integer
                      failed:
                        type: integer
                      skipped:
                        type: integer
        '404':
          description: No such job in this project.
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: Authorization
      description: 'API key authentication. Prefix your Mem0 API key with ''Token ''. Example: ''Token your_api_key'''
x-original-swagger-version: '2.0'