API Scripts

Get Access Token

get

Obtain an access token for API authentication

Query parameters
organisationIdstringRequired

Client ID

apiKeystringRequired

API Key

requestTypestring · enumRequired

Type of request

Possible values:
Header parameters
Accept-Versionstring · enumRequired

API version header

Possible values:
Responses
200
Access token generated successfully
application/json
get
GET /auth/access-key/publickey HTTP/1.1
Host: api.flowliving.com
Accept-Version: v1
Accept: */*
{
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}

Publish a new campaign

post

Creates and publishes a new campaign using Flow plans and listings

Authorizations
Query parameters
clientIdstringRequired

ClientId

Header parameters
Accept-Versionstring · enumRequired

API version header

Possible values:
Body
planRefstringRequired

Reference to the Flow media package/plan

Example: facebookv2
agentExternalIdstringOptional

External reference for the agent/user responsible for the listing

Example: 12585873
listingExternalIdsstring[]Required

Array of external listing IDs

Example: ["655466e38ecec61bd4639c8b"]
branchIdstringRequired

Flow external branch ID associated with the specific branch

Example: 64491ba8e9d1335b06252be4
startDatestring · date-timeOptional

Start date for the campaign (must be in the future)

Example: 2025-06-08T09:00:00Z
endDatestring · date-timeOptional

End date for the campaign (must be after startDate)

Example: 2025-06-15T09:00:00Z
budgetOverridenumberOptional

Custom budget if different from the plan default

Example: 2928
orderRefstringOptional

Optional identifier for the originating partner/platform

Example: Order-001
dryRunbooleanOptional

If true, validates the payload and returns expected results without publishing

Example: false
Responses
202
Campaign successfully queued
application/json
post
POST /campaigns/publish HTTP/1.1
Host: api.flowliving.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept-Version: v1
Content-Type: application/json
Accept: */*
Content-Length: 269

{
  "planRef": "facebookv2",
  "agentExternalId": "12585873",
  "listingExternalIds": [
    "655466e38ecec61bd4639c8b"
  ],
  "branchId": "64491ba8e9d1335b06252be4",
  "startDate": "2025-06-08T09:00:00Z",
  "endDate": "2025-06-15T09:00:00Z",
  "budgetOverride": 2928,
  "orderRef": "Order-001",
  "dryRun": false
}
{
  "campaign_tracking_ids": [
    "queue_abc123",
    "queue_def456"
  ],
  "status": "queued"
}

Get campaign status

get

Retrieves the current status of a campaign

Authorizations
Path parameters
campaign_tracking_idstringRequired

Tracking ID of the campaign

Header parameters
Accept-Versionstring · enumRequired

API version header

Possible values:
Responses
200
Campaign status retrieved successfully
application/json
get
GET /campaigns/status/{campaign_tracking_id} HTTP/1.1
Host: api.flowliving.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept-Version: v1
Accept: */*
{
  "status": "in_progress",
  "message": "Campaign creation is underway.",
  "campaign_id": "camp_872193"
}

Update campaign status

post

Updates the status of an existing campaign

Authorizations
Path parameters
campaign_tracking_idstringRequired

Tracking ID of the campaign

Header parameters
Accept-Versionstring · enumRequired

API version header

Possible values:
Body
statusstring · enumRequiredExample: pausedPossible values:
reasonstringOptionalExample: Client cancelled campaign.
Responses
200
Campaign status updated successfully
application/json
post
POST /campaigns/status/{campaign_tracking_id} HTTP/1.1
Host: api.flowliving.com
Authorization: Bearer YOUR_SECRET_TOKEN
Accept-Version: v1
Content-Type: application/json
Accept: */*
Content-Length: 57

{
  "status": "paused",
  "reason": "Client cancelled campaign."
}
{
  "status": "paused",
  "message": "Campaign successfully paused.",
  "error": "Campaign pausing unsuccessful, please contact Flow for further assistance"
}

Last updated