Awin
Awin programmes in the same pipeline as your other affiliate sources
Awin API searches split two ways: single-network publishers, and teams that need Awin plus everyone else. Feedico targets the second: connect Awin with your approvals, then read firm and coupon lists through the same Feedico endpoints you use for CJ or Impact. Use the affiliate network API page for the multi-logo pitch, or deal feed API when merchandising language leads the sale.
Also unify
Who is this for?
Teams that monetize through Awin and need the same engineering pattern as other affiliate sources.
How data flows
What you get with Feedico
Aligned with CJ/Impact code paths
Filters, pagination, and error handling stay consistent - no Awin-only router fork.
Schema insulation
When Awin export shapes shift, mapping updates concentrate in Feedico - not every microservice.
Editorial-friendly JSON
Merchandising can ask for “deals JSON” without naming Awin REST verbs - same contract as other sources.
Multi-network roadmap
Add another network in the dashboard instead of greenfielding a new ingestion stack.
Connecting Awin: credentials, endpoints, and what syncs
Authentication: Bearer token (Awin API token) against api.awin.com. Secrets are encrypted at rest and never returned by the API.
What you enter in the dashboard
- Publisher ID
- Your Awin publisher account ID.
- API token
- Generated under Awin API credentials; stored encrypted.
Awin APIs Feedico calls
- GET /publishers/{publisherId}/programmes?relationship=joined
- Programmes you have joined.
- POST /publisher/{publisherId}/promotions
- Vouchers and promotions for joined programmes.
| Awin object | Feedico row |
|---|---|
| Joined programme | Firm row, provider awin_affiliate |
| Promotion with voucher code | Coupon row with code and validity window |
| Promotion without a code | Offer row with code: null (title-only deal) |
- Awin vouchers and offers share one promotions endpoint; Feedico splits them by the presence of a code.
About Awin
Awin is a global affiliate marketing network linking advertisers and publishers, with roots in the European market (headquartered in Berlin) and offices worldwide. It is part of the Axel Springer corporate group alongside institutional partners - see awin.com for official programme detail, imprint, and publisher resources. www.awin.com/. Awin is independent third-party software; trademarks belong to their owner. We summarise public positioning only - confirm policies and programme rules on the vendor site.
Hybrid catalogue note
Feedico may combine unified integration tables with snapshot-oriented programme rows depending on source - your client still sees consistent list contracts. See Documentation for availableProviders behaviour when filtering. Official policies live on awin.com.
How it works
- 1
Connect Awin
Enter your Publisher ID and API token in the dashboard - only for programmes you are approved on.
- 2
Sync & normalize
Feedico calls GET /publishers/{publisherId}/programmes?relationship=joined and POST /publisher/{publisherId}/promotions, then maps joined programme, promotion with voucher code and promotion without a code into normalized firm and coupon rows.
- 3
Call one API
Same list endpoints, pagination, and POST filters as your other connected providers.
- 4
Ship product
Websites, apps, extensions, or pipelines - one consumer path for every network.
Example row shape
Illustrative JSON - your integration uses customer OpenAPI field names. provider identifies the source (awin_affiliate).
{
"provider": "awin_affiliate",
"networkName": "Example Retailer DE",
"merchant": "Example Retailer",
"title": "15% off your order",
"code": "SAVE15",
"offerUrl": "https://…"
}Get Awin coupons with code
Once your Awin account is connected, every coupon comes from one endpoint: POST /api/v1/me/coupons with "provider": "awin_affiliate". Leave providerout to get every connected network in the same format. Create a token under Account in the dashboard; each successful call counts toward your plan's monthly request quota.
curl -sS -X POST "https://api.feedico.io/api/v1/me/coupons" \
-H "Authorization: Bearer $FEEDICO_TOKEN" \
-H "Content-Type: application/json" \
-d '{"provider": "awin_affiliate", "page": 1, "pageSize": 50}'// Node 18+ (built-in fetch): every active Awin coupon, page by page.
const token = process.env.FEEDICO_TOKEN;
async function fetchCoupons() {
const all = [];
for (let page = 1; ; page++) {
const res = await fetch("https://api.feedico.io/api/v1/me/coupons", {
method: "POST",
headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json" },
body: JSON.stringify({ provider: "awin_affiliate", page, pageSize: 200 }),
});
if (res.status === 429) throw new Error("Monthly API quota reached");
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
all.push(...data.coupons);
if (page * data.pageSize >= data.recordCount) break;
}
return all;
}
fetchCoupons().then((coupons) => {
for (const c of coupons.filter((c) => c.code)) {
console.log(c.networkName, c.code, c.title, c.endsAt);
}
});# Python 3 + requests: every active Awin coupon, page by page.
import os
import requests
URL = "https://api.feedico.io/api/v1/me/coupons"
HEADERS = {"Authorization": f"Bearer {os.environ['FEEDICO_TOKEN']}"}
def fetch_coupons():
page, rows = 1, []
while True:
r = requests.post(URL, headers=HEADERS, json={"provider": "awin_affiliate", "page": page, "pageSize": 200}, timeout=30)
r.raise_for_status()
data = r.json()
rows += data["coupons"]
if page * data["pageSize"] >= data["recordCount"]:
return rows
page += 1
for c in fetch_coupons():
if c.get("code"):
print(c["networkName"], c["code"], c["title"], c["endsAt"])<?php
// PHP 7.4+ with cURL: first page of active Awin coupons.
$ch = curl_init("https://api.feedico.io/api/v1/me/coupons");
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("FEEDICO_TOKEN"),
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => json_encode(["provider" => "awin_affiliate", "page" => 1, "pageSize" => 50]),
]);
$data = json_decode(curl_exec($ch), true);
curl_close($ch);
foreach ($data["coupons"] as $c) {
if (!empty($c["code"])) {
echo "{$c["networkName"]} {$c["code"]} {$c["title"]}\n";
}
}Other filters: firmName (merchant name), q (search brand, title, or code), and includeInactive. Full schema in the API docs.
Native integration vs Feedico
| Topic | Via Feedico | One-off native client |
|---|---|---|
| Schema alongside other networks | ✅ Shared | ❌ Fork per vendor |
| Auth & secrets in your app | ✅ One Feedico token | ⚠️ Bearer token (Awin API token) against api.awin.com. |
| Awin APIs to integrate | Handled in the sync layer | 2 (GET /publishers/{publisherId}/programmes?relationship=joined; POST /publisher/{publisherId}/promotions) |
| Schema drift from vendor updates | Absorbed in mapping | ❌ Your on-call |
| When native API is still right | - | ✅ Exclusive fields / edge workflows |
Why pair Awin with a unified layer?
Awin alone needs 2 credentials and its own auth scheme (Bearer token (Awin API token) against api.awin.com). Most growth teams do not stop at one flagship programme source. When Awin is one leg of a multi-network roadmap, maintaining parallel DTOs burns velocity. Feedico lets you keep the relationships that matter while consolidating what your product consumes day to day.
Frequently asked questions
- Is Feedico the same company as Awin?
- No. Awin is an independent global affiliate network. Feedico is separate software: you connect Awin credentials we store per your account, and your product reads normalized list rows through Feedico's API.
- Do I still need Awin programme approval?
- Yes. You must stay approved for the advertisers and terms you promote. Feedico does not substitute Awin enrolment or compliance work - it delivers structured data from connections you authorize.
- Why not call Awin’s APIs directly?
- Direct Awin integration can be the right fit for a single-network product. Feedico targets teams that need Awin plus CJ, Impact, or others without parallel client codebases - same pagination, filters, and error vocabulary everywhere.
- How do hybrid catalogue rows work?
- Depending on source, Feedico may combine integration tables with snapshot-style programme metadata - your HTTP contracts stay stable. Use Documentation for availableProviders behaviour when filtering slices.
- How are quotas handled on Feedico list calls?
- Successful list requests count toward your monthly plan quota (UTC month). When limits are hit, responses document the error so you can cache, backoff, or upgrade.
Affiliate disclosure: some links on Feedico are affiliate links. We may earn a commission when you buy through them, at no extra cost to you. Publishers still need programme approval and compliant use at each affiliate network. Feedico provides the integration layer, not a substitute for network terms.