Skip to main content
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:
PortalPrefixExample
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

VerbSemantics
GETRead-only. No request body.
POSTCreate a new resource, or submit a query/search with a request body.
PUTFull replace. The entire resource is replaced with the provided body. Fields omitted from the body revert to their default values.
PATCHPartial update. Only the fields present in the body are modified.
DELETERemove 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.

Date and time formats

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.