---
title: "Upload Sequence Attachment"
method: POST
path: "/api/sequences/{sequence_id}/attachments/upload"
tags: ["sequences"]
---

# Upload Sequence Attachment

`POST /api/sequences/{sequence_id}/attachments/upload`

## Request

- Base URL: `https://platform.verbiflow.com/api/bridge`
- URL: `https://platform.verbiflow.com/api/bridge/api/sequences/{sequence_id}/attachments/upload`
- Auth: one of:
  - HTTP bearer and API key in header `x-flage-org-id`
  - HTTP bearer and API key in header `x-flage-org-slug`

## Path parameters

- `sequence_id` string, required

## Request body `multipart/form-data`

- BodyCampaignAttachmentUpload
  - `file` string, binary, required
  - `kind` string, required

## Response `200`

Successful Response

- SequenceAttachmentUploadResponse: Stable campaign attachment handle and validated file metadata.
  - `content_type` string, required: Validated MIME type stored with the attachment.
  - `filename` string, required: Sanitized uploaded filename.
  - `kind` 'pdf' | 'video' | 'email_attachment', required: Campaign attachment category used by runtime delivery.
  - `max_bytes` integer, required: Maximum accepted attachment size.
  - `s3_key` string, required: Stable organization-owned handle stored in campaign step payloads.
  - `size_bytes` integer, required: Exact uploaded byte count.

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract.md) - [All operations](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract/llms.txt) - [OpenAPI document](https://skmtc.dev/verbiflow/apis/verbiflow-sdk-http-contract/revisions/c80e903ef8f3?raw)
