Composer and media

Media: uploads, imports and the library

Files go to storage directly, never through the API server. Ask POST /v1/media/uploads for a signed address and a media id, send the file there, then use the id in a post. You can also import from a public address with POST /v1/media. A post can use a file once it is ready.

Updated 2026-10-26

Upload

  1. 01

    Request an upload with the file name, type and size in bytes. The size is checked against your plan before an address is made.

  2. 02

    Send the file to the returned upload_url with the headers it gives. Storage refuses a body larger than the size you declared.

  3. 03

    Use the media id in a post. If you use it too early the API answers media_not_ready.

Import and library

POST /v1/media fetches a file from a public address. Private, loopback and link-local addresses are refused. Mark a file in_library to keep it in the media library, which you can list by name and type with GET /v1/media.

Allowances differ by plan: the largest upload is 400 MB on Starter, 1024 MB on Creator, 1024 MB on Agency.

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

Get this week’s posts scheduled

Connect your accounts, write once and let 1Post publish on time while you get on with the rest of your day.