Depending on your use case, you may consider using either the Optimizely Data Platform (ODP) REST APIs or GraphQL API. We provide scenarios and examples for when to use each below:
For events across many customers, use the ODP Exports API.
Example: Export all send events for a particular campaign.
For bulk dimensions (either all values or values filtered in a particular way), you can use either GraphQL or the ODP Exports API.
We recommend using the ODP Exports API anytime you expect more than 1,000 entities in your result. The maximum page size in GraphQL is 1,000 and you can use cursors to retrieve multiple pages. However, the latency cost of paginating through will eventually exceed the latency overhead of the ODP Exports API, making Exports the more performant option.
Example: Export all customers with their consent status. Use the Exports API.
Example: Export all customers with have opted-out in the last hour. Use GraphQL.
For data about a single thing (like a set of events or a customer), but which requires joining across dimensions (such as adding product details), use the GraphQL endpoint. This endpoint allows for joins on a single point in real time across dimensions.
Example: Retrieve details about a purchase, and add in product details like the name and image URL.
For data limited to a single point on a single dimension, either approach is available and it is a matter of preference. However, for performance reasons, ODP recommends GraphQL.
Example: Retrieve consent or reachability details for an identifier.