Send Messages

Trigger a one-time send

Changed on

Trigger a one-time send (referred to as a "newsletter" in our APIs) immediately. It must be in a draft state. If it has already been sent, you'll get a 400 error. The recipients are fixed when you create the one-time send. If you're not sure who will receive it, you can use the List one-time sends endpoint to get a list of one-time sends and their recipients.

To reschedule a one-time send, use the Schedule a one-time send endpoint instead.

post/v1/newsletters/{newsletter_id}/send

Request

  • Base URL
    https://api.customer.io
  • URL
    https://api.customer.io/v1/newsletters/{newsletter_id}/send
  • Auth
    HTTP bearer

Request body

rate_limit_email_rateinteger

Maximum number of messages per time period. NOTE: Though this states email_rate, you can use this for other message channels. Only fixed rate limits are supported, not daily ramp limits.

rate_limit_time_period60 | 3600 | 86400

Time period in seconds for rate limiting. Must be one of 60 (minute), 3600 (hour), or 86400 (day).

rate_limit_spreadboolean

When true, spreads messages evenly across the time period. Otherwise, it sends as fast as possible up to the limit in each period.

expires_afterinteger

A send window in seconds measured from the moment the send starts, or 0 for no expiry. Customer.io stops delivering the one-time send once the window closes. You can't combine it with send time optimization, and on an A/B test it must outlast the test duration.

Example request

{
  "rate_limit_email_rate": 500,
  "rate_limit_time_period": 60,
  "rate_limit_spread": true
}

Response

The one-time send is queued.

Example response

{
  "newsletter": {
    "id": 128275,
    "deduplicate_id": "128275:1481653929",
    "type": "email",
    "content_ids": [
      45
    ],
    "name": "Weekly Product Update",
    "sent_at": 1481653929,
    "send_state": "sent",
    "scheduled_at": null,
    "created": 1481653919,
    "updated": 1481653929,
    "recipient_segment_ids": [
      42,
      99
    ],
    "tags": [
      "Product Updates"
    ],
    "subscription_topic_id": 5
  }
}

Changes

    • breaking

      the response property / became nullable for the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • breaking

      added subschema #2 to the request body allOf list

    • breaking

      the request's body type changed from object to no type

    • warning

      removed the request property

    • warning

      removed the request property

    • warning

      removed the request property

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status

    • info

      added the optional property / to the response with the status