Nimply Developers
Examples

Schedule an image post

Upload an image by URL and schedule it for a specific time.

Scopes: media:write, posts:write, posts:publish (needed for any schedule value other than "draft").

1. Import the image

Give Nimply a publicly reachable URL; it downloads and stores the file:

curl -X POST https://api.nimply.io/v1/media \
  -H "Authorization: Bearer $NIMPLY_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/images/launch-banner.png",
    "name": "launch-banner.png"
  }'
{
  "id": "9f2b1c3d-5a6e-4f70-8b91-2c3d4e5f6a70",
  "name": "launch-banner.png",
  "type": "IMAGE",
  "url": "https://…signed…",
  "thumbnailUrl": null,
  "size": 245760,
  "createdAt": "2026-07-09T10:00:00.000Z"
}

2. Create the post with an ISO 8601 schedule

Passing a datetime as schedule creates and schedules in one call:

curl -X POST https://api.nimply.io/v1/posts \
  -H "Authorization: Bearer $NIMPLY_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: launch-banner-2026-08-01" \
  -d '{
    "channelIds": ["123e4567-e89b-12d3-a456-426614174000"],
    "content": "Launching something new today πŸš€",
    "mediaIds": ["9f2b1c3d-5a6e-4f70-8b91-2c3d4e5f6a70"],
    "schedule": "2026-08-01T09:00:00.000Z"
  }'

The response is an array β€” one post per channel id:

[
  {
    "id": "7a245d46-…",
    "channelId": "123e4567-e89b-12d3-a456-426614174000",
    "content": "Launching something new today πŸš€",
    "contentType": "POST",
    "status": "SCHEDULED",
    "scheduledAt": "2026-08-01T09:00:00.000Z",
    "publishedAt": null,
    "mediaIds": ["9f2b1c3d-5a6e-4f70-8b91-2c3d4e5f6a70"]
  }
]

Gotchas

  • The schedule time must be in the future; a past datetime fails validation (422).
  • The response is always an array, even with a single channel id.
  • Always send an Idempotency-Key on POST β€” a timed-out retry then returns the original result instead of scheduling a duplicate.
  • To confirm it went live, subscribe to post.published / post.failed webhooks or poll the post.

On this page