Telnyx Sources API

What a profile stored, and what its memories came from.

Operations 3

GET /ai/memory/namespaces/{namespace}/profiles/{profile_id}/sources List a profile's sources, most recently written first #
DELETE /ai/memory/namespaces/{namespace}/profiles/{profile_id}/sources/{source_id} Forget one source #
GET /ai/memory/namespaces/{namespace}/profiles/{profile_id}/sources/{source_id} Read one source, with what was stored #

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/telnyx:telnyx-sources-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

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

telnyx-sources-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  version: 2.0.0
  x-latency-category: responsive
  x-endpoint-cost: light
  title: Telnyx Sources API
  description: SIP trunking, SMS, MMS, Call Control and Telephony Data Services.
  contact:
    email: support@telnyx.com
servers:
- url: https://api.telnyx.com/v2
  description: Version 2.0.0 of the Telnyx API
security:
- bearerAuth: []
tags:
- name: Sources
  description: What a profile stored, and what its memories came from.
paths:
  /ai/memory/namespaces/{namespace}/profiles/{profile_id}/sources:
    get:
      summary: List a profile's sources, most recently written first
      operationId: ListMemorySources
      tags:
      - Sources
      description: 'Everything a profile has stored and extracts memories from: each ingested session, and each remembered fact, which has no session. Content is not listed; read one source for it. A source whose ingest is still queued is not here yet. Re-ingesting a session moves it to the front, so a listing paged while sessions are written can repeat or miss one at a page boundary. A `session_id` narrows the listing to the source that session was stored as: one source or none, and none -- an empty page, not a 404 -- for a session never ingested, still queued, or another profile''s.'
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          title: Namespace
      - name: profile_id
        in: path
        required: true
        schema:
          type: string
          title: Profile Id
      - name: session_id
        in: query
        required: false
        description: An ingested session, by the `session_id` it was ingested with. Narrows the request to the source that session was stored as.
        schema:
          anyOf:
          - type: string
            maxLength: 128
          - type: 'null'
          title: Session Id
      - name: page[number]
        in: query
        required: false
        description: 'The page to return, counting from 1. Bounded in depth: (page[number] - 1) * page[size] may be at most 10000.'
        schema:
          type: integer
          maximum: 10001
          minimum: 1
          default: 1
          title: Number
      - name: page[size]
        in: query
        required: false
        description: How many results a page holds.
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 20
          title: Size
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourceListResponse'
              example:
                data:
                - id: b1e6c0a2-4f3d-4a2e-9c7b-8e1f2a3b4c5d
                  session_id: conv_8901
                  memory_count: 3
                  created_at: '2026-08-26T21:14:11Z'
                  updated_at: '2026-08-26T21:14:11Z'
                - id: 9af23d17-2b6c-4d8e-a1f0-3c4b5d6e7f80
                  session_id: null
                  memory_count: 1
                  created_at: '2026-08-25T09:02:44Z'
                  updated_at: '2026-08-25T09:02:44Z'
                meta:
                  page_number: 1
                  page_size: 20
                  total_pages: 1
                  total_results: 2
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: '10009'
                  title: Authentication failed
                  detail: Could not find any usable credentials in the request.
                  source:
                    pointer: /
                  meta:
                    url: https://developers.telnyx.com/docs/overview/errors/10009
        '404':
          description: The namespace does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: namespace_not_found
                  detail: no such namespace
        '422':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: invalid_request
                  detail: 'limit is no longer supported: page with page[number] and page[size] instead'
        '502':
          description: Upstream error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: upstream_error
                  detail: the memory dataplane is unavailable
  /ai/memory/namespaces/{namespace}/profiles/{profile_id}/sources/{source_id}:
    delete:
      summary: Forget one source
      operationId: ForgetSource
      tags:
      - Sources
      description: Deletes one source -- an ingested session or a remembered fact -- together with the memories derived from it. A memory derived from this source and others is deleted too, and derived again from what remains in the background. It answers only once the source is gone. A source that is not there -- never stored, another profile's, or already deleted -- answers 404, so on a `502` or a `504` repeat the identical request and read a 404 as done. An ingest of the same session that is still queued is not cancelled, and stores the session again when it runs. Nothing here can be undone.
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          title: Namespace
          description: The namespace. `default` exists for every organization.
        description: The namespace. `default` exists for every organization.
      - name: profile_id
        in: path
        required: true
        schema:
          type: string
          title: Profile Id
          description: 'The profile: your identifier for the user, caller or agent this memory is about.'
        description: 'The profile: your identifier for the user, caller or agent this memory is about.'
      - name: source_id
        in: path
        required: true
        description: 'Identifies one source within its profile: an ingested session, or one remembered fact. Returned by `ingest` and `remember` when the write is accepted. Re-ingesting a session keeps its source id.'
        schema:
          type: string
          title: Source Id
          description: 'Identifies one source within its profile: an ingested session, or one remembered fact. Returned by `ingest` and `remember` when the write is accepted. Re-ingesting a session keeps its source id.'
      responses:
        '200':
          description: The source and its memories are gone
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForgetSourceResponse'
              example:
                data:
                  profile_id: caller:+13128675309
                  source_id: b1e6c0a2-4f3d-4a2e-9c7b-8e1f2a3b4c5d
                  memories_deleted: 3
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: '10009'
                  title: Authentication failed
                  detail: Could not find any usable credentials in the request.
                  source:
                    pointer: /
                  meta:
                    url: https://developers.telnyx.com/docs/overview/errors/10009
        '404':
          description: The source does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: source_not_found
                  detail: no such source
        '422':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: invalid_request
                  detail: source id must be a UUID
        '502':
          description: Upstream error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: upstream_error
                  detail: the memory dataplane is unavailable
    get:
      summary: Read one source, with what was stored
      operationId: GetMemorySource
      tags:
      - Sources
      description: 'One source and its content, as it was stored: an ingested session''s payload or a remembered fact. A source whose ingest is still queued answers 404 until it has been stored.'
      parameters:
      - name: namespace
        in: path
        required: true
        schema:
          type: string
          title: Namespace
          description: The namespace. `default` exists for every organization.
        description: The namespace. `default` exists for every organization.
      - name: profile_id
        in: path
        required: true
        schema:
          type: string
          title: Profile Id
          description: 'The profile: your identifier for the user, caller or agent this memory is about.'
        description: 'The profile: your identifier for the user, caller or agent this memory is about.'
      - name: source_id
        in: path
        required: true
        description: 'Identifies one source within its profile: an ingested session, or one remembered fact. Returned by `ingest` and `remember` when the write is accepted. Re-ingesting a session keeps its source id.'
        schema:
          type: string
          title: Source Id
          description: 'Identifies one source within its profile: an ingested session, or one remembered fact. Returned by `ingest` and `remember` when the write is accepted. Re-ingesting a session keeps its source id.'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SourceResponse'
              example:
                data:
                  id: b1e6c0a2-4f3d-4a2e-9c7b-8e1f2a3b4c5d
                  session_id: conv_8901
                  memory_count: 3
                  created_at: '2026-08-26T21:14:11Z'
                  updated_at: '2026-08-26T21:14:11Z'
                  content:
                    messages:
                    - role: user
                      content: invoices go to 220 W Chicago Ave now
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: '10009'
                  title: Authentication failed
                  detail: Could not find any usable credentials in the request.
                  source:
                    pointer: /
                  meta:
                    url: https://developers.telnyx.com/docs/overview/errors/10009
        '404':
          description: The source does not exist
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: source_not_found
                  detail: no such source
        '422':
          description: Invalid request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: invalid_request
                  detail: source id must be a UUID
        '502':
          description: Upstream error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TelnyxErrors'
              example:
                errors:
                - code: upstream_error
                  detail: the memory dataplane is unavailable
components:
  schemas:
    SourceWithContent:
      properties:
        id:
          type: string
          title: Id
          description: 'Identifies one source within its profile: an ingested session, or one remembered fact. Returned by `ingest` and `remember` when the write is accepted. Re-ingesting a session keeps its source id.'
        session_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Session Id
          description: The session this source was ingested as. Null for a remembered fact.
        memory_count:
          type: integer
          title: Memory Count
          description: Memories extracted from this source. A memory derived from several sources is not counted here.
        created_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Created At
          description: When the source was first stored.
        updated_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Updated At
          description: When the source was last written; re-ingesting moves it.
        content:
          title: Content
          description: 'What was stored, in the shape it was sent: an ingested JSON body as JSON, a string body or a remembered fact as a string. A session ingested before formats were recorded is returned as the text it was stored as.'
          anyOf:
          - type: object
            additionalProperties: true
          - type:
            - array
            - string
            - number
            - boolean
      type: object
      required:
      - id
      - session_id
      - memory_count
      - content
      title: SourceWithContent
    SourceListResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/Source'
          type: array
          title: Data
        meta:
          $ref: '#/components/schemas/PageMeta'
      type: object
      required:
      - data
      - meta
      title: SourceListResponse
    SourceResponse:
      properties:
        data:
          $ref: '#/components/schemas/SourceWithContent'
      type: object
      required:
      - data
      title: SourceResponse
    TelnyxErrors:
      type: object
      properties:
        errors:
          type: array
          items:
            $ref: '#/components/schemas/TelnyxError'
    Source:
      properties:
        id:
          type: string
          title: Id
          description: 'Identifies one source within its profile: an ingested session, or one remembered fact. Returned by `ingest` and `remember` when the write is accepted. Re-ingesting a session keeps its source id.'
        session_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Session Id
          description: The session this source was ingested as. Null for a remembered fact.
        memory_count:
          type: integer
          title: Memory Count
          description: Memories extracted from this source. A memory derived from several sources is not counted here.
        created_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Created At
          description: When the source was first stored.
        updated_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Updated At
          description: When the source was last written; re-ingesting moves it.
      type: object
      required:
      - id
      - session_id
      - memory_count
      title: Source
    ForgetSourceResponse:
      properties:
        data:
          $ref: '#/components/schemas/ForgottenSource'
      type: object
      required:
      - data
      title: ForgetSourceResponse
    PageMeta:
      properties:
        page_number:
          type: integer
          title: Page Number
          description: The page returned, counting from 1.
        page_size:
          type: integer
          title: Page Size
          description: How many results a page holds.
        total_pages:
          type: integer
          title: Total Pages
          description: 'Pages that can be requested; 0 when nothing matched. Page until `page_number` reaches it rather than until a page comes back short: a page can hold fewer than `page_size` results without being the last. Capped at the deepest page served, so on a very large listing it covers fewer results than `total_results`.'
        total_results:
          type: integer
          title: Total Results
          description: Results the request matched, including any past the deepest page.
      type: object
      required:
      - page_number
      - page_size
      - total_pages
      - total_results
      title: PageMeta
      description: 'Where a listing''s page sits in the whole.


        A page is a snapshot: the counts it reports and the order it is drawn in

        both move as writes land, so paging through a busy namespace can repeat or

        miss an entry at a page boundary.'
    ForgottenSource:
      properties:
        profile_id:
          type: string
          title: Profile Id
        source_id:
          type: string
          title: Source Id
          description: 'Identifies one source within its profile: an ingested session, or one remembered fact. Returned by `ingest` and `remember` when the write is accepted. Re-ingesting a session keeps its source id.'
        memories_deleted:
          type: integer
          title: Memories Deleted
          description: 'Memories the profile held and no longer does, counted before and after across the whole profile: it includes memories derived from this source together with others, and anything else the profile lost in between. A report rather than an audit. The status carries the outcome.'
      type: object
      required:
      - profile_id
      - source_id
      - memories_deleted
      title: ForgottenSource
    TelnyxError:
      type: object
      properties:
        code:
          type: string
        title:
          type: string
        detail:
          type: string
        source:
          type: object
          properties:
            pointer:
              type: string
        meta:
          type: object
          properties:
            url:
              type: string
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
      description: 'Telnyx API key supplied as `Authorization: Bearer <token>`. In production, auth may be validated by the API gateway and forwarded via Telnyx auth headers.'
    Payment:
      type: apiKey
      in: header
      name: Authorization
      description: 'Machine Payment Protocol credential used on paid retries, sent as `Authorization: Payment ...`. Obtained by paying a challenge returned in the `WWW-Authenticate` header of a 402 response. This is not a Telnyx API key; initial challenge requests use standard bearer authentication instead.'
    agent-memory_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key
    bearerAuth:
      type: http
      scheme: bearer
    branded-calling_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
    collections_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Collections and results are automatically scoped to the authenticated user's organization.
    number-reputation_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Generate one at https://portal.telnyx.com/#/app/api-keys.
    oauthClientAuth:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
        authorizationCode:
          authorizationUrl: https://api.telnyx.com/v2/oauth/authorize
          tokenUrl: https://api.telnyx.com/v2/oauth/token
          refreshUrl: https://api.telnyx.com/v2/oauth/token
          scopes:
            admin: Administrative access to Telnyx resources
      description: OAuth 2.0 authentication for Telnyx API and MCP integrations
    outbound-voice-profiles_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    pronunciation-dicts_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API v2 key. Obtain from https://portal.telnyx.com
    rcs-registration_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: API key
    stored-payment-transactions_bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    transcriptions-search_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key. Results are automatically scoped to the authenticated user's organization.
    web-search_bearerAuth:
      type: http
      scheme: bearer
      description: Telnyx API key
x-service-info:
  categories:
  - communication
  - developer-tools
  docs:
    apiReference: https://developers.telnyx.com
    homepage: https://telnyx.com
    llms: https://telnyx.com/llms.txt