Is there a way to Bulk extract contact details out of Oracle Eloqua's API?

509 Views Asked by At

I am trying to extract a large amount of details out of our Eloqua system using it's API and got this API to work perfectly for single IDs: https://docs.oracle.com/en/cloud/saas/marketing/eloqua-rest-api/op-api-rest-1.0-data-contact-id-get.html

The problem is that I need to run this for a large number of IDs and it will require alot in order to run it for the entire population. Is there any bulk APIs that can extract all of the following details out of Eloqua/Contact for the entire population? I don't see any on that pages documentation that meet this need under the Bulk section.

contactid, company, employees, company_revenue, business_phone, email_address, web_domain, date_created, date_modified, address_1, address_2, city, state_or_province, zip_or_postal_code, mobile_phone, first_name, last_name, title

1

There are 1 best solutions below

0
On

It's a multi-step process with the Bulk API, typically in the following fashion:

  1. Get a list of the current internal field names - useful for creating your export definition
  2. Create an export definition and post it here. There is a useful example on the page, you do not need a filter criteria. Store the export ID somewhere
  3. Using your export definition id, create a sync. It will gather the data in the background and prepare it for you. Take note of the sync ID provided in the initial response.
  4. Check on the sync status with your sync ID here. It should only take a couple of minutes - and there is a callback url option as well in the previous step, if you don't want to keep polling.
  5. Once your data is ready, use that sync id and request the data. Depending on how many rows were retrieved, you might need to paginate through the results using the offset query param. By default it will give you JSON, but I usually choose CSV (specify in the header).

If you need updated data, feel free to create a new sync using the same export definition id. You do not need to create a new export definition each time.