Invalid API Requests

When there’s an invalid API request, we will send a 400 Bad Request response that will include additional detail like:

{
    "meta": {
        "error": "name cannot be blank"
    }
}

 RECOMMENDED:

We strongly encourage your team to implement some logging on your end to capture our responses to any invalid API requests your integration may send by mistake. This will give you something to look back on when you get notifications from our team about such errors.

Common Error Messages

What you see below is the list of error messages shown when API calls are rejected due to limits mentioned in our API documentation. In addition to the responses we give to your API calls, our system is set up to automatically notify you about API limit infractions we find problematic. When available, you will be given samples of the data we received that exceeded the limits. Note that the middle of the sample data we send may be truncated (" …<truncated>… “) in order to limit the size of the exported error data. To prevent data loss, you’ll want to address the issues mentioned in that file and/or listed below as soon as possible whenever they come up.

  • id attribute must be present
  • id attribute must be a string value
  • id attribute cannot be an empty string
  • cannot identify more than 300 attributes in one request
  • attribute name cannot be longer than 150 bytes
  • value for attribute ‘ATTRIBUTE-NAME’ cannot be longer than 1000 bytes
  • event name must not be blank
  • event name cannot be longer than 100 bytes
  • event name must be less than 500 characters
  • event data must be a hash (e.g., send "data":{} instead of "data":"")
  • event data cannot be longer than 100000 bytes

Why only 300 attributes at a time and only 1000 bytes per attribute value?

These limits have been put in place to ensure the performance and reliability of your Customer.io account.

What happens if I don’t change anything?

If you get these errors and do not fix your integration so that, for example, it only sends a maximum of 300 attributes per identify call and a maximum of 1000 bytes for attribute values, these types of requests will continue to fail.

If you have a use-case which needs these limits relaxed and it doesn’t interfere with our ability to provide the service, we can raise them on request. Please contact us so that we can discuss your use-case in detail.