API

Media uploads with the API

POST /v1/media/uploads takes a name, a type and the size in bytes and returns an upload_url, headers to send and a media id. Send the file to that address directly. Storage refuses a body larger than the size you declared. Use the media id in a post once the file is ready.

Updated 2026-10-26

  1. 01

    Ask for an upload. The size is checked against your plan before an address is made, and the room is held until the address expires.

  2. 02

    PUT or POST the file to upload_url with the returned headers, as the reply says.

  3. 03

    Put the media id in a post. media_not_ready means the file has not finished arriving yet.

To fetch a file from a public address instead, use POST /v1/media. Private and loopback addresses are refused.

Try it

Start a trial

7-day trial for $1. Connect your accounts and schedule a week of posts in one sitting.

Start a trial
Free in your browser

Free tools

Count characters the way each network does, split threads and preview posts. No account needed.

Open the tools
For builders

API and MCP

Post to every network from your own code or assistant with one key, signed webhooks and idempotent requests.

See the API

Questions

What if the size I declare is wrong?

Storage refuses a body larger than declared, so declare the exact size.

From one post to every feed

Plan the week in one sitting, keep your team in the loop, and let 1Post publish on time while you get on with the rest of your day.