Skip to main content

Nylon API reference

The Nylon API is a JSON API served from:
Every request requires a Nylon API key in the bearer Authorization header. Start with Authentication if you have not created a key yet.

Conventions

snake_case

Request and response fields are snake_case throughout.

Everything in data

Successful responses wrap the payload in data. List responses add meta.pagination.

One error shape

Failures return { "error": { "code", "message", "details?" } }. Branch on code — see Errors.

Per-key rate limits

120 requests a minute for reads, 30 for publishing. Successful responses carry RateLimit-* headers; a 429 adds Retry-After.

Posts

Publishing is synchronous. A post that goes out now returns after every target has been attempted, carrying the network post ids, permalinks and per-target errors — not a job id to poll.

Create a post

POST /v1/posts — publish or schedule one payload across every profile you address.

List posts

GET /v1/posts — page through posts, filtered by status, network, profile or date.

Retrieve a post

GET /v1/posts/{postId} — one post and the state of each of its targets.

Update a scheduled post

PATCH /v1/posts/{postId} — replace content, targets or the send time before it goes out.

Cancel a scheduled post

DELETE /v1/posts/{postId} — stop a post before it sends. Published targets are never withdrawn.

Retry failed targets

POST /v1/posts/{postId}/retry — republish what failed, never what already went out.

Profiles

List connected profiles

GET /v1/profiles — every profile connected to the account, with its network and status.

Retrieve a profile

GET /v1/profiles/{profileId} — one connected profile.

Disconnect a profile

DELETE /v1/profiles/{profileId} — destroy stored credentials, keep the connection history.

List Pinterest boards

GET /v1/profiles/{profileId}/boards — the board ids a Pinterest profile can pin to.

Connections

List connectable networks

GET /v1/connections — which networks this account can connect, and where each starts.

Start a connection

POST /v1/connections — the URL to send a customer to so they can authorise an account.

Networks and validation

List network capabilities

GET /v1/networks — character limits, media specs, post types and options, as data.

Validate a post

POST /v1/validate — a dry run of POST /v1/posts. Same body, nothing published.

Webhooks

Publishing is synchronous, so these are for the outcomes nobody is waiting on — a scheduled post that failed overnight, a profile whose token expired. See Webhooks for the payload, the signature and the retry schedule.

Register an endpoint

POST /v1/webhooks — register a receiver and get its signing secret, once.

List endpoints

GET /v1/webhooks — every endpoint, with its subscriptions and delivery health.

Retrieve an endpoint

GET /v1/webhooks/{webhookId} — one endpoint and the state of its deliveries.

Update an endpoint

PATCH /v1/webhooks/{webhookId} — change the URL or subscriptions, or re-enable a disabled endpoint.

Delete an endpoint

DELETE /v1/webhooks/{webhookId} — remove it and stop its queued deliveries.

Rotate the secret

POST /v1/webhooks/{webhookId}/secret — issue a new signing secret. No overlap window.

Send a test event

POST /v1/webhooks/{webhookId}/test — deliver a signed test event now and see what your endpoint returned.

List deliveries

GET /v1/webhooks/{webhookId}/deliveries — the delivery log, with payloads and responses.

The same API, as agent tools

Every publishing, profile, connection and network endpoint above is also an MCP tool, so an AI agent works against this same contract. Webhook configuration is deliberately left out — see why. A tool calls the endpoint that implements it — same validation, same rate limits, same error codes.

Inbox

Conversations on one resource. Live on Telegram — channels, groups and direct chats; read-only elsewhere. See Inbox for the model and how connecting works.

List conversations

GET /v1/inbox/conversations — threads across every account, newest activity first.

Retrieve a conversation

GET /v1/inbox/conversations/{conversationId} — one thread and its unread count.

List messages

GET /v1/inbox/conversations/{conversationId}/messages — the thread itself, newest first.

Reply

POST /v1/inbox/conversations/{conversationId}/messages — public on a comment, private on a DM.

Mark read

POST /v1/inbox/conversations/{conversationId}/read — clear the unread count.

Not yet in the API

Analytics

In build. Nothing in the API returns analytics data today.