Letta · Capability

Letta API — Jobs

Background jobs — track long-running operations such as file ingestion. 5 operations. Lead operation: List Jobs. Self-contained Naftiko capability covering one Letta business surface.

Letta API — Jobs is a Naftiko capability published by Letta, one of 36 capabilities the APIs.io network indexes for this provider. It bundles 5 operations across the GET, DELETE, and PATCH methods rooted at /v1/jobs.

The capability includes 3 read-only operations and 2 state-changing operations. Lead operation: List Jobs. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Letta, Stateful Agents, and Jobs.

Run with Naftiko LettaStateful AgentsJobs

What You Can Do

GET
List_jobs — List Jobs
/v1/jobs/
GET
List_active_jobs — List Active Jobs
/v1/jobs/active
GET
Retrieve_job — Retrieve Job
/v1/jobs/{job-id}
DELETE
Delete_job — Delete Job
/v1/jobs/{job-id}
PATCH
Cancel_job — Cancel Job
/v1/jobs/{job-id}/cancel

MCP Tools

list-jobs

List Jobs

read-only idempotent
list-active-jobs

List Active Jobs

read-only idempotent
retrieve-job

Retrieve Job

read-only idempotent
delete-job

Delete Job

idempotent
cancel-job

Cancel Job

idempotent

Capability Spec

letta-jobs.yaml Raw ↑
naftiko: "1.0.0-alpha2"

info:
  label: "Letta API — Jobs"
  description: >-
    Background jobs — track long-running operations such as file ingestion. 5 operations. Lead operation: List Jobs. Self-contained Naftiko capability covering one Letta business surface.
  tags:
    - Letta
    - Stateful Agents
    - Jobs
  created: "2026-05-08"
  modified: "2026-05-22"

binds:
  - namespace: env
    keys:
      LETTA_API_KEY: LETTA_API_KEY

capability:

  consumes:
    - type: http
      namespace: "letta-jobs"
      baseUri: "https://api.letta.com"
      description: "Letta API — Jobs business capability. Self-contained, no shared references."
      authentication:
        type: bearer
        token: "{{env.LETTA_API_KEY}}"
      resources:
        - name: "jobs"
          path: "/v1/jobs/"
          operations:
            - name: "list_jobs"
              method: GET
              description: "List Jobs"
              inputParameters:
                - name: "source_id"
                  in: query
                  type: string
                  required: false
                  description: "Deprecated: Use `folder_id` parameter instead. Only list jobs associated with the source."
                - name: "before"
                  in: query
                  type: string
                  required: false
                  description: "Job ID cursor for pagination. Returns jobs that come before this job ID in the specified sort order"
                - name: "after"
                  in: query
                  type: string
                  required: false
                  description: "Job ID cursor for pagination. Returns jobs that come after this job ID in the specified sort order"
                - name: "limit"
                  in: query
                  type: string
                  required: false
                  description: "Maximum number of jobs to return"
                - name: "order"
                  in: query
                  type: string
                  required: false
                  description: "Sort order for jobs by creation time. 'asc' for oldest first, 'desc' for newest first"
                - name: "order_by"
                  in: query
                  type: string
                  required: false
                  description: "Field to sort by"
                - name: "active"
                  in: query
                  type: boolean
                  required: false
                  description: "Filter for active jobs."
                - name: "ascending"
                  in: query
                  type: boolean
                  required: false
                  description: "Whether to sort jobs oldest to newest (True, default) or newest to oldest (False). Deprecated in favor of order field."
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "jobs-active"
          path: "/v1/jobs/active"
          operations:
            - name: "list_active_jobs"
              method: GET
              description: "List Active Jobs"
              inputParameters:
                - name: "source_id"
                  in: query
                  type: string
                  required: false
                  description: "Deprecated: Use `folder_id` parameter instead. Only list jobs associated with the source."
                - name: "before"
                  in: query
                  type: string
                  required: false
                  description: "Cursor for pagination"
                - name: "after"
                  in: query
                  type: string
                  required: false
                  description: "Cursor for pagination"
                - name: "limit"
                  in: query
                  type: string
                  required: false
                  description: "Limit for pagination"
                - name: "ascending"
                  in: query
                  type: boolean
                  required: false
                  description: "Whether to sort jobs oldest to newest (True, default) or newest to oldest (False)"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "jobs-by-id"
          path: "/v1/jobs/{job_id}"
          operations:
            - name: "retrieve_job"
              method: GET
              description: "Retrieve Job"
              inputParameters:
                - name: "job_id"
                  in: path
                  type: string
                  required: true
                  description: "The ID of the job in the format 'job-<uuid4>'"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
            - name: "delete_job"
              method: DELETE
              description: "Delete Job"
              inputParameters:
                - name: "job_id"
                  in: path
                  type: string
                  required: true
                  description: "The ID of the job in the format 'job-<uuid4>'"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."
        - name: "jobs-by-id-cancel"
          path: "/v1/jobs/{job_id}/cancel"
          operations:
            - name: "cancel_job"
              method: PATCH
              description: "Cancel Job"
              inputParameters:
                - name: "job_id"
                  in: path
                  type: string
                  required: true
                  description: "The ID of the job in the format 'job-<uuid4>'"
              outputRawFormat: json
              outputParameters:
                - name: result
                  type: object
                  value: "$."

  exposes:
    - type: rest
      namespace: "letta-jobs-rest"
      port: 8080
      description: "REST adapter for Letta API — Jobs. One Spectral-compliant resource per consumed operation."
      resources:
        - path: "/v1/jobs/"
          name: "jobs"
          description: "REST surface for jobs."
          operations:
            - method: GET
              name: "list_jobs"
              description: "List Jobs"
              call: "letta-jobs.list_jobs"
              with:
                "source_id": "rest.source_id"
                "before": "rest.before"
                "after": "rest.after"
                "limit": "rest.limit"
                "order": "rest.order"
                "order_by": "rest.order_by"
                "active": "rest.active"
                "ascending": "rest.ascending"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/jobs/active"
          name: "jobs-active"
          description: "REST surface for jobs-active."
          operations:
            - method: GET
              name: "list_active_jobs"
              description: "List Active Jobs"
              call: "letta-jobs.list_active_jobs"
              with:
                "source_id": "rest.source_id"
                "before": "rest.before"
                "after": "rest.after"
                "limit": "rest.limit"
                "ascending": "rest.ascending"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/jobs/{job-id}"
          name: "jobs-by-id"
          description: "REST surface for jobs-by-id."
          operations:
            - method: GET
              name: "retrieve_job"
              description: "Retrieve Job"
              call: "letta-jobs.retrieve_job"
              with:
                "job_id": "rest.job_id"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: DELETE
              name: "delete_job"
              description: "Delete Job"
              call: "letta-jobs.delete_job"
              with:
                "job_id": "rest.job_id"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: "/v1/jobs/{job-id}/cancel"
          name: "jobs-by-id-cancel"
          description: "REST surface for jobs-by-id-cancel."
          operations:
            - method: PATCH
              name: "cancel_job"
              description: "Cancel Job"
              call: "letta-jobs.cancel_job"
              with:
                "job_id": "rest.job_id"
              outputParameters:
                - type: object
                  mapping: "$."
    - type: mcp
      namespace: "letta-jobs-mcp"
      port: 9090
      transport: http
      description: "MCP adapter for Letta API — Jobs. One verb-noun tool per consumed operation."
      tools:
        - name: "list-jobs"
          description: "List Jobs"
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "letta-jobs.list_jobs"
          with:
            "source_id": "tools.source_id"
            "before": "tools.before"
            "after": "tools.after"
            "limit": "tools.limit"
            "order": "tools.order"
            "order_by": "tools.order_by"
            "active": "tools.active"
            "ascending": "tools.ascending"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "list-active-jobs"
          description: "List Active Jobs"
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "letta-jobs.list_active_jobs"
          with:
            "source_id": "tools.source_id"
            "before": "tools.before"
            "after": "tools.after"
            "limit": "tools.limit"
            "ascending": "tools.ascending"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "retrieve-job"
          description: "Retrieve Job"
          hints:
            readOnly: true
            destructive: false
            idempotent: true
          call: "letta-jobs.retrieve_job"
          with:
            "job_id": "tools.job_id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "delete-job"
          description: "Delete Job"
          hints:
            readOnly: false
            destructive: true
            idempotent: true
          call: "letta-jobs.delete_job"
          with:
            "job_id": "tools.job_id"
          outputParameters:
            - type: object
              mapping: "$."
        - name: "cancel-job"
          description: "Cancel Job"
          hints:
            readOnly: false
            destructive: false
            idempotent: true
          call: "letta-jobs.cancel_job"
          with:
            "job_id": "tools.job_id"
          outputParameters:
            - type: object
              mapping: "$."