Drafts

Upload a draft attachment

Adds one file to the Draft as the raw request body, for media too large to send inline: a video (MP4, up to 50 MiB), a PDF (up to 50 MiB) or an image. Content-Type is the file's type, Content-Length is required; kept only if it arrives whole. Same media rules as inline.

post/v1/drafts/{id}/attachments

Request

  • Base URL: https://api.curviate.com
  • URL: https://api.curviate.com/v1/drafts/{id}/attachments
  • Auth: HTTP bearer

Path parameters

idstring required

Draft id (drf_...).

Query parameters

filenamestring required

The file's name, kept with the attachment.

Response

The Draft, with the new attachment last in attachments[].

object'draft' required

Response type discriminator.

idstring required

Draft id (drf_...).

account_idstring nullable required

The account this Draft will publish as, or null for none yet.

status'draft' | 'scheduled' | 'failed' required

Derived: failed if failure is set, else scheduled if scheduled_at is set, else draft.

textstring nullable required

Post body text. May be empty or null while drafting.

quoted_post_idstring nullable

A post to quote or repost when published.

can_read'anyone' | 'relations_only' | 'null' nullable

Who can read the post once published.

can_comment'anyone' | 'relations_only' | 'no_one' | 'null' nullable

Who may comment once published.

post_asstring nullable

Company page id to post as.

scheduled_atstring nullable required

When Curviate publishes the Draft (UTC, whole minute), or null. It goes out up to 20 seconds after this time. A failed Draft has null here; the time that failed is failure.scheduled_at.

created_atstring required

Creation time.

updated_atstring required

Last change.

Example response

{
  "safety_warning": {
    "row": "profile_views",
    "reset_at": "2026-09-05T00:00:00.000Z",
    "hint": {
      "parameter": "profile_views.ceiling",
      "message": "This account is at its ceiling for profile_views. This action went through because profile_views.posture is warn, and it counted: 101 of 100 this window. Raise profile_views.ceiling, or wait for the window to reset at 2026-09-05T00:00:00.000Z."
    },
    "reason": "ceiling",
    "blocked": false
  }
}

Changes

No recorded changes to this operation across all 1 revision of this API.