Sendoso Sends API

Create and manage gift sends

OpenAPI Specification

sendoso-sends-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Sendoso Sending Platform Inventory Sends API
  description: Sendoso is a corporate gifting and direct mail platform that enables sales, marketing, and customer success teams to send physical and digital gifts at scale. The Sendoso API enables programmatic sending of gifts, swag, e-gifts, direct mail, and branded merchandise. Integrate gift-sending into CRM workflows, marketing automation, and customer engagement pipelines.
  version: '2.0'
  contact:
    name: Sendoso Developer Support
    url: https://developer.sendoso.com/
  license:
    name: Sendoso Terms of Service
    url: https://sendoso.com/terms-of-service/
servers:
- url: https://app.sendoso.com/api/v2
  description: Sendoso Production API v2
security:
- ApiKeyAuth: []
tags:
- name: Sends
  description: Create and manage gift sends
paths:
  /sends:
    get:
      operationId: listSends
      summary: List Sends
      description: Returns a paginated list of sends for the authenticated user or team.
      tags:
      - Sends
      parameters:
      - name: page
        in: query
        schema:
          type: integer
          default: 1
        description: Page number for pagination
      - name: per_page
        in: query
        schema:
          type: integer
          default: 25
          maximum: 100
        description: Results per page
      - name: status
        in: query
        schema:
          type: string
          enum:
          - pending
          - processing
          - shipped
          - delivered
          - failed
          - cancelled
        description: Filter by send status
      - name: start_date
        in: query
        schema:
          type: string
          format: date
        description: Filter sends created on or after this date
      - name: end_date
        in: query
        schema:
          type: string
          format: date
        description: Filter sends created on or before this date
      responses:
        '200':
          description: List of sends
          content:
            application/json:
              schema:
                type: object
                properties:
                  sends:
                    type: array
                    items:
                      $ref: '#/components/schemas/Send'
                  pagination:
                    $ref: '#/components/schemas/Pagination'
        '401':
          description: Unauthorized
    post:
      operationId: createSend
      summary: Create Send
      description: Initiates a new send to one or more recipients. Supports physical gifts, e-gifts, direct mail, and custom branded merchandise. Requires a valid sending address or e-gift email for the recipient.
      tags:
      - Sends
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SendCreate'
      responses:
        '201':
          description: Send created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Send'
        '400':
          description: Invalid request body
        '401':
          description: Unauthorized
        '402':
          description: Insufficient team budget
        '422':
          description: Validation error
  /sends/{send_id}:
    get:
      operationId: retrieveSend
      summary: Retrieve Send
      description: Returns details and current status for a specific send.
      tags:
      - Sends
      parameters:
      - $ref: '#/components/parameters/SendId'
      responses:
        '200':
          description: Send details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Send'
        '404':
          description: Send not found
    delete:
      operationId: cancelSend
      summary: Cancel Send
      description: Cancels a pending send before it has been processed for shipment.
      tags:
      - Sends
      parameters:
      - $ref: '#/components/parameters/SendId'
      responses:
        '200':
          description: Send cancelled
        '409':
          description: Send cannot be cancelled (already shipped or delivered)
components:
  schemas:
    SendCreate:
      type: object
      required:
      - recipient_id
      - item_id
      properties:
        recipient_id:
          type: string
          description: Sendoso recipient ID
        item_id:
          type: string
          description: Inventory item to send
        message:
          type: string
          maxLength: 500
          description: Personalized gift message
        scheduled_date:
          type: string
          format: date
          description: Schedule the send for a future date
        crm_id:
          type: string
          description: CRM object ID to associate with this send
        crm_type:
          type: string
          enum:
          - contact
          - lead
          - account
          - opportunity
          description: CRM object type
    Send:
      type: object
      properties:
        id:
          type: string
          description: Unique send identifier
        status:
          type: string
          enum:
          - pending
          - processing
          - shipped
          - delivered
          - failed
          - cancelled
          description: Current send status
        recipient:
          $ref: '#/components/schemas/RecipientRef'
        item:
          $ref: '#/components/schemas/InventoryItemRef'
        message:
          type: string
          description: Personalized message included with the send
        tracking_number:
          type: string
          nullable: true
          description: Carrier tracking number once shipped
        tracking_url:
          type: string
          format: uri
          nullable: true
        estimated_delivery:
          type: string
          format: date
          nullable: true
        cost:
          type: number
          format: float
          description: Send cost in USD
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        crm_id:
          type: string
          nullable: true
          description: External CRM object ID (Salesforce, HubSpot, etc.)
        team_id:
          type: string
          description: Team that owns this send
    InventoryItemRef:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        type:
          type: string
    RecipientRef:
      type: object
      properties:
        id:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        email:
          type: string
    Pagination:
      type: object
      properties:
        page:
          type: integer
        per_page:
          type: integer
        total:
          type: integer
        total_pages:
          type: integer
  parameters:
    SendId:
      name: send_id
      in: path
      required: true
      schema:
        type: string
      description: Unique send identifier
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-Api-Key
      description: Sendoso API key from Settings > API Keys