Discussions
Product Notice: Eloqua Retrieve a list of CDO App API endpoints search limits [May 2022]

What's Changing
Starting with the Eloqua 22B release (May 2022), if there are over one million CDO (custom data object) records, the Retrieve a list of custom object data Application API 1.0 and 2.0 endpoints will now only accept one search request at a time if the request includes only non-indexed fields or does not include an indexed field without a leading wildcard. This limit will be per User and per Custom Object. Please note that a “429 Too Many Requests” response will be returned until the request completes.
If you would like it enabled earlier than the arrival of 22B, you can open an SR with Oracle Cloud Support to gain early access.
Impacted endpoints:
- 1.0
- Retrieve a list of custom object data: GET /api/REST/1.0/data/customObject/{id}
- 2.0
- Retrieve a list of custom object data: GET /api/REST/2.0/data/customObject/{parentId}/instances
Key Notes:
- List of supported indexed fields for search:
- 1.0
- id
- uniqueCode
- ModifiedAt
- CreatedAt
- 2.0
- name
- uniqueCode
- CreatedAt
- contactId
- accountId
- 1.0
- Custom fields set to unique code, email, or display name will have index added
- If making a change to unique code, email, or display name it will take up to 30 minutes to reflect when submitting a search request
- For apps, the User that installed the app is used to submit the request
- If including more than one field, if there is at least one indexed field without a leading wildcard the request will not be limited
- Any empty search requests count as a leading wildcard, e.g. ?search=* or ?search=First_Name1=*
Example – User has a search request that does not include an indexed field and includes a leading wildcard in progress then submits the same request
First Request:
GET /api/REST/2.0/data/customObject/17/instances?search=First_Name1='Test'Last_Name1='*limit'
Second Request:
GET /api/REST/2.0/data/customObject/17/instances?search=First_Name1='Test'Last_Name1='*limit'
Second Request Response:
429 Too Many Requests
Using this same example, we can ensure there will be no limit by setting First_Name1 to display name and waiting 30 minutes.
Timeline
This change takes effect with the arrival of Eloqua 22B release (May 2022), but can also be enabled for Early Preview as early as the Eloqua 22A release. Check the Eloqua Release Center for specific dates and times.
Next Steps
If you are currently submitting search requests for a Custom Object with over one million records that includes only non-indexed fields or does not include an indexed field without a leading wildcard be prepared for the “429 Too Many Requests” response if you already have a request processing that includes only non-indexed fields or does not include an indexed field without a leading wildcard.
It’s recommended to follow the best practices for searching custom object data:
- Do not use leading wildcard searches
It is recommended to use the " * " after the value whenever possible, as this produces the most efficient search.
- Searching for custom object records using custom fields
If you plan to heavily search for custom object records by a custom field, then this custom field should be set to unique code, email, or display name. In this case, an index will be added to the custom field.
- Maintain a low custom object record volume
Keep the number of records as low as possible in custom objects. For example, you can regularly delete unneeded custom object records.
Additional Resources
View changes for Eloqua's APIs including, new features, significant recent changes, and platform notices, on the Eloqua Developer Changelog.
If you have questions, ask a question on Developer Tools!
FAQ
Q: What endpoints are impacted by this change?
A: Only the following two endpoints are impacted:
- 1.0: Retrieve a list of custom object data: GET /api/REST/1.0/data/customObject/{id}
- 2.0: Retrieve a list of custom object data: GET /api/REST/2.0/data/customObject/{parentId}/instances
Q: What are some best practices to avoid hitting this limit?
A: It’s recommended to follow these best practices for searching custom object data:
- Do not use leading wildcard searches
It is recommended to use the " * " after the value whenever possible, as this produces the most efficient search.
- Searching for custom object records using custom fields
If you plan to heavily search for custom object records by a custom, then this custom field should be set to unique code, email, or display name field. In this case, an index will be added to the custom field.
- Maintain a low custom object record volume
Keep the number of records as low as possible in custom objects. For example, you can regularly delete unneeded custom object records.
Q: What if a different User submits a search request that includes only non-indexed fields or does not include an indexed field without a leading wildcard, while another User has one processing for the same Custom Object, will it be limited?
A: This request would not be limited. The limit is applied by User and Custom Object.
Q: What if a User submits a search request that includes only non-indexed fields or does not include an indexed field without a leading wildcard for a different Custom Object than the one currently processing, will it be limited?
A: This request would not be limited. The limit is applied by User and Custom Object.
Q: Will any other search request other than Custom Object data be impacted?
A: Only the two Retrieve a list of custom object data Application API endpoints are impacted.
Q: Can I include a leading wildcard with an indexed field and not be limited?
A: If the search request has at least one indexed field without a leading wildcard it will not be limited. If there is only one indexed field in the search request and it has a leading wildcard it will be limited.
Q: Will the Custom Object search request be limited if the Custom Object has exactly one million records?
A: No, the Custom Object will be limited only if it has over one million records, e.g. 1,0000,001 or more.
Group Product Manager, CX - Marketing: Eloqua