> ## Documentation Index
> Fetch the complete documentation index at: https://docs.fuseai.com/llms.txt
> Use this file to discover all available pages before exploring further.

# The campaign's send queue by status

> Lists one bucket of the campaign's send queue. `status=approval_required` returns AI-drafted messages waiting for your decision through POST /business/scheduled-sends/approve or /decline; `scheduled` is the upcoming queue, each row due at `scheduledAt` (UTC); `sent`, `skipped`, `stopped` (declined - terminal for that contact) and `overwritten` (replaced by a newer row through PATCH /business/scheduled-sends/{sendId}) are history. `body` is the exact message that will go out, including the unsubscribe footer when the campaign appends one. Add `channel` to narrow to one channel, named exactly as a step's `channel` is. Only the token owner's own campaigns resolve: a campaign delegated to you, one shared by your team's visibility settings, and a deleted one all answer 404. Rate limit: 30 requests/minute and 1,000/day per token owner, shared by every campaign, scheduled-send, campaign-template and knowledge-hub endpoint.

Errors:
- `404` `CAMPAIGN_NOT_FOUND` — No campaign with this id exists, it belongs to another account (including a campaign delegated to you or shared by your team's visibility settings), or it has been deleted.
- `422` `VALIDATION_FAILED` — `status` is missing or not one of the four buckets, `channel` is not one of the stored channels, or a paging value is out of range; `param` names the field.
- `429` `RATE_LIMITED` — More than 30 campaign requests in a minute, or 1,000 in a day, for this token owner (the bucket is shared by every /business/campaigns, /business/scheduled-sends, /business/campaign-templates and /business/knowledge-hubs call).
- `500` `UNEXPECTED_ERROR` — An unhandled failure; the detail stays in our logs and is never returned.

Requires one of the following token scopes: campaigns.



## OpenAPI

````yaml /openapi.json get /business/campaigns/{campaignId}/scheduled-sends
openapi: 3.1.0
info:
  title: Fuse Business API
  version: 1.0.0
  description: >-
    External API for lists, campaigns, prospect search and contacts.
    Authenticate with your API token as HTTP Basic. All paths are under /api/v1.
servers:
  - url: https://api.tryfuse.ai/api/v1
    description: Production
security:
  - basicAuth: []
tags:
  - name: Lists
  - name: Custom columns
  - name: Smart columns
  - name: Exports
  - name: Campaigns
  - name: Knowledge hubs
  - name: Analytics
  - name: Website intent
  - name: Account
  - name: Prospect search
  - name: Campaign steps
  - name: Scheduled sends
  - name: Campaign templates
  - name: Agents
  - name: Research
  - name: Company search
  - name: Saved searches
  - name: Folders
  - name: Contacts
paths:
  /business/campaigns/{campaignId}/scheduled-sends:
    get:
      tags:
        - Scheduled sends
      summary: The campaign's send queue by status
      description: >-
        Lists one bucket of the campaign's send queue.
        `status=approval_required` returns AI-drafted messages waiting for your
        decision through POST /business/scheduled-sends/approve or /decline;
        `scheduled` is the upcoming queue, each row due at `scheduledAt` (UTC);
        `sent`, `skipped`, `stopped` (declined - terminal for that contact) and
        `overwritten` (replaced by a newer row through PATCH
        /business/scheduled-sends/{sendId}) are history. `body` is the exact
        message that will go out, including the unsubscribe footer when the
        campaign appends one. Add `channel` to narrow to one channel, named
        exactly as a step's `channel` is. Only the token owner's own campaigns
        resolve: a campaign delegated to you, one shared by your team's
        visibility settings, and a deleted one all answer 404. Rate limit: 30
        requests/minute and 1,000/day per token owner, shared by every campaign,
        scheduled-send, campaign-template and knowledge-hub endpoint.


        Errors:

        - `404` `CAMPAIGN_NOT_FOUND` — No campaign with this id exists, it
        belongs to another account (including a campaign delegated to you or
        shared by your team's visibility settings), or it has been deleted.

        - `422` `VALIDATION_FAILED` — `status` is missing or not one of the four
        buckets, `channel` is not one of the stored channels, or a paging value
        is out of range; `param` names the field.

        - `429` `RATE_LIMITED` — More than 30 campaign requests in a minute, or
        1,000 in a day, for this token owner (the bucket is shared by every
        /business/campaigns, /business/scheduled-sends,
        /business/campaign-templates and /business/knowledge-hubs call).

        - `500` `UNEXPECTED_ERROR` — An unhandled failure; the detail stays in
        our logs and is never returned.


        Requires one of the following token scopes: campaigns.
      operationId: listScheduledSends
      parameters:
        - name: campaignId
          in: path
          required: true
          description: >-
            The campaign's id (24-character hex ObjectId), as returned by POST
            /business/campaigns or as the campaignId of a GET
            /business/campaigns row.
          schema:
            type: string
            description: >-
              The campaign's id (24-character hex ObjectId), as returned by POST
              /business/campaigns or as the campaignId of a GET
              /business/campaigns row.
        - name: status
          in: query
          required: true
          description: >-
            Queue bucket to list: approval_required (AI-drafted sends waiting
            for your approval), scheduled (queued, goes out at scheduledAt),
            sent (delivered by Fuse or marked done), skipped (passed over, the
            contact moved on), stopped (declined, terminal for that contact) or
            overwritten (replaced by a newer row through PATCH
            /business/scheduled-sends/{sendId}).
          schema:
            type: string
            enum:
              - approval_required
              - scheduled
              - sent
              - skipped
              - stopped
              - overwritten
            description: >-
              Queue bucket to list: approval_required (AI-drafted sends waiting
              for your approval), scheduled (queued, goes out at scheduledAt),
              sent (delivered by Fuse or marked done), skipped (passed over, the
              contact moved on), stopped (declined, terminal for that contact)
              or overwritten (replaced by a newer row through PATCH
              /business/scheduled-sends/{sendId}).
        - name: channel
          in: query
          required: false
          description: >-
            Restrict rows to one channel, named exactly as the queue stores it
            (the same values a step's `channel` uses): email,
            linkedin_connection, linkedin_message, linkedin_visit,
            linkedin_like, inmail, dialer or todo. Omit to include every
            channel.
          schema:
            type: string
            enum:
              - email
              - linkedin_connection
              - linkedin_message
              - linkedin_visit
              - linkedin_like
              - inmail
              - dialer
              - todo
            description: >-
              Restrict rows to one channel, named exactly as the queue stores it
              (the same values a step's `channel` uses): email,
              linkedin_connection, linkedin_message, linkedin_visit,
              linkedin_like, inmail, dialer or todo. Omit to include every
              channel.
        - name: limit
          in: query
          required: false
          description: Page size, 1-100 (default 25).
          schema:
            type: integer
            minimum: 1
            maximum: 100
            default: 25
            description: Page size, 1-100 (default 25).
        - name: pageNum
          in: query
          required: false
          description: 1-based page number (default 1).
          schema:
            type: integer
            minimum: 1
            default: 1
            description: 1-based page number (default 1).
      responses:
        '200':
          description: Success
          headers:
            RateLimit-Limit:
              schema:
                type: integer
              description: Requests permitted in the current window.
            RateLimit-Remaining:
              schema:
                type: integer
              description: Requests remaining in the current window.
            RateLimit-Reset:
              schema:
                type: integer
              description: Seconds until the current window resets.
          content:
            application/json:
              schema:
                type: object
                properties:
                  sends:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type:
                            - string
                            - 'null'
                        campaignId:
                          type:
                            - string
                            - 'null'
                        status:
                          type:
                            - string
                            - 'null'
                          enum:
                            - approval_required
                            - scheduled
                            - sent
                            - skipped
                            - stopped
                            - overwritten
                            - null
                        channel:
                          type:
                            - string
                            - 'null'
                          enum:
                            - email
                            - linkedin_connection
                            - linkedin_message
                            - linkedin_visit
                            - linkedin_like
                            - inmail
                            - dialer
                            - todo
                            - null
                        type:
                          type:
                            - string
                            - 'null'
                          enum:
                            - manual
                            - ai_generated
                            - ai_reply
                            - null
                          description: How the message was produced.
                        subject:
                          type:
                            - string
                            - 'null'
                          description: Null on channels that carry no subject.
                        body:
                          type:
                            - string
                            - 'null'
                          description: >-
                            The exact message that will be sent, including the
                            unsubscribe footer when the campaign appends one.
                        scheduledAt:
                          type:
                            - string
                            - 'null'
                          format: date-time
                          description: When the send is due, in UTC.
                        sentAt:
                          type:
                            - string
                            - 'null'
                          format: date-time
                          description: When it went out; null until then.
                        outcome:
                          type:
                            - string
                            - 'null'
                        fromEmail:
                          type:
                            - string
                            - 'null'
                          description: Sending mailbox for email/inmail rows.
                        fromLinkedInAccount:
                          type:
                            - string
                            - 'null'
                          description: Sending LinkedIn account for LinkedIn rows.
                        cc:
                          type: array
                          items:
                            type: string
                        bcc:
                          type: array
                          items:
                            type: string
                        contact:
                          type: object
                          properties:
                            id:
                              type:
                                - string
                                - 'null'
                            name:
                              type:
                                - string
                                - 'null'
                            email:
                              type:
                                - string
                                - 'null'
                            linkedinUrl:
                              type:
                                - string
                                - 'null'
                          required:
                            - id
                            - name
                            - email
                            - linkedinUrl
                      required:
                        - id
                        - campaignId
                        - status
                        - channel
                        - type
                        - subject
                        - body
                        - scheduledAt
                        - sentAt
                        - outcome
                        - fromEmail
                        - fromLinkedInAccount
                        - cc
                        - bcc
                        - contact
                  pagination:
                    type: object
                    properties:
                      page:
                        type: integer
                        description: 1-based page number this response covers.
                      pageSize:
                        type: integer
                        description: Rows requested per page.
                      total:
                        type: integer
                        description: Total rows matching the query.
                      totalPages:
                        type: integer
                        description: Total pages at this page size.
                    required:
                      - page
                      - pageSize
                      - total
                      - totalPages
                required:
                  - sends
                  - pagination
              example:
                sends:
                  - id: 6a8da7adafc401ca94530e14
                    campaignId: 6a8da7718707dbcfb4448b96
                    status: scheduled
                    channel: email
                    type: manual
                    subject: Quick question about BrightPay
                    body: >-
                      <p>Hi Imogen, saw BrightPay is scaling its finance team.
                      Worth a 15-minute chat next week?</p>
                    scheduledAt: '2026-08-26T00:00:00.000Z'
                    sentAt: null
                    outcome: null
                    fromEmail: sam@yourcompany.com
                    fromLinkedInAccount: null
                    cc: []
                    bcc: []
                    contact:
                      id: 7cc23aea89efde515f9b865e
                      name: Imogen Low
                      email: imogen@brightpay.com
                      linkedinUrl: null
                pagination:
                  page: 1
                  pageSize: 25
                  total: 8
                  totalPages: 1
        '400':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '402':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '404':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '409':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '500':
          description: Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
        - basicAuth: []
components:
  schemas:
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            param:
              type:
                - string
                - 'null'
            doc_url:
              type:
                - string
                - 'null'
            request_id:
              type:
                - string
                - 'null'
          required:
            - code
            - message
      required:
        - error
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: >-
        Your API token (`af_…`) as the Basic-auth username, with an empty
        password.

````