Push API Limits
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:
-
256 MB when pushing a large file container.
See:
-
6 MB when pushing a single item or security identity.
See:
Recommended Maximum Number of Items per Hour
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 Manage batches of items in a Push source and Manage Batches of Security Identities). Remember that contractually, you must contact us if you want to arrange performance tests on Coveo |
Note
When pushing many items over a short period of time, keep in mind that buffering will typically occur. |
The index speed of a Coveo 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’s 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, itstype
value, and the keys and values in itsadditionalInfo
value, all UTF-8 encoded. -
The number of relationships of an identity is defined as the number of member, aliases, and granted identities it defines. In the case of an IdentityBody, this is its number of
members
andwellKnowns
. In the case of a MappedIdentityBody, this is its number ofmappings
andwellKnowns
.
The daily count of relationships is the total number of relationships present in requests to add or update one or more security identities. Note that this implies that every time you push an identity, even if it remains the same, the number of relationships it defines contributes to the daily count.
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 can’t push any security identity whose size exceeds 10kB.
Relationship Limits
You can’t push any security identity which defines over 100,000 security identity relationships.
You can’t push more than 6,000,000 security identity relationships per day.
Be sure to respect this limit. It was selected because you shouldn’t be able to reach it in a properly-configured Coveo implementation. However, if you do manage to reach the limit, you won’t be able to push any more relationships until it resets, which may cause permission mismatches on items. |