Feedonomics: EDRTS (1.0.0)

Overview

The Event-Driven Sync API allows you to update data across channels in near real-time by inserting or updating records, triggering exports as needed. Rate-limiting policies are in place to maintain system stability and should be followed when making API calls.

What You'll Learn:

  • How to insert and update data records in real time.
  • Best practices for managing rate limits.
  • How to retrieve and review data for validation.

Terminology

Correlation ID

Each PUT request for data operations is assigned a unique identifier; correlation id. This identifier can be used in subsequent API requests to obtain detailed information about the associated job.

Rate Limiting

Included headers in every authenticated response (success or failure):

  • X-Rate-Limit-Group: The name of the API group.
  • X-Rate-Limit-Remaining: The number of remaining requests in the current time window.
  • X-Rate-Limit-Reset: The timestamp when the rate limit will reset.

If the rate limit is exceeded, the API will return an HTTP 429 status code and a message with how long to wait until the limit resets.

{"status":"fail","message":"Rate Limit Exceeded. Please wait -timeUntilReset- seconds before trying again."}

Data Operations

Manage your product database.

Insert / Update Records

Insert and/or update the provided record(s) in the database.


Optimizing Performance

Batch Size

When making PUT requests to operate on your data, determining an optimal batch size (number of records per request) can help increase overall throughput.

Depending on individual record size, an ideal batch size is typically between 50 - 150 records per request to balance throughput and API response time.

The following table displays performance based on an average individual record size of 1KB:

Requests Per Minute Batch Size (Rows Per Request) Row Updates Per Minute
Up to 1000 1 1000
Up to 300 25 7500
Up to 300 50 15000
Up to 180 100 18000
Up to 40 500 20000

Authorizations:
api_key
path Parameters
db_id
required
integer
Example: 102345

Unique ID of the database

Request Body schema:
required

**The max payload size per request is 10MB, with a max individual record size of 5KB**

Array
object

Responses

Request samples

Content type
[
  • {
    },
  • {
    },
  • {
    }
]

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Delete Records

Delete the provided record(s) in the database.


Authorizations:
api_key
path Parameters
db_id
required
integer
Example: 102345

Unique ID of the database

Request Body schema: application/json
required

**The max rows to delete per request is 1000**

Array
string

Responses

Request samples

Content type
application/json
[
  • "a1",
  • "a5",
  • "a9"
]

Response samples

Content type
application/json
{
  • "status": "success",
  • "data": {
    }
}

Database Status / Job Details

View overall database health and job details.

Get Database Status

Get general database status information such as outstanding requests in queue and most recently processed job.

Authorizations:
api_key
path Parameters
db_id
required
integer
Example: 102345

Unique ID of the database

Responses

Response samples

Content type
application/json
{}

Get Correlation Data

Retrieves data set based on the specified correlation ID.

Authorizations:
api_key
path Parameters
db_id
required
integer
Example: 102345

Unique ID of the database

correlation_id
required
string
Example: 1428ebcf7cdfd213

Correlation ID of the data set

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "request_timestamp": "string",
  • "data": {
    }
}

Get Correlation Batch Data

Retrieves data set based on the specified correlation ID and batch index.

Authorizations:
api_key
path Parameters
db_id
required
integer
Example: 102345

Unique ID of the database

correlation_id
required
string
Example: 1428ebcf7cdfd213

Correlation ID of the data set

batch_index
required
integer
Default: 0
Example: 0

The index of a batch in this correlated data set.

Responses

Response samples

Content type
application/json
{
  • "status": "success",
  • "request_timestamp": "string",
  • "data": {
    }
}