The API reference moved here from eksis.io/developers.
Posts

Replace a post

PATCH
/v1/posts/{postId}

The body is the whole post, not a partial patch: targets you leave out are removed. A post that is going out right now, or is waiting for approval, cannot be saved as anything but a draft.

Authorization

headerAuthorizationBearer <token>

Send your key as Authorization: Bearer eksis_sk_....

Path Parameters

postId*string

Request Body

application/json
  1. body
title?|

Internal label, never published.

Lengthlength <= 120
caption?string

Used by every target that has no caption of its own.

Lengthlength <= 63206
baseCaption?stringDeprecated

Old name of caption, still accepted.

Lengthlength <= 63206
mediaIds?array<string>

Media ids from GET /v1/media, POST /v1/media/uploads, or POST /v1/media/imports. Used by targets with an empty mediaIds.

Itemsitems <= 35
baseMediaIds?array<string>Deprecated

Old name of mediaIds, still accepted.

Itemsitems <= 35
targets*array<|>

One entry per destination channel. A post always has at least one.

Items1 <= items
scheduledAt?|

Required when mode is schedule. Interpreted as an absolute instant, so send an offset.

Formatdate-time
mode?string

draft saves without publishing. schedule needs scheduledAt. queue takes the next free slot from the channel queue. now publishes immediately.

Default"draft"
Value in"draft""schedule""now""queue"

Response Body

The post was replaced.

application/json
  1. response
data?
curl -X PATCH 'https://api.eksis.io/v1/posts/string' \  -H 'Authorization: Bearer eksis_sk_...' \  -H 'Content-Type: application/json' \  -d '{  "targets": [    {}  ]}'
{  "data": {    "id": "string",    "status": "string",    "scheduledAt": "2019-08-24T14:15:22Z",    "warnings": [      {        "channelId": "string",        "platform": "string",        "code": "string",        "field": "string",        "message": "string",        "hint": "string"      }    ]  }}