Skip to content
API referenceLinks

API reference · Partner API

Links

Tracking links: list them with their results, or create new ones.

GET/v1/partner-api/links

Your tracking links, newest first, with all-time clicks, registrations and qualified users.

AuthPartner API key with scope links:read

Query parameters

limitinteger1–100default 50

Items per page.

cursorstring≤ 200 chars

nextCursor from the previous page.

programIdstringuuid

Only this program.

statusstring

One of active inactive

Returns · 200

itemsarray of objectsrequired
Child attributes
idstringrequireduuid
codestringrequired

Also the affiliate code people can type.

namestringrequirednullable
statusstringrequired

One of active inactive

programIdstringrequireduuid
programNamestringrequired
appNamestringrequired
campaignIdstringrequireduuidnullable
destinationUrlstringrequirednullable
subIdsmap of stringsrequired
utmmap of stringsrequired
expiresAtstringrequireddate-timenullable
createdAtstringrequireddate-time
urlstringrequireduri

The tracking link to share.

statsobjectrequired

All time, in the key’s environment.

Child attributes
clicksintegerrequired
registrationsintegerrequired
qualifiedintegerrequired
hasMorebooleanrequired
nextCursorstringrequirednullable

Pass as cursor for the next page; null on the last one.

Errors

400validation_error

The request does not match the schema. details says which fields failed and why.

400invalid_cursor

cursor is not one this API handed out.

401invalid_api_key

No key was sent, or the key is unknown, expired or revoked.

403partner_suspended

API access is suspended for this partner account.

403insufficient_scope

The key lacks the scope this endpoint needs.

429rate_limited

Too many requests with this key in the last minute. Wait Retry-After seconds.

Request
curl "https://api.flowgroup.se/v1/partner-api/links" \
  -H "authorization: Bearer $FA_API_KEY"
200 OK
{
  "items": [
    {
      "id": "7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
      "code": "k7qxa2mp",
      "name": "Newsletter November",
      "status": "active",
      "programId": "0c9e6f3a-1b2d-4c5e-8f7a-9b0c1d2e3f4a",
      "programName": "Nordshop Partner Program",
      "appName": "Nordshop",
      "campaignId": null,
      "destinationUrl": null,
      "subIds": {
        "placement": "newsletter"
      },
      "utm": {},
      "expiresAt": null,
      "createdAt": "2026-11-01T08:00:00.000Z",
      "url": "https://go.affiliate.yflow.io/a/k7qxa2mp",
      "stats": {
        "clicks": 412,
        "registrations": 37,
        "qualified": 21
      }
    }
  ],
  "hasMore": true,
  "nextCursor": "nextCursor"
}
POST/v1/partner-api/links

A new tracking link in a program you are an active member of. Its code is generated, and doubles as an affiliate code.

AuthPartner API key with scope links:write

Request body

programIdstringrequireduuid

A program you are an active member of.

campaignIdstringuuid

An active campaign of the program; its default campaign when omitted.

namestring≤ 120 chars

Your own name for the link.

destinationUrlstringuri≤ 2000 chars

Where the link sends desktop visitors. Must be on the app’s own domain.

subIdsmap of strings

Up to 10 keys of your own, reported back on conversions, e.g. { "placement": "bio" }.

utmmap of strings

UTM parameters added to the destination, e.g. { "source": "newsletter" }.

Returns · 201

idstringrequireduuid
codestringrequired

Also the affiliate code people can type.

namestringrequirednullable
statusstringrequired

One of active inactive

programIdstringrequireduuid
programNamestringrequired
appNamestringrequired
campaignIdstringrequireduuidnullable
destinationUrlstringrequirednullable
subIdsmap of stringsrequired
utmmap of stringsrequired
expiresAtstringrequireddate-timenullable
createdAtstringrequireddate-time
urlstringrequireduri

The tracking link to share.

bioNotestringrequirednullable

Errors

400validation_error

The request does not match the schema. details says which fields failed and why.

400destination_not_allowed

destinationUrl is not on the app’s own domain.

401invalid_api_key

No key was sent, or the key is unknown, expired or revoked.

403partner_suspended

API access is suspended for this partner account.

403insufficient_scope

The key lacks the scope this endpoint needs.

403membership_required

You are not an active member of the program.

404not_found

campaignId is not an active campaign of the program.

429rate_limited

Too many requests with this key in the last minute. Wait Retry-After seconds.

Request
curl -X POST "https://api.flowgroup.se/v1/partner-api/links" \
  -H "authorization: Bearer $FA_API_KEY" \
  -H "content-type: application/json" \
  -d '{
  "programId": "0c9e6f3a-1b2d-4c5e-8f7a-9b0c1d2e3f4a",
  "name": "Newsletter November",
  "subIds": {
    "placement": "newsletter"
  }
}'
201 Created
{
  "id": "3f1c8a52-6c1e-4b8e-9d0a-2b7f0c4e5a91",
  "code": "k7qxa2mp",
  "name": "name",
  "status": "active",
  "programId": "3f1c8a52-6c1e-4b8e-9d0a-2b7f0c4e5a91",
  "programName": "programName",
  "appName": "appName",
  "campaignId": "3f1c8a52-6c1e-4b8e-9d0a-2b7f0c4e5a91",
  "destinationUrl": "https://example.com",
  "subIds": {
    "key": "value"
  },
  "utm": {
    "key": "value"
  },
  "expiresAt": "2026-11-09T12:00:00.000Z",
  "createdAt": "2026-11-09T12:00:00.000Z",
  "url": "https://example.com",
  "bioNote": "bioNote"
}
GET/v1/partner-api/links/{id}

AuthPartner API key with scope links:read

Path parameters

idstringrequireduuid

The link’s id.

Returns · 200

idstringrequireduuid
codestringrequired

Also the affiliate code people can type.

namestringrequirednullable
statusstringrequired

One of active inactive

programIdstringrequireduuid
programNamestringrequired
appNamestringrequired
campaignIdstringrequireduuidnullable
destinationUrlstringrequirednullable
subIdsmap of stringsrequired
utmmap of stringsrequired
expiresAtstringrequireddate-timenullable
createdAtstringrequireddate-time
urlstringrequireduri

The tracking link to share.

statsobjectrequired

All time, in the key’s environment.

Child attributes
clicksintegerrequired
registrationsintegerrequired
qualifiedintegerrequired

Errors

400validation_error

The request does not match the schema. details says which fields failed and why.

401invalid_api_key

No key was sent, or the key is unknown, expired or revoked.

403partner_suspended

API access is suspended for this partner account.

403insufficient_scope

The key lacks the scope this endpoint needs.

404not_found

You have no link with this id.

429rate_limited

Too many requests with this key in the last minute. Wait Retry-After seconds.

Request
curl "https://api.flowgroup.se/v1/partner-api/links/3f1c8a52-6c1e-4b8e-9d0a-2b7f0c4e5a91" \
  -H "authorization: Bearer $FA_API_KEY"
200 OK
{
  "id": "7c8d9e0f-1a2b-4c3d-8e4f-5a6b7c8d9e0f",
  "code": "k7qxa2mp",
  "name": "Newsletter November",
  "status": "active",
  "programId": "0c9e6f3a-1b2d-4c5e-8f7a-9b0c1d2e3f4a",
  "programName": "Nordshop Partner Program",
  "appName": "Nordshop",
  "campaignId": null,
  "destinationUrl": null,
  "subIds": {
    "placement": "newsletter"
  },
  "utm": {},
  "expiresAt": null,
  "createdAt": "2026-11-01T08:00:00.000Z",
  "url": "https://go.affiliate.yflow.io/a/k7qxa2mp",
  "stats": {
    "clicks": 412,
    "registrations": 37,
    "qualified": 21
  }
}