Letta API — Feeds
Feeds — subscribed feeds that drive agents. 16 operations. Lead operation: Create Feed. Self-contained Naftiko capability covering one Letta business surface.
Letta API — Feeds is a Naftiko capability published by Letta, one of 36 capabilities the APIs.io network indexes for this provider. It bundles 16 operations across the POST, GET, DELETE, and PATCH methods rooted at /v1/feeds.
The capability includes 6 read-only operations and 10 state-changing operations. Lead operation: Create Feed. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.
Tagged areas include Letta, Stateful Agents, and Feeds.
What You Can Do
MCP Tools
create-feed
Create Feed
list-feeds
List Feeds
get-feed
Get Feed
delete-feed
Delete Feed
publish-messages
Publish Messages
list-feed-messages
List Feed Messages
get-feed-message
Get Feed Message
subscribe-agent-feed
Subscribe Agent to Feed
update-subscription
Update Subscription
delete-subscription
Delete Subscription
unsubscribe-agent-feed
Unsubscribe Agent from Feed
trigger-subscription
Trigger Subscription
backfill-subscription
Backfill Subscription
list-subscription-history
List Subscription History
update-all-subscriptions-cron-schedule
Update All Subscriptions Cron Schedule
list-feed-subscriptions
List Feed Subscriptions
Capability Spec
naftiko: "1.0.0-alpha2"
info:
label: "Letta API — Feeds"
description: >-
Feeds — subscribed feeds that drive agents. 16 operations. Lead operation: Create Feed. Self-contained Naftiko capability covering one Letta business surface.
tags:
- Letta
- Stateful Agents
- Feeds
created: "2026-05-08"
modified: "2026-05-22"
binds:
- namespace: env
keys:
LETTA_API_KEY: LETTA_API_KEY
capability:
consumes:
- type: http
namespace: "letta-feeds"
baseUri: "https://api.letta.com"
description: "Letta API — Feeds business capability. Self-contained, no shared references."
authentication:
type: bearer
token: "{{env.LETTA_API_KEY}}"
resources:
- name: "feeds"
path: "/v1/feeds"
operations:
- name: "feeds_createfeed"
method: POST
description: "Create Feed"
inputParameters:
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds_listfeeds"
method: GET
description: "List Feeds"
inputParameters:
- name: "project_id"
in: query
type: string
required: false
description: "project_id parameter"
- name: "name"
in: query
type: string
required: false
description: "name parameter"
- name: "limit"
in: query
type: string
required: false
description: "limit parameter"
- name: "offset"
in: query
type: string
required: false
description: "offset parameter"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id"
path: "/v1/feeds/{feed_id}"
operations:
- name: "feeds_getfeed"
method: GET
description: "Get Feed"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds_deletefeed"
method: DELETE
description: "Delete Feed"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-messages"
path: "/v1/feeds/{feed_id}/messages"
operations:
- name: "feeds_publishmessages"
method: POST
description: "Publish Messages"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds_listmessages"
method: GET
description: "List Feed Messages"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "after_sequence"
in: query
type: string
required: false
description: "after_sequence parameter"
- name: "limit"
in: query
type: string
required: false
description: "limit parameter"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-messages-by-id"
path: "/v1/feeds/{feed_id}/messages/{message_id}"
operations:
- name: "feeds_getmessage"
method: GET
description: "Get Feed Message"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "message_id"
in: path
type: string
required: true
description: "message_id parameter"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-subscribe"
path: "/v1/feeds/{feed_id}/subscribe"
operations:
- name: "feeds_subscribeagent"
method: POST
description: "Subscribe Agent to Feed"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-subscriptions-by-id"
path: "/v1/feeds/{feed_id}/subscriptions/{subscription_id}"
operations:
- name: "feeds_updatesubscription"
method: PATCH
description: "Update Subscription"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "subscription_id"
in: path
type: string
required: true
description: "subscription_id parameter"
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds_deletesubscription"
method: DELETE
description: "Delete Subscription"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "subscription_id"
in: path
type: string
required: true
description: "subscription_id parameter"
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-unsubscribe"
path: "/v1/feeds/{feed_id}/unsubscribe"
operations:
- name: "feeds_unsubscribeagent"
method: POST
description: "Unsubscribe Agent from Feed"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-subscriptions-by-id-trigger"
path: "/v1/feeds/{feed_id}/subscriptions/{subscription_id}/trigger"
operations:
- name: "feeds_triggersubscription"
method: POST
description: "Trigger Subscription"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "subscription_id"
in: path
type: string
required: true
description: "subscription_id parameter"
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-subscriptions-by-id-backfill"
path: "/v1/feeds/{feed_id}/subscriptions/{subscription_id}/backfill"
operations:
- name: "feeds_backfillsubscription"
method: POST
description: "Backfill Subscription"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "subscription_id"
in: path
type: string
required: true
description: "subscription_id parameter"
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-subscriptions-by-id-history"
path: "/v1/feeds/{feed_id}/subscriptions/{subscription_id}/history"
operations:
- name: "feeds_listsubscriptionhistory"
method: GET
description: "List Subscription History"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "subscription_id"
in: path
type: string
required: true
description: "subscription_id parameter"
- name: "page_size"
in: query
type: string
required: false
description: "page_size parameter"
- name: "next_page_token"
in: query
type: string
required: false
description: "next_page_token parameter"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-subscriptions-cron"
path: "/v1/feeds/{feed_id}/subscriptions/cron"
operations:
- name: "feeds_updateallsubscriptionscron"
method: PATCH
description: "Update All Subscriptions Cron Schedule"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "body"
in: body
type: object
required: true
description: "Body"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
- name: "feeds-by-id-subscriptions"
path: "/v1/feeds/{feed_id}/subscriptions"
operations:
- name: "feeds_listsubscriptions"
method: GET
description: "List Feed Subscriptions"
inputParameters:
- name: "feed_id"
in: path
type: string
required: true
description: "feed_id parameter"
- name: "limit"
in: query
type: string
required: false
description: "limit parameter"
- name: "offset"
in: query
type: string
required: false
description: "offset parameter"
- name: "agent_id"
in: query
type: string
required: false
description: "agent_id parameter"
outputRawFormat: json
outputParameters:
- name: result
type: object
value: "$."
exposes:
- type: rest
namespace: "letta-feeds-rest"
port: 8080
description: "REST adapter for Letta API — Feeds. One Spectral-compliant resource per consumed operation."
resources:
- path: "/v1/feeds"
name: "feeds"
description: "REST surface for feeds."
operations:
- method: POST
name: "feeds_createfeed"
description: "Create Feed"
call: "letta-feeds.feeds_createfeed"
with:
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- method: GET
name: "feeds_listfeeds"
description: "List Feeds"
call: "letta-feeds.feeds_listfeeds"
with:
"project_id": "rest.project_id"
"name": "rest.name"
"limit": "rest.limit"
"offset": "rest.offset"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}"
name: "feeds-by-id"
description: "REST surface for feeds-by-id."
operations:
- method: GET
name: "feeds_getfeed"
description: "Get Feed"
call: "letta-feeds.feeds_getfeed"
with:
"feed_id": "rest.feed_id"
outputParameters:
- type: object
mapping: "$."
- method: DELETE
name: "feeds_deletefeed"
description: "Delete Feed"
call: "letta-feeds.feeds_deletefeed"
with:
"feed_id": "rest.feed_id"
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/messages"
name: "feeds-by-id-messages"
description: "REST surface for feeds-by-id-messages."
operations:
- method: POST
name: "feeds_publishmessages"
description: "Publish Messages"
call: "letta-feeds.feeds_publishmessages"
with:
"feed_id": "rest.feed_id"
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- method: GET
name: "feeds_listmessages"
description: "List Feed Messages"
call: "letta-feeds.feeds_listmessages"
with:
"feed_id": "rest.feed_id"
"after_sequence": "rest.after_sequence"
"limit": "rest.limit"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/messages/{message-id}"
name: "feeds-by-id-messages-by-id"
description: "REST surface for feeds-by-id-messages-by-id."
operations:
- method: GET
name: "feeds_getmessage"
description: "Get Feed Message"
call: "letta-feeds.feeds_getmessage"
with:
"feed_id": "rest.feed_id"
"message_id": "rest.message_id"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/subscribe"
name: "feeds-by-id-subscribe"
description: "REST surface for feeds-by-id-subscribe."
operations:
- method: POST
name: "feeds_subscribeagent"
description: "Subscribe Agent to Feed"
call: "letta-feeds.feeds_subscribeagent"
with:
"feed_id": "rest.feed_id"
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/subscriptions/{subscription-id}"
name: "feeds-by-id-subscriptions-by-id"
description: "REST surface for feeds-by-id-subscriptions-by-id."
operations:
- method: PATCH
name: "feeds_updatesubscription"
description: "Update Subscription"
call: "letta-feeds.feeds_updatesubscription"
with:
"feed_id": "rest.feed_id"
"subscription_id": "rest.subscription_id"
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- method: DELETE
name: "feeds_deletesubscription"
description: "Delete Subscription"
call: "letta-feeds.feeds_deletesubscription"
with:
"feed_id": "rest.feed_id"
"subscription_id": "rest.subscription_id"
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/unsubscribe"
name: "feeds-by-id-unsubscribe"
description: "REST surface for feeds-by-id-unsubscribe."
operations:
- method: POST
name: "feeds_unsubscribeagent"
description: "Unsubscribe Agent from Feed"
call: "letta-feeds.feeds_unsubscribeagent"
with:
"feed_id": "rest.feed_id"
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/subscriptions/{subscription-id}/trigger"
name: "feeds-by-id-subscriptions-by-id-trigger"
description: "REST surface for feeds-by-id-subscriptions-by-id-trigger."
operations:
- method: POST
name: "feeds_triggersubscription"
description: "Trigger Subscription"
call: "letta-feeds.feeds_triggersubscription"
with:
"feed_id": "rest.feed_id"
"subscription_id": "rest.subscription_id"
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/subscriptions/{subscription-id}/backfill"
name: "feeds-by-id-subscriptions-by-id-backfill"
description: "REST surface for feeds-by-id-subscriptions-by-id-backfill."
operations:
- method: POST
name: "feeds_backfillsubscription"
description: "Backfill Subscription"
call: "letta-feeds.feeds_backfillsubscription"
with:
"feed_id": "rest.feed_id"
"subscription_id": "rest.subscription_id"
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/subscriptions/{subscription-id}/history"
name: "feeds-by-id-subscriptions-by-id-history"
description: "REST surface for feeds-by-id-subscriptions-by-id-history."
operations:
- method: GET
name: "feeds_listsubscriptionhistory"
description: "List Subscription History"
call: "letta-feeds.feeds_listsubscriptionhistory"
with:
"feed_id": "rest.feed_id"
"subscription_id": "rest.subscription_id"
"page_size": "rest.page_size"
"next_page_token": "rest.next_page_token"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/subscriptions/cron"
name: "feeds-by-id-subscriptions-cron"
description: "REST surface for feeds-by-id-subscriptions-cron."
operations:
- method: PATCH
name: "feeds_updateallsubscriptionscron"
description: "Update All Subscriptions Cron Schedule"
call: "letta-feeds.feeds_updateallsubscriptionscron"
with:
"feed_id": "rest.feed_id"
"body": "rest.body"
outputParameters:
- type: object
mapping: "$."
- path: "/v1/feeds/{feed-id}/subscriptions"
name: "feeds-by-id-subscriptions"
description: "REST surface for feeds-by-id-subscriptions."
operations:
- method: GET
name: "feeds_listsubscriptions"
description: "List Feed Subscriptions"
call: "letta-feeds.feeds_listsubscriptions"
with:
"feed_id": "rest.feed_id"
"limit": "rest.limit"
"offset": "rest.offset"
"agent_id": "rest.agent_id"
outputParameters:
- type: object
mapping: "$."
- type: mcp
namespace: "letta-feeds-mcp"
port: 9090
transport: http
description: "MCP adapter for Letta API — Feeds. One verb-noun tool per consumed operation."
tools:
- name: "create-feed"
description: "Create Feed"
hints:
readOnly: false
destructive: false
idempotent: false
call: "letta-feeds.feeds_createfeed"
with:
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "list-feeds"
description: "List Feeds"
hints:
readOnly: true
destructive: false
idempotent: true
call: "letta-feeds.feeds_listfeeds"
with:
"project_id": "tools.project_id"
"name": "tools.name"
"limit": "tools.limit"
"offset": "tools.offset"
outputParameters:
- type: object
mapping: "$."
- name: "get-feed"
description: "Get Feed"
hints:
readOnly: true
destructive: false
idempotent: true
call: "letta-feeds.feeds_getfeed"
with:
"feed_id": "tools.feed_id"
outputParameters:
- type: object
mapping: "$."
- name: "delete-feed"
description: "Delete Feed"
hints:
readOnly: false
destructive: true
idempotent: true
call: "letta-feeds.feeds_deletefeed"
with:
"feed_id": "tools.feed_id"
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "publish-messages"
description: "Publish Messages"
hints:
readOnly: false
destructive: false
idempotent: false
call: "letta-feeds.feeds_publishmessages"
with:
"feed_id": "tools.feed_id"
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "list-feed-messages"
description: "List Feed Messages"
hints:
readOnly: true
destructive: false
idempotent: true
call: "letta-feeds.feeds_listmessages"
with:
"feed_id": "tools.feed_id"
"after_sequence": "tools.after_sequence"
"limit": "tools.limit"
outputParameters:
- type: object
mapping: "$."
- name: "get-feed-message"
description: "Get Feed Message"
hints:
readOnly: true
destructive: false
idempotent: true
call: "letta-feeds.feeds_getmessage"
with:
"feed_id": "tools.feed_id"
"message_id": "tools.message_id"
outputParameters:
- type: object
mapping: "$."
- name: "subscribe-agent-feed"
description: "Subscribe Agent to Feed"
hints:
readOnly: false
destructive: false
idempotent: false
call: "letta-feeds.feeds_subscribeagent"
with:
"feed_id": "tools.feed_id"
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "update-subscription"
description: "Update Subscription"
hints:
readOnly: false
destructive: false
idempotent: true
call: "letta-feeds.feeds_updatesubscription"
with:
"feed_id": "tools.feed_id"
"subscription_id": "tools.subscription_id"
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "delete-subscription"
description: "Delete Subscription"
hints:
readOnly: false
destructive: true
idempotent: true
call: "letta-feeds.feeds_deletesubscription"
with:
"feed_id": "tools.feed_id"
"subscription_id": "tools.subscription_id"
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "unsubscribe-agent-feed"
description: "Unsubscribe Agent from Feed"
hints:
readOnly: false
destructive: false
idempotent: false
call: "letta-feeds.feeds_unsubscribeagent"
with:
"feed_id": "tools.feed_id"
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "trigger-subscription"
description: "Trigger Subscription"
hints:
readOnly: false
destructive: false
idempotent: false
call: "letta-feeds.feeds_triggersubscription"
with:
"feed_id": "tools.feed_id"
"subscription_id": "tools.subscription_id"
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "backfill-subscription"
description: "Backfill Subscription"
hints:
readOnly: false
destructive: false
idempotent: false
call: "letta-feeds.feeds_backfillsubscription"
with:
"feed_id": "tools.feed_id"
"subscription_id": "tools.subscription_id"
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "list-subscription-history"
description: "List Subscription History"
hints:
readOnly: true
destructive: false
idempotent: true
call: "letta-feeds.feeds_listsubscriptionhistory"
with:
"feed_id": "tools.feed_id"
"subscription_id": "tools.subscription_id"
"page_size": "tools.page_size"
"next_page_token": "tools.next_page_token"
outputParameters:
- type: object
mapping: "$."
- name: "update-all-subscriptions-cron-schedule"
description: "Update All Subscriptions Cron Schedule"
hints:
readOnly: false
destructive: false
idempotent: true
call: "letta-feeds.feeds_updateallsubscriptionscron"
with:
"feed_id": "tools.feed_id"
"body": "tools.body"
outputParameters:
- type: object
mapping: "$."
- name: "list-feed-subscriptions"
description: "List Feed Subscriptions"
hints:
readOnly: true
destructive: false
idempotent: true
call: "letta-feeds.feeds_listsubscriptions"
with:
"feed_id": "tools.feed_id"
"limit": "tools.limit"
"offset": "tools.offset"
"agent_id": "tools.agent_id"
outputParameters:
- type: object
mapping: "$."