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

# Get send delivery statuses

> Get the delivery status of up to 100 sends in a single request, using the
`sendId` values returned from the start endpoint. Prefer this over polling
the single-send endpoint once per `sendId`.



## OpenAPI

````yaml https://api.hightouch.io/api/swagger.json post /campaigns/{campaignId}/sends/batch-get
openapi: 3.0.0
info:
  title: Hightouch API
  version: 1.0.0
  description: Hightouch Public Rest API to access syncs, models, sources and destinations
  contact:
    name: Hightouch
    url: https://hightouch.com
servers:
  - url: https://api.hightouch.com/api/v1
security: []
paths:
  /campaigns/{campaignId}/sends/batch-get:
    post:
      summary: Get send delivery statuses
      description: >-
        Get the delivery status of up to 100 sends in a single request, using
        the

        `sendId` values returned from the start endpoint. Prefer this over
        polling

        the single-send endpoint once per `sendId`.
      operationId: GetSendStatuses
      parameters:
        - in: path
          name: campaignId
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BatchSendStatusRequest'
      responses:
        '200':
          description: Ok
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BatchSendStatusResponse'
        '401':
          description: Unauthorized
        '422':
          description: Validation Failed
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidateErrorJSON'
        '500':
          description: Something went wrong
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
      security:
        - bearerAuth: []
components:
  schemas:
    BatchSendStatusRequest:
      description: Request body for the batch send status endpoint.
      properties:
        sendIds:
          items:
            type: string
          type: array
          description: '`sendId` values returned by the trigger endpoint.'
          minItems: 1
          maxItems: 100
      required:
        - sendIds
      type: object
      additionalProperties: false
    BatchSendStatusResponse:
      description: >-
        Response body for the batch send status endpoint. Results are returned
        in the

        same order as the requested `sendIds`.
      properties:
        results:
          items:
            $ref: '#/components/schemas/BatchSendStatusResult'
          type: array
          description: Per-send outcomes, in request order.
      required:
        - results
      type: object
      additionalProperties: false
    ValidateErrorJSON:
      properties:
        message:
          type: string
          enum:
            - Validation failed
          nullable: false
        details:
          properties: {}
          additionalProperties: {}
          type: object
      required:
        - message
        - details
      type: object
      additionalProperties: false
    InternalServerError:
      type: string
      enum:
        - Internal Server Error
      nullable: false
    BatchSendStatusResult:
      description: Delivery status for one requested send.
      properties:
        sendId:
          type: string
          description: The `sendId` this result is for, echoed from the request.
        status:
          $ref: '#/components/schemas/SendStatus'
        reason:
          type: string
          description: >-
            Readable explanation for why this send was dropped or failed.
            Present

            when `status` is `"dropped"` or `"failed"`.
        reasonCode:
          $ref: '#/components/schemas/SendStatusReasonCode'
          description: Stable code for `reason`. Present whenever `reason` is.
        updatedAt:
          type: string
          description: |-
            ISO 8601 time the status last changed. Absent when `status` is
            `"not_found"`.
      required:
        - sendId
        - status
      type: object
      additionalProperties: false
    SendStatus:
      type: string
      enum:
        - sent
        - delivered
        - bounced
        - failed
        - dropped
        - not_found
      description: >-
        Delivery status of a send. `not_found` means no send with this id exists
        on

        the campaign, including a send that has not been processed yet.
    SendStatusReasonCode:
      type: string
      enum:
        - suppression_list
        - role_based_address_suppression
        - suspicious_domain_suppression
        - frequency_cap
        - quiet_hours
        - missing_channel_data
        - no_locale
        - unsubscribed
        - render_error
        - other
        - send_failed
        - delivery_failed
      description: >-
        Stable machine-readable reason a send was dropped or failed. Branch on
        this

        value; the wording of `reason` may change.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Bearer

````