API reference
One API to publish a post to many social platforms. Send a neutral post plus a list of targets; the relay adapts it per platform, publishes asynchronously, and reports each delivery separately.
Version 0.1.0. Generated from the OpenAPI document the SDK is built from — the build fails if it and the routes disagree.
Base URL https://api.rutba.com
Authenticating
Send your key as Authorization: Bearer rsk_…, or as X-API-Key. Keys are scoped — a key that only needs to publish should not carry admin.
Every response is { data, meta? }, and every failure is { error: { code, message, request_id } } with a code from a closed vocabulary. Write one error handler, not one per endpoint.
auth
Signup, sign-in, sessions and multi-factor
post
/v1/auth/forgot-passwordpublicSend a password reset link
post
/v1/auth/loginpublicSign in
post
/v1/auth/logoutpublicSign out of this device
get
/v1/auth/meThe signed-in user, their organisations, and their effective scopes
post
/v1/auth/mfa/challengepublicComplete a sign-in with a TOTP or recovery code
post
/v1/auth/mfa/disableTurn off two-factor authentication
post
/v1/auth/mfa/enrollBegin TOTP enrolment
post
/v1/auth/mfa/recovery-codesReplace your recovery codes
post
/v1/auth/mfa/verifyFinish TOTP enrolment
patch
/v1/auth/passwordChange your password
patch
/v1/auth/profileUpdate your name and timezone
post
/v1/auth/resend-verificationSend the confirmation email again
post
/v1/auth/reset-passwordpublicSet a new password from a reset link
delete
/v1/auth/sessionsRevoke every other session
get
/v1/auth/sessionsSigned-in devices
delete
/v1/auth/sessions/{id}Revoke one session
post
/v1/auth/signuppublicCreate a user, an organisation, and a first API key
post
/v1/auth/switch-organizationPoint this session at another organisation
post
/v1/auth/verify-emailpublicConfirm an email address
get
/v1/invites/{token}publicPreview an invitation
post
/v1/invites/acceptpublicAccept an invitation, creating the account if there is none
org
Organisation, members, invitations and the audit trail
get
/v1/auditWho did what
get
/v1/orgThis organisation
patch
/v1/orgRename the organisation
get
/v1/org/invitesOutstanding invitations
post
/v1/org/invitesInvite someone by email
delete
/v1/org/invites/{id}Revoke an invitation
get
/v1/org/membersPeople in this organisation
delete
/v1/org/members/{id}Remove a member, or leave the organisation
patch
/v1/org/members/{id}Change a member’s role
get
/v1/org/platform-appsThis organisation's own platform apps
post
/v1/org/platform-appsConfigure an app for a platform
delete
/v1/org/platform-apps/{id}Remove an app
patch
/v1/org/platform-apps/{id}Rotate, relabel or switch off an app
post
/v1/org/transfer-ownershipHand ownership to another member
platforms
What the relay can publish to
get
/v1/platformspublicList every destination and its status
get
/v1/platforms/{id}One destination in detail
connections
Authorised accounts
get
/v1/connect-sessionsList connect links
post
/v1/connect-sessionsMint a connect link
delete
/v1/connect-sessions/{id}Revoke a connect link
get
/v1/connect/{token}publicWhat a connect link is asking for
post
/v1/connect/{token}/connectpublicConnect an account from a connect link, with the platform’s own fields
post
/v1/connect/{token}/startpublicBegin an OAuth connect from a connect link
get
/v1/connectionsList connections
post
/v1/connectionsConnect an account with a token, app password, or webhook URL
delete
/v1/connections/{id}Delete a connection
get
/v1/connections/{id}Get a connection
patch
/v1/connections/{id}Update a connection
post
/v1/connections/{id}/verifyCheck the credentials still work
post
/v1/oauth/{platform}/startBegin an OAuth connect
posts
Publishing
get
/v1/deliveriesThe delivery log across every post
get
/v1/deliveries/{id}Get one delivery
get
/v1/deliveries/{id}/commentsComments on one destination’s published post
post
/v1/deliveries/{id}/commentsReply on one destination
delete
/v1/deliveries/{id}/comments/{commentId}Delete a comment
post
/v1/deliveries/{id}/retryRetry one destination
get
/v1/postsList posts
post
/v1/postsPublish a post to one or more connections
delete
/v1/posts/{id}Cancel the deliveries not yet sent
get
/v1/posts/{id}Get a post and its deliveries
patch
/v1/posts/{id}Edit a draft or a scheduled post
get
/v1/posts/{id}/approvalsEvery review round on a post
post
/v1/posts/{id}/approveApprove a post
post
/v1/posts/{id}/duplicateCopy a post as a new draft
get
/v1/posts/{id}/metricsEngagement for one post, per delivery and totalled
post
/v1/posts/{id}/publishRelease a draft now
post
/v1/posts/{id}/rejectReject a post
post
/v1/posts/{id}/request-changesSend a post back with changes
post
/v1/posts/{id}/retryRetry the failed deliveries of a post
post
/v1/posts/{id}/scheduleSet or move a post's scheduled time
post
/v1/posts/{id}/submitSubmit a post for review
get
/v1/posts/calendarScheduled posts in a date range
post
/v1/posts/previewSee what a post becomes on each platform, without publishing
templates
Reusable content presets
get
/v1/templatesList templates
post
/v1/templatesSave a template
delete
/v1/templates/{id}Delete a template
get
/v1/templates/{id}Get one template
patch
/v1/templates/{id}Update a template
analytics
Aggregates over deliveries
get
/v1/analytics/platformsSuccess rate per platform
get
/v1/analytics/summaryHeadline numbers for a period
get
/v1/analytics/timeseriesDeliveries over time, by status
media
Uploads
get
/v1/mediaList uploaded assets
post
/v1/mediaUpload an image or video
post
/v1/media/completeRegister a file uploaded through a presigned URL
delete
/v1/media/id/{id}Delete an asset
get
/v1/media/id/{id}Get one asset
post
/v1/media/presignGet a URL to upload directly to storage
webhooks
Event delivery
get
/v1/webhooksList webhook endpoints
post
/v1/webhooksRegister a webhook endpoint
delete
/v1/webhooks/{id}Delete a webhook endpoint
get
/v1/webhooks/{id}/deliveriesRecent delivery attempts for this endpoint
post
/v1/webhooks/{id}/rotateIssue a new signing secret
post
/v1/webhooks/{id}/testSend a test event to this endpoint
keys
API keys
get
/v1/keysList API keys
post
/v1/keysCreate an API key
delete
/v1/keys/{id}Revoke an API key
billing
Plans and usage
get
/v1/billingThis tenant’s plan and usage
get
/v1/plansAvailable plans on both priced axes
get
/v1/usageDeliveries used this billing period
Sending a request
The relay serves an interactive console at /docs on the API itself, and the TypeScript client is generated from this same document — so its types cannot describe an endpoint differently from the page you are reading.