Addrevenue API reference

Our REST API has been developed to support the needs of affiliates and advertisers. You generate a life-time API token manually in our user interface. This Bearer token is then sent as an Authorization header on every request.

API Base URL

All endpoints start with the base URL:

https://addrevenue.io/api/v2

Always use the HTTPS protocol.

Authentication

To generate a token, log in to Addrevenue and go to API tokens, then Generate a new API token. This creates a unique life-time API token for the logged-in account.

The token should then be sent as a Bearer token in all requests to any API endpoint.

Example of a header:

Authorization: Bearer 1892cd44-c59c-42bf-9f1d-a5316ea695cc
Content-type: application/json

Errors

Sending an empty, malformed, or invalid Bearer token will result in one of these HTTP errors:

Status Message Cause
400 Authorization header not found The Authorization header is missing or malformed, for example missing the "Bearer" prefix.
403 Invalid token The header is correctly formatted, but the provided API token does not exist.
403 Inactive account The header is correctly formatted and the token exists, but it belongs to an account that is not active.
403 (endpoint-specific message) The endpoint is not available for this account type, for example "Endpoint only available to affiliates".
404 Endpoint not found The requested endpoint doesn't exist.

Error responses look like this:

{
    "error": {
        "message": "Invalid token"
    }
}

Responses

All responses are in JSON format. A successful response contains a results array, a meta object (item counts and pagination), and a links object (pagination links):

{
    "results": [
        { "id": 1000, "description": "Sample campaign A" },
        { "id": 1001, "description": "Sample campaign B" }
    ],
    "meta": {
        "count": 2,
        "totalCount": 27,
        "page": 1,
        "perPage": 2,
        "totalPages": 14,
        "hasPrevPage": false,
        "hasNextPage": true
    },
    "links": {
        "self": "https://addrevenue.io/api/v2/campaigns?limit=2",
        "next": "https://addrevenue.io/api/v2/campaigns?limit=2&page=2"
    }
}

results is always an array, even for a single result. meta.totalCount is the total number of matching items across all pages, not just the current page. Below, each endpoint lists the fields you can expect inside each item of results, and which of those fields can also be used as a filter.

API Endpoints

Request parameters

You can filter most endpoints by adding a query-string parameter with the same name as one of the item's own fields — for example id, status, market, advertiserId, or channelId. This only works for fields that hold a static, stored value — each endpoint's Response fields table below marks which fields are filterable this way. It does not work for fields that are computed or derived from other data (for example advertiserName, commissionShort, or epc), or for nested objects and arrays (for example markets or programs). Filtering on a non-filterable field returns an error rather than being silently ignored.

Pagination

Use limit (items per page) and page (1-based page number) to page through results, for example /products?limit=50&page=2. offset is also supported as a legacy alternative to page.

Date intervals

For endpoints where it's applicable, you can filter on a date interval using fromDate and/or toDate — either together, to set an interval, or on their own. This filters on the record's creation date (its date field, for stats and trackingErrors) — each endpoint below states whether this is supported.

Where noted, you can also use updatedFromDate/updatedToDate, which filter on the date an item was last updated rather than when it was created.

Advertisers

GET /advertisers

Accessible for

All account types.

Affiliate accounts see all active advertisers — pass channelId to restrict the list to advertisers with a relation (active, pending, or rejected) to that channel. Advertiser accounts see only their own account. Agency accounts see the advertisers they manage.

Request parameters

Parameter Description
channelId Optional (affiliates only). Restricts results to advertisers with a relation to this channel, and adds relation/relationStatus to each result.
expand Optional. Set to 1 to also include programs and landingPages for each advertiser.
fromDate, toDate Optional. Filter by creation date.

Response fields

Field Filterable Description
id Yes Advertiser ID.
name Yes Legal company name.
displayName Yes Public display name.
address, zipcode, city, country Yes Company address.
shortDescription Short marketing description.
categoryId Yes Category, e.g. insurance, foodDrink.
logoImageFilename Absolute URL to the logo image.
url Advertiser's website.
type Always advertiser.
orgno, vatno Yes Organization number and VAT number.
businessType Type of business entity.
autoApproveChannels Yes Whether new channel relations are auto-approved.
policyPaidAds/restrictionPaidAds Yes Paid ads policy (allowed/notAllowed) and any free-text restriction.
policySocialMedia/restrictionSocialMedia Yes Social media policy and restriction.
policyEmailMarketing/restrictionEmailMarketing Yes Email marketing policy and restriction.
policyCouponRebate/restrictionCouponRebate Yes Coupon/rebate policy and restriction.
policyCashbackReward/restrictionCashbackReward Yes Cashback/reward policy and restriction.
ecommercePlatform Yes e.g. shopify, customBuilt.
trackingMethod Yes Tracking integration method.
discountCodeTracking Yes Whether discount-code tracking is enabled.
approvedForPrepayouts Yes Whether the advertiser is approved for early/pre-payouts.
customTrackingParameters Yes Extra query parameters appended to tracking links.
markets Object keyed by market code. Each market has market, displayName, url, status, presentation (HTML), shortDescription, affiliatePageUrl, productFeedUrl, redirectUrl, endedDate, endedReason, activatedDate, productCount.
programs Only with channelId or expand. Commission programs — see the Programs endpoint for field details.
landingPages Only with expand.
relation/relationStatus Only with channelId. Your channel's relation to this advertiser, and its status.

Banners

GET /banners

Accessible for

All account types.

Affiliate accounts see banner groups for all active advertisers — pass channelId to also get a tracking code for every banner. Advertiser and Agency accounts see all banner groups for their own advertiser(s), including inactive ones.

Request parameters

Parameter Description
channelId Optional (affiliates only). If provided, tracking codes for all banners are included in the response.
fromDate, toDate Optional. Filter by creation date.

Response fields

Field Filterable Description
id Yes Banner group ID.
created Yes When the banner group was created.
name, description Yes Banner group name and description.
url Yes Optional destination URL override for the group.
advertiserId Yes The advertiser this group belongs to.
advertiserName The advertiser's display name.
banners Object keyed by banner ID. Each banner has id, created, width, height, filesize, format, filename, and, only with channelId, trackingLink, imageLink, bannerHtmlCode (a ready-to-embed <a><img></a> snippet).

GET /brokenLinks

Accessible for

Affiliate only.

Response fields

Field Filterable Description
id Broken link ID.
url The broken URL.
httpCode The HTTP status code encountered, e.g. 404.
created When the broken link was detected.

This endpoint always covers a fixed 30-day window and returns the full result set — request parameters (including pagination and date filters) are not supported here.

Campaigns

GET /campaigns

Accessible for

All account types.

Affiliate accounts see all public active campaigns for all advertisers, plus any channel-exclusive campaigns for their own channels — pass channelId to restrict to advertisers with an approved relation to that channel, which also adds a trackingLink to every campaign. Advertiser and Agency accounts see all campaigns for their own advertiser(s) — active and inactive, public and channel-exclusive.

Request parameters

Parameter Description
channelId Optional (affiliates only). Restricts to advertisers with an approved relation to the channel, and adds trackingLink to every campaign.
fromDate, toDate Optional. Filter by creation date.

Response fields

Field Filterable Description
id Yes Campaign ID.
advertiserId Yes The advertiser running the campaign.
advertiserName, advertiserUrl The advertiser's display name and website.
description Yes Campaign description.
discountCode Yes The discount code, if this is a coupon campaign.
url Yes Landing page for the campaign.
terms Yes Terms and conditions text.
validFrom, validTo Yes Validity period.
channelId Yes Only set for channel-exclusive campaigns.
created Yes When the campaign was created.
bannerGroupId Yes Linked banner group, if any.
type coupon or offer.
status active or ended.
markets Array of market codes the campaign applies to.
trackingLink Only with channelId. Your channel-tagged link to the campaign URL.

Channels

GET /channels

Accessible for

Affiliate only.

Request parameters

Parameter Description
fromDate, toDate Optional. Filter by creation date.

Response fields

Field Filterable Description
id Yes Channel ID.
affiliateId Yes Your affiliate account ID.
name, url Yes Channel name and website URL.
type Yes e.g. website.
visitors Yes Estimated visitor volume.
status Yes Channel status.
created Yes When the channel was created.
markets Array of market codes, or null.

Events

GET /events

Accessible for

All account types, scoped to your own advertiser(s)/channel(s) as usual — there's no behavioral difference between account types beyond that.

Request parameters

Parameter Description
fromDate, toDate Optional. Filter by creation date — note this filters on created, not on the separate date field in the response.

Response fields

Field Filterable Description
id Yes Event ID.
date, created Yes Event date and full timestamp.
advertiserId, channelId Yes The advertiser and channel involved.
type Yes Event type, e.g. Click. This varies per advertiser integration and is not a fixed list.
url Yes Page URL where the event occurred.
value, currency Yes Order value and currency, if applicable.
orderId Yes Advertiser's order ID, if applicable.
sandbox Yes Whether this was a test/sandbox event.
referrer Yes HTTP referrer.
clickId Yes The click this event is associated with.
bannerId Yes The banner that was clicked, if any.
clickRef Yes Internal click reference.
market Yes Market code.
redirectUrl Yes The advertiser landing page the click redirected to.
affiliateUrl Yes The originating affiliate page URL.
affiliateGclid, wctid Yes Google Ads / other ad-platform click IDs, if present.
easylink Yes Whether this event came through an Easylink.
deviceType Yes desktop, mobile, tablet, or backend.
crossDeviceId Yes Cross-device tracking ID, if available.
subids Yes Your own sub-ID parameters, if sent.

Impressions

GET /impressions

Accessible for

All account types, scoped to your own advertiser(s)/channel(s) as usual — there's no behavioral difference between account types beyond that.

Request parameters

Parameter Description
fromDate, toDate Optional. Filter by creation date.

Response fields

Field Filterable Description
id Yes Impression ID.
date, created Yes Impression date and full timestamp.
advertiserId, channelId Yes The advertiser and channel involved.
url Yes Page URL where the impression occurred.
referrer Yes HTTP referrer.
bannerId Yes The banner that was shown.
market Yes Market code.
deviceType Yes desktop, mobile, tablet, or backend.

Leads

POST /leads

Accessible for

Affiliate only. Currently supports a limited set of integrated advertisers.

Request body

Field Description
channelId Required. Must be one of your own channels.
advertiserId Required. Must be an advertiser integrated with the Leads API, and must have an active relation with the given channel.
(other fields) Advertiser-specific — passed through to the advertiser's lead-intake system.

The response is returned as-is from the advertiser's lead-intake system, rather than the standard results/meta format used by the other endpoints.

Payouts

GET /payouts

Accessible for

Affiliate only.

Request parameters

Parameter Description
fromDate, toDate Optional. Filter by creation date.

Response fields

Field Filterable Description
id Yes Payout ID.
affiliateId Yes Your affiliate account ID.
date, created Yes Payout date and when the payout was created.
name Yes Payee name.
payoutDate Yes When the payout was actually made.
address, zipcode, city, country Yes Payee address.
orgno, vatno Yes Organization number and VAT number.
status Yes Payout status.
sum, vat, total Yes Amount before VAT, VAT amount, and total.
currency Yes Payout currency.
payoutMethod Yes e.g. bank transfer method used.
gigapayPayoutId Yes Reference to the Gigapay payout, if used.
gigapayPayout Expanded Gigapay payout details, if used.
currencyExchangeFee Yes Fee applied for currency conversion, if any.
taxRate Yes Tax rate applied.
bankCountry Yes Bank country, if applicable.
manualAdjustment Yes Any manual adjustment applied to the payout.
noOfTransactions Number of transactions included.
kickbackRows, noOfKickbackRows Kickback line items, if any.
language Language the payout document was generated in.
accountNumber Payee bank account number.
periodFrom, periodTo, periodText The period this payout covers.
vatText VAT note text shown on the payout document.
reverseCharge Whether reverse VAT charge applies.
rows Line items on the payout document.
transactions Object keyed by transaction ID — same fields as the Transactions endpoint below.

Product feeds

GET /productfeeds

Accessible for

All account types.

Affiliate accounts see feed metadata for every advertiser with a completed feed fetch — pass channelId to restrict this to advertisers with an active relation to that channel, which also tags the feed URL for that channel's tracking. Advertiser and Agency accounts always see only their own advertiser(s)' feeds.

Request parameters

Parameter Description
channelId Optional. See above.
detectedCurrency Optional. Filters to feeds where the automatically detected currency matches.
detectedLanguage Optional. Filters to feeds where the automatically detected language matches.

Date filters (fromDate/toDate) and pagination are not supported on this endpoint — it always returns the full result set for every completed feed fetch.

Response fields

Field Filterable Description
advertiserId Yes The advertiser this feed belongs to.
advertiserName The advertiser's display name.
market Market code the feed covers.
sourceProductFeedUrl The advertiser's original feed URL.
url/productFeedUrl Only with channelId. Your channel-tagged feed URL.
started, finished Yes When the feed fetch started and finished. Same values as latestFetchDate/latestFetchFinished below.
latestFetchDate, latestFetchFinished Duplicate, friendlier names for started/finished.
checksum Yes Checksum of the fetched feed, for change detection. Same value as latestFetchChecksum.
latestFetchChecksum Duplicate of checksum.
products Number of products in the feed.
hasGtin Number of products in the feed that include a GTIN.
detectedCurrency, detectedLanguage Yes Automatically detected currency and language of the feed.

Products

GET /products

Accessible for

All account types.

Advertiser and Agency accounts see their own full catalog, including hidden products. Affiliate accounts see only visible products from advertisers with an active market.

Request parameters

Parameter Description
limit Optional. Number of products per page.
page Optional. Page number.
channelId Optional (affiliates). Adds a trackingLink to every product.

Example: /products?limit=50&page=2

Date filters (fromDate/toDate) are not supported on this endpoint.

Response fields

Field Filterable Description
id Yes Internal product ID.
advertiserId Yes The advertiser selling this product.
market Yes Market code.
title Yes Product title.
link Yes Product page URL.
product_type, google_product_category Yes Category fields, following the Google Shopping feed spec.
image_link Yes Product image URL.
condition Yes e.g. new.
availability Yes e.g. in_stock.
price, sale_price, currency Yes Regular price, sale price, and currency.
shipping, size, color, gender, material, age_group Yes Product attributes, when available.
min_handling_time, max_handling_time Handling time in days before shipment, only included when the advertiser has configured a fallback value for their feed.
brand Yes Brand name.
sku, mpn, gtin, product_id, item_group_id Yes Product identifiers.
hidden Yes Whether the product is hidden from non-advertiser accounts.
checksum Yes Checksum of the product data, for change detection.
has_image_link Yes Whether an image URL is available.
trackingLink Only with channelId. Your channel-tagged link to the product page.

Programs

GET /programs

Accessible for

All account types.

Affiliate accounts see only active programs. Advertiser and Agency accounts see all of their programs regardless of status.

Request parameters

Parameter Description
fromDate, toDate Optional. Filter by creation date.

Response fields

Field Filterable Description
id, name Yes Program ID and name.
percent, amount, currency Yes The commission rate — percent for variable, amount/currency for fixed.
status Yes Program status.
commissionType Yes variable or fixed.
conversionEventId Yes The event type this program pays commission on.
commissionShort Human-readable commission, e.g. "15%" or "30 EUR".
commissionValue, commissionUnit The numeric commission value and its unit (% or currency code).
commission Longer human-readable form, e.g. "Fixed (30 EUR)".
tieredCommissionModel, tieredCommissionStartDate Yes Tiering model and when it takes effect, if tiered.
channelId Only set for channel-exclusive programs.
markets Array of market codes the program applies to.
tiers Only for tiered programs. Each tier has transactions, value, amount/currency, commissionShort, transactionsText.
rules Only when conditional commission rules are configured on the program.

Relations

GET /relations

Accessible for

All account types, scoped to your own relations as usual — there's no behavioral difference between account types beyond that.

Request parameters

Parameter Description
fromDate, toDate Optional. Filter by creation date.
updatedFromDate, updatedToDate Optional. Filter by the date the relation was last updated.

Response fields

Field Filterable Description
id Yes Relation ID.
advertiserId Yes The advertiser side of the relation.
advertiserName The advertiser's display name.
channelId Yes The channel side of the relation.
channelName, channelType, channelCategory The channel's name, type, and category.
created, updated Yes When the relation was created and last updated.
status Yes Relation status, e.g. active.
noticeDate, noticeDays Yes Notice period, if the relation is being terminated.
endedDate, endedReason Yes When and why the relation ended, if applicable.
activatedDate Yes When the relation became active.
trackingLink Your channel's tracking link for this advertiser.
programs Array of commission programs available on this relation — same fields as the Programs endpoint above, plus individualCommission: true when this channel has its own commission override for that program (in which case percent/amount already reflect the override).

Stats

GET /stats

Accessible for

All account types. Advertiser and Agency accounts additionally receive brokerage-fee fields (brokerageFee, totalBrokerageFee, deniedBrokerageFee, denialRateBrokerageFee) in the response; these are not included for Affiliate accounts, since brokerage is the platform's markup on top of the affiliate's commission.

Request parameters

Parameter Description
groupBy Optional. Aggregates the response by one or more dimensions: date, advertiser, channel, and/or program. If omitted, the response is a single aggregated total. Combine multiple dimensions with a comma, e.g. groupBy=date,channel.
currency Optional. A 3-letter currency code to convert monetary fields into. Defaults to your account's currency.
advertiserId, channelId, programId, market Optional. Filter the aggregation to a specific advertiser, channel, program, and/or market.
fromDate, toDate Optional. Filter by date — this endpoint aggregates by date, not created.

Response fields

Field Description
advertiserId/advertiserName, channelId/channelName, programId/programName, affiliateId, market Only included for the dimensions you grouped by.
date/week/month/quarter/year Only included when you grouped by date.
clicks, impressions Click and impression counts.
transactions, transactionsInclClick Transaction counts, with and without click-only conversions included.
sales Total sales value.
commission Total commission.
deniedTransactions, deniedCommission Denied transaction count and commission.
totalTransactions Total transaction count including denied.
uniqueAdvertisersWithClicks/uniqueChannelsWithClicks/uniqueMarketsWithClicks Distinct counts across clicks in this group.
uniqueAdvertisersWithTransactions/uniqueChannelsWithTransactions/uniqueMarketsWithTransactions Distinct counts across transactions in this group.
uniqueMarketsWithClicksGroup The specific market codes seen, as a string.
epc Earnings per click.
cr Conversion rate.
aov Average order value.
currency Currency of the monetary fields.

This endpoint returns pre-aggregated statistics rather than individual records, so its fields aren't filterable in the same field-by-field way as other endpoints — use the request parameters above instead.

Tracking errors

GET /trackingErrors

Accessible for

All account types, scoped to your own advertiser(s)/channel(s) as usual — there's no behavioral difference between account types beyond that.

Request parameters

Parameter Description
fromDate, toDate Optional. Filter by date.

Response fields

Field Filterable Description
id Yes Tracking error ID.
date Yes When the error occurred.
channelId, advertiserId Yes The channel and advertiser involved.
redirectUrl Yes The URL the click attempted to redirect to, if any.
clickUrl Yes The tracking URL that was called.
message Yes Description of what went wrong.
referrer Yes HTTP referrer.

Transactions

GET /transactions

Accessible for

All account types. Advertiser and Agency accounts additionally receive brokerage-fee fields (brokerageMarkup, brokerageFee, deniedBrokerageFee, originalBrokerageFee) in the response; these are not included for Affiliate accounts.

Request parameters

Parameter Description
includeClicks Optional. Set to 1 to include an array of the clicks that preceded each transaction.
includeProducts Optional. Set to 1 to include the line-item products for each transaction.
includeTransactionListStatus Optional. Set to 1 to include the status of the payout batch each transaction belongs to.
orderBy Optional. Sort order for the results, e.g. created DESC.
fromDate, toDate Optional. Filter by creation date.
updatedFromDate, updatedToDate Optional. Filter by the date the transaction was last updated.

Response fields

Field Filterable Description
id Yes Transaction ID.
date, created, updated Yes Transaction date, creation timestamp, and last-updated timestamp.
channelId, advertiserId Yes The channel and advertiser involved.
channelName, advertiserName Their display names.
programId Yes The commission program applied.
programName Yes The commission program's name.
eventId Yes The underlying tracking event this transaction was created from.
commissionType Yes variable or fixed.
commissionPercent, commissionAmount Yes The rate applied, matching commissionType.
eventValue, currency Yes Order value and currency.
conversionEventId Yes The conversion event type, e.g. Purchase.
status Yes new, approved, denied, delayed, or paidOut.
eventOrderId Yes The advertiser's own order ID.
payoutId Yes The payout this transaction was included in, once paid.
transactionListId Yes The payout batch this transaction belongs to.
transactionListStatus Only with includeTransactionListStatus. Status of that payout batch.
clickRef, clickId Yes References to the originating click.
clickDate/clicks Only with includeClicks. The click(s) that preceded this transaction.
products Only with includeProducts. Line items — each with id, product_id, title, category, brand, quantity, price, total.
denyReason, denyReasonCategory, denyDate Yes Set when the transaction was denied.
market Yes Market code.
discountCodes Yes Discount code(s) used in the order, if tracked.
affiliateGclid, wctid Yes Google Ads / other ad-platform click IDs, if present.
untrackedSale Yes Whether this was manually added as an untracked sale.
clickCount Yes Number of clicks associated with this transaction.
individualCommissionId Yes Set when a channel-specific commission override was applied.
commissionSource Yes Where the commission came from, e.g. program, individualCommission.
delayedUntil Yes Date the transaction is held until, if delayed.
subids Yes Your own sub-ID parameters, if sent.
source Yes Origin of the transaction.
commission, commissionText Computed commission amount and its human-readable form.
originalCommission Commission before any adjustments.
currencies Object keyed by currency code, each with rate, commission, eventValue, originalCommission — a currency-converted view of the same transaction.

Updating a transaction's status

PATCH /transactions/status/{id}

Accessible for

Advertiser only.

Updates the status of a transaction. The response contains the updated transaction, in the same shape as above.

Request body

{ "status": "approved" }

You can also look a transaction up by your own order ID instead of its Addrevenue transaction ID — omit {id} from the path and send { "orderId": "your-order-id", "status": "approved" }.

Accepted status values: new, approved, denied, delayed. A transaction can no longer be changed once it has been included in a payout batch that has left the pending state.

Change log

2026-09-02: Expanded the API reference to document all available endpoints and their full request and response parameters.

2026-08-04: Fixed GET /products so accounts other than the advertiser itself no longer see products from advertisers whose market isn't active.

2026-07-28: Added the includeProducts request parameter to GET /transactions.

2026-07-16: Fixed GET /relations occasionally including channel-exclusive programs that didn't apply to the given channel.

2026-06-25: Fixed the accuracy of detectedCurrency/detectedLanguage on GET /productfeeds. GET /products now includes min_handling_time/max_handling_time when the advertiser has configured a fallback value.

2026-06-02: Fixed the links.prev pagination link, which could incorrectly appear on the first page of results.

2026-05-15: Added detectedCurrency and detectedLanguage fields to the GET /productfeeds response.

2026-04-28: Added the GET /brokenLinks endpoint.

2026-04-07: Added the landingPages field to the GET /advertisers response (available with expand=1).

2026-03-06: Added the conversionEventId field to the GET /programs response.

2026-01-25: Fixed the updatedFromDate/updatedToDate request parameters, which were previously not applied due to an internal naming mismatch.

2024-09-18: Changed pagination parameter names from productsPerPage and selectedPage to limit and offset.

2022-05-12: Added new /payouts endpoint for affiliates to retrieve all payouts.

2022-04-28: Added new /productfeeds endpoint for affiliates to retrieve a list of all product feed urls.

2022-04-27: Added new /relations endpoint to list your relations between channels and advertisers.

2022-04-22: Added the possibility to group /stats on multiple dimensions.

2022-04-21: Added channelId as a request parameter to /advertisers endpoint, to limit the response to advertisers with relations to the given channel.

2022-04-20: Added the /stats endpoint to get aggregated statistics.

2022-04-19: Added the possibility to send limit the responses of certain endpoints such as transactions and event by using query string parameters fromDate and/or toDate.

2022-03-22: When sending channelId to /campaigns endpoint, now only campaigns for advertisers with an approved relation to the channel will be shown.

2022-03-19: Added includeClicks request parameter to /transactions endpoint, to include all preceeding clicks in an array.

2022-03-18: Added trackingLink in the response from the /campaigns endpoint, if parameter channelId is provided.

2022-03-18: Added advertiserName in the response from the /campaigns endpoint.

2022-03-18: Added advertiserName in the response from the /banners endpoint.