Create a post
const url = 'https://api.loomta.com/public/v1/posts';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"platformIds":["8b2c1f4a-77d0-4e2c-9a1e-5c3b2a1d0e4f"],"content":"We just shipped 🚀 #buildinpublic","mode":"now","mediaIds":["a1d4e9b2-3c5f-4a8d-b0e1-2f6c7a9d8b3e"],"settings":{"privacy_level":"PUBLIC_TO_EVERYONE"}}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.loomta.com/public/v1/posts \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "platformIds": [ "8b2c1f4a-77d0-4e2c-9a1e-5c3b2a1d0e4f" ], "content": "We just shipped 🚀 #buildinpublic", "mode": "now", "mediaIds": [ "a1d4e9b2-3c5f-4a8d-b0e1-2f6c7a9d8b3e" ], "settings": { "privacy_level": "PUBLIC_TO_EVERYONE" } }'Creates a post on one or more platforms. Each platform is processed independently — the response contains a per-platform result so a partial failure does not block the others.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”object
One or more platform IDs from GET /platforms.
The post caption / body.
now publishes immediately; schedule requires scheduledFor; draft saves without publishing.
Required when mode is schedule. ISO 8601.
Media object IDs from POST /media. Required for TikTok.
Provider-specific settings (see GET /platforms/{id}/schema).
object
object
object
Examples
Publish a video immediately
{ "platformIds": [ "8b2c1f4a-77d0-4e2c-9a1e-5c3b2a1d0e4f" ], "content": "We just shipped 🚀 #buildinpublic", "mode": "now", "mediaIds": [ "a1d4e9b2-3c5f-4a8d-b0e1-2f6c7a9d8b3e" ], "settings": { "privacy_level": "PUBLIC_TO_EVERYONE" }}Schedule a photo carousel
{ "platformIds": [ "8b2c1f4a-77d0-4e2c-9a1e-5c3b2a1d0e4f" ], "content": "3 reasons to try us", "mode": "schedule", "scheduledFor": "2026-07-01T15:00:00Z", "mediaIds": [ "a1d4e9b2-3c5f-4a8d-b0e1-2f6c7a9d8b3e", "b2e5f0c3-4d6a-4b9e-c1f2-3a7d8b0e9c4f", "c3f6a1d4-5e7b-4c0f-d2a3-4b8e9c1f0d5a" ]}Responses
Section titled “Responses”Per-platform results.
object
object
object
object
object
object
object
object
Example
{ "results": [ { "status": "created", "post": { "root": { "state": "DRAFT" }, "children": [ { "state": "DRAFT" } ] } } ]}The request body failed validation.
object
A stable, machine-readable error code to branch on.
A human-readable description.
Optional structured detail (for example Zod validation issues).
Example
{ "code": "invalid_request", "message": "The request payload is invalid.", "details": [ { "path": [ "slideCount" ], "message": "Number must be greater than or equal to 3" } ]}The API key is missing or invalid.
object
A stable, machine-readable error code to branch on.
A human-readable description.
Optional structured detail (for example Zod validation issues).
Examples
{ "code": "missing_api_key", "message": "A Bearer API key is required."}{ "code": "invalid_api_key", "message": "The API key is invalid."}A plan limit was reached (for example the monthly post cap).
object
A stable, machine-readable error code to branch on.
A human-readable description.
Optional structured detail (for example Zod validation issues).
Example
{ "code": "post_limit_reached", "message": "The monthly post limit for this plan has been reached."}