Push API Limits

The Push API enforces certain limits on request size, request frequency, and on security identities.

These limits could change at any time without prior notice.

Request Size Limits

You will typically get a 413 Request Entity Too Large response if your total Push API request size exceeds:

Assuming you’re using a fairly small number of batch calls to do so, you can safely push:

  • A sporadic burst of batches totalizing no more than 1,000,000 items over a one-hour period.

    Once per month, you push about 1,000,000 items over a one-hour period.

  • A sustained flow of batches totalizing no more than 300,000 items per hour.

    Once per month, over a 24-hour period, you push about 300,000 items per hour.

Always use batch calls when you need to push many items/security identities (see Managing Batches of Items in a Push Source and Managing Batches of Security Identities).

Remember that contractually, you must contact Coveo if you want to arrange performance tests on the Coveo Cloud platform (see Can I Conduct a Performance Test on Coveo?).

When pushing many items over a short period of time, keep in mind that buffering will typically occur.

The index speed of a Coveo Cloud organization varies based on its typical usage. Also, the more items an index contains, the longer it takes to process new items. A typical production index can process up to 300,000 items per hour, while a typical trial index can process no more than 10,000 items per hour.

Consequently, while you technically can push bursts of up to 1,000,000 items over a one-hour period, your index will typically require at least 3 hours to process all this new information. Similarly, while you can push a sustained flow of 300,000 items per hour, there is no guarantee that your index will be able to keep up with that pace.

Security Identity Limits

The Push API enforces limits on security identity size and relationships.

In a request to add or update one or more security identities:

  • The size of a security identity is defined as the combined sizes of its name value, its type value, and the keys and values in its additionalInfo value, all UTF-8 encoded.

  • The number of relationships of an identity is defined as the number of members, aliases, and granted identities it defines. In the case of an IdentityBody, this is its number of members and wellKnowns. In the case of a MappedIdentityBody, this is its number of mappings and wellKnowns.

Example - Size and Relationship Counts

Consider the following request body:

[
  {
    "identity": {
      "name": "Group_A",
      "type": "GROUP",
      "additionalInfo": {"key_a": "value_a"}
    },
    "members": [
      {
        "name": "Group_B",
        "type": "GROUP",
        "additionalInfo": {}
      }
    ],
    "wellKnowns": [
      {
        "name": "Company",
        "type": "GROUP",
        "additionalInfo": {}
      }
    ]
  },
  {
    "identity": {
      "name": "Group_B",
      "type": "GROUP",
      "additionalInfo": {}
    },
    "members": [
      {
        "name": "user1@example.com",
        "type": "User",
        "additionalInfo": {}
      },
      {
        "name": "user2@example.com",
        "type": "User",
        "additionalInfo": {}
      }
    ],
    "wellKnowns": []
  }
]

Size Count

The size of the Group_A identity pushed in the above request is the size of the following strings, UTF-8 encoded: Group_A, GROUP, key_a and value_a. In total, that makes 24 characters, and therefore 24 bytes.

The size of the Group_B identity is the size of the following strings, UTF-8 encoded: Group_B, GROUP. In total, that makes 12 characters, and therefore 12 bytes.

Relationship Count

The definition of Group_A in the above request includes 1 member and 1 wellknown. It therefore includes 2 security identity relationships.

The definition of Group_B includes 2 members and no wellknown. It therefore includes 2 security identity relationships.

Therefore, the above request pushes 4 security identity relationships in total.

Size Limit

You cannot push any security identity whose size exceeds 10kB.

Relationship Limits

You cannot push any security identity which defines over 100,000 security identity relationships.

Recommended Articles