This page covers the data format conventions used across all Everflow API endpoints.
Base URL
All API requests are made over HTTPS to:
https://api.eflow.team/v1/
The path prefix determines which portal you are accessing:
| Portal | Prefix | Example |
|---|
| Network | /v1/networks/ | https://api.eflow.team/v1/networks |
| Affiliate | /v1/affiliates/ | https://api.eflow.team/v1/affiliates/network |
| Advertiser | /v1/advertisers/ | https://api.eflow.team/v1/advertisers/offers |
| Marketplace | /v1/partners/ | https://api.eflow.team/v1/partners/connections |
HTTP verb semantics
| Verb | Semantics |
|---|
GET | Read-only. No request body. |
POST | Create a new resource, or submit a query/search with a request body. |
PUT | Full replace. The entire resource is replaced with the provided body. Fields omitted from the body revert to their default values. |
PATCH | Partial update. Only the fields present in the body are modified. |
DELETE | Remove the resource. |
PUT replaces the entire resource. Always fetch the current resource state first, apply your changes to the full object, then send it back. Omitting a field is not the same as leaving it unchanged — it will be reset to its default value.
Content type
All request and response bodies use JSON (application/json). When sending data via POST, PUT, or PATCH, set the request body as JSON.
Export and streaming endpoints may return CSV data when format: "csv" is specified in the request.
Versioning
The API is currently on v1. The version is included in the URL path (/v1/). Breaking changes are communicated in advance — existing integrations on v1 will continue to work.
The API uses two date/time conventions depending on context:
Request parameters
Date filters in request bodies use the YYYY-MM-DD string format:
{
"from": "2024-01-01",
"to": "2024-01-31"
}
Some reporting endpoints accept datetime strings in YYYY-MM-DD HH:MM:SS format for more precise filtering.
Response timestamps
All timestamps in response bodies are Unix epoch integers (seconds since January 1, 1970):
{
"time_created": 1709500000,
"time_saved": 1709510000
}
Common timestamp fields include time_created, time_saved, and time_updated.
IDs
All resource IDs are integers:
{
"network_offer_id": 12345,
"network_advertiser_id": 789,
"network_affiliate_id": 456
}
The one exception is currency identifiers, which use ISO 4217 strings:
{
"currency_id": "USD",
"default_currency_id": "EUR"
}
Monetary values
All monetary values are represented as decimals in full currency units — not cents:
{
"payout": 25.00,
"revenue": 100.00,
"sale_amount": 149.99
}
25.00 means $25.00, not $0.25.
Booleans
Booleans use standard JSON true / false:
{
"is_default": true,
"allow_duplicate_conversion": false
}
Response structure
Single resource
A single resource is returned directly as a JSON object:
{
"network_offer_id": 1,
"name": "Example Offer",
"offer_status": "active"
}
Single resource with relationships
When you request related data using the relationship query parameter, the response includes a nested relationship object:
{
"network_offer_id": 1,
"name": "Example Offer",
"relationship": {
"payout_revenue": {
"total": 1,
"payout_revenue_entities": [...]
}
}
}
See Relationships for details.
List / search responses
Listing endpoints return an array of items alongside a paging object:
{
"offers": [
{ "network_offer_id": 1, "name": "Offer A" },
{ "network_offer_id": 2, "name": "Offer B" }
],
"paging": {
"page": 1,
"page_size": 50,
"total_count": 128
}
}
The items key varies by resource type (e.g., offers, affiliates, advertisers). See Paging for pagination details.
Reporting responses
Reporting endpoints return a table array with columns and reporting metrics per row, plus an optional summary:
{
"table": [
{
"columns": [
{
"column_type": "offer",
"id": "1",
"label": "Example Offer"
}
],
"reporting": {
"imp": 0,
"total_click": 1500,
"unique_click": 1200,
"cv": 45,
"cvr": 3.75,
"revenue": 4500.00,
"payout": 1125.00
}
}
],
"summary": {
"imp": 0,
"total_click": 1500,
"unique_click": 1200,
"cv": 45,
"revenue": 4500.00,
"payout": 1125.00
},
"incomplete_results": false
}
Results are limited to 10,000 rows. If the limit is reached, incomplete_results is set to true.
When incomplete_results is true, the response is truncated — not all matching rows are included. To retrieve the full dataset, narrow the query by splitting it across smaller date ranges, applying additional filters (offer, affiliate, country, etc.), or use the Entity Table Export endpoint to get a full CSV download without the row cap.