FunnelFlux Pro API DocumentsFunnelFlux Pro API Documents
  • Changelog
  • Status
  • Dashboard
  • Documentation
  • Authentication
  • Domains
  • Assets
  • Reporting
Information
Authentication
    Access token validationpostPassword-based login (legacy)post
Integrations
    List integrationsgetGet integrationgetDelete integrationdeleteRename integrationpatchStart integration OAuthpostComplete integration OAuthgetList integration capabilitiesgetReauthorize integrationpostList integration ad accountsgetList integration conversion goalsgetTrigger integration syncpostList integration sync job statusget
Schemas
FunnelFlux Authentication API
FunnelFlux Authentication API

Integrations

Download schema

Configured ad platform integrations for the authenticated workspace.


List integrations

GET
https://api.funnelflux.pro/v1
/integrations

Lists non-deleted integration configs for the authenticated workspace. Optional type and status filters are forwarded to the integrations service.

List integrations › query Parameters

type
​string
status
​string

List integrations › Responses

Integration list.

​IntegrationConfig[]
GET/integrations
curl --request GET \ --url https://api.funnelflux.pro/v1/integrations
Example Responses
{ "integrations": [ { "owner": "owner", "id": "id", "name": "name", "type": "type", "status": "status", "config": {}, "provider": {}, "credentials": {}, "connectionState": "active", "tokenExpiresAt": "2024-08-25T15:00:00Z", "lastValidatedAt": "2024-08-25T15:00:00Z", "lastError": "lastError", "createdAt": "createdAt", "updatedAt": "updatedAt" } ] }
json
application/json

Get integration

GET
https://api.funnelflux.pro/v1
/integrations/{id}

Get integration › path Parameters

id
​string · required

Get integration › Responses

Integration config with masked credentials.

IntegrationConfig
owner
​string
id
​string
name
​string
type
​string
status
​string
​object
​object

Provider-owned connection profile metadata such as Google principal labels.

​object

Masked credentials in public HTTP responses.

connectionState
​string · enum
Enum values:
active
expired
auth_error
disconnected
tokenExpiresAt
​string · date-time
lastValidatedAt
​string · date-time
lastError
​string
createdAt
​string
updatedAt
​string
GET/integrations/{id}
curl --request GET \ --url https://api.funnelflux.pro/v1/integrations/:id
Example Responses
{ "owner": "owner", "id": "id", "name": "name", "type": "type", "status": "status", "config": {}, "provider": {}, "credentials": {}, "connectionState": "active", "tokenExpiresAt": "2024-08-25T15:00:00Z", "lastValidatedAt": "2024-08-25T15:00:00Z", "lastError": "lastError", "createdAt": "createdAt", "updatedAt": "updatedAt" }
json
application/json

Delete integration

DELETE
https://api.funnelflux.pro/v1
/integrations/{id}

Delete integration › path Parameters

id
​string · required

Delete integration › Responses

Integration marked deleted.

No data returned
DELETE/integrations/{id}
curl --request DELETE \ --url https://api.funnelflux.pro/v1/integrations/:id
Example Responses
No example specified for this content type

Rename integration

PATCH
https://api.funnelflux.pro/v1
/integrations/{id}/name

Rename integration › path Parameters

id
​string · required

Rename integration › Request Body

name
​string · required

Rename integration › Responses

Renamed integration.

IntegrationConfig
owner
​string
id
​string
name
​string
type
​string
status
​string
​object
​object

Provider-owned connection profile metadata such as Google principal labels.

​object

Masked credentials in public HTTP responses.

connectionState
​string · enum
Enum values:
active
expired
auth_error
disconnected
tokenExpiresAt
​string · date-time
lastValidatedAt
​string · date-time
lastError
​string
createdAt
​string
updatedAt
​string
PATCH/integrations/{id}/name
curl --request PATCH \ --url https://api.funnelflux.pro/v1/integrations/:id/name \ --header 'Content-Type: application/json' \ --data '{ "name": "name" }'
Example Request Body
{ "name": "name" }
json
Example Responses
{ "owner": "owner", "id": "id", "name": "name", "type": "type", "status": "status", "config": {}, "provider": {}, "credentials": {}, "connectionState": "active", "tokenExpiresAt": "2024-08-25T15:00:00Z", "lastValidatedAt": "2024-08-25T15:00:00Z", "lastError": "lastError", "createdAt": "createdAt", "updatedAt": "updatedAt" }
json
application/json

Start integration OAuth

POST
https://api.funnelflux.pro/v1
/integrations/oauth/start

Returns a platform authorize URL for a new OAuth connection or reauthorization when integrationId is supplied.

Start integration OAuth › Request Body

platform
​string · required
integrationId
​string

Start integration OAuth › Responses

OAuth authorization URL.

authorizeUrl
​string
POST/integrations/oauth/start
curl --request POST \ --url https://api.funnelflux.pro/v1/integrations/oauth/start \ --header 'Content-Type: application/json' \ --data ' { "platform": "platform", "integrationId": "integrationId" } '
Example Request Body
{ "platform": "platform", "integrationId": "integrationId" }
json
Example Responses
{ "authorizeUrl": "authorizeUrl" }
json
application/json

Complete integration OAuth

GET
https://api.funnelflux.pro/v1
/integrations/oauth/callback

Unauthenticated platform redirect endpoint. The integrations service validates the signed state, exchanges the code, stores encrypted tokens and connection metadata, and redirects to the configured UI return URL.

Complete integration OAuth › query Parameters

code
​string · required
state
​string · required

Complete integration OAuth › Responses

Redirects to the UI return URL with status, platform, and integrationId query parameters.

No data returned
GET/integrations/oauth/callback
curl --request GET \ --url 'https://api.funnelflux.pro/v1/integrations/oauth/callback?code=%3Cstring%3E&state=%3Cstring%3E'
Example Responses
No example specified for this content type

List integration capabilities

GET
https://api.funnelflux.pro/v1
/integrations/capabilities

Returns per-platform capability descriptors used by the traffic-source integrations tab.

List integration capabilities › Responses

Capability descriptors by platform.

​object
GET/integrations/capabilities
curl --request GET \ --url https://api.funnelflux.pro/v1/integrations/capabilities
Example Responses
{ "capabilities": { "key": { "platform": "platform", "enabled": true, "disabledReason": "disabledReason", "authMethod": "oauth", "capi": { "forced": true, "supportsAdjust": true, "supportsRetract": true, "requiresDelay": true, "delayHours": 0 }, "costSync": { "available": true, "levels": [ "string" ], "lockedLevels": [ "string" ], "upsell": "upsell", "dailyReconcile": { "available": true, "finalizationDelayMinutes": 0 } }, "dictionarySync": { "available": true, "levels": [ "string" ], "fields": [ { "level": "level", "label": "label", "fieldName": "fieldName", "urlValue": "urlValue", "description": "description" } ] } } } }
json
application/json

Reauthorize integration

POST
https://api.funnelflux.pro/v1
/integrations/{id}/reauth

Reauthorize integration › path Parameters

id
​string · required

Reauthorize integration › Responses

Fresh OAuth authorization URL.

authorizeUrl
​string
POST/integrations/{id}/reauth
curl --request POST \ --url https://api.funnelflux.pro/v1/integrations/:id/reauth
Example Responses
{ "authorizeUrl": "authorizeUrl" }
json
application/json

List integration ad accounts

GET
https://api.funnelflux.pro/v1
/integrations/{id}/ad-accounts

Lists platform ad accounts using valid credentials. Results are live provider reads and are not cached on the integration row.

List integration ad accounts › path Parameters

id
​string · required

List integration ad accounts › Responses

Ad accounts visible to the connected business manager.

​IntegrationAdAccount[]
GET/integrations/{id}/ad-accounts
curl --request GET \ --url https://api.funnelflux.pro/v1/integrations/:id/ad-accounts
Example Responses
{ "adAccounts": [ { "id": "id", "name": "name", "currency": "currency", "status": "status" } ] }
json
application/json

List integration conversion goals

GET
https://api.funnelflux.pro/v1
/integrations/{id}/ad-accounts/{adAccountId}/conversion-goals

Lists platform conversion/event destinations for the selected ad account. Google Ads returns conversion action resource names and metadata.

List integration conversion goals › path Parameters

id
​string · required
adAccountId
​string · required

List integration conversion goals › Responses

Conversion goals visible to the connected ad account.

​IntegrationConversionGoal[]
GET/integrations/{id}/ad-accounts/{adAccountId}/conversion-goals
curl --request GET \ --url https://api.funnelflux.pro/v1/integrations/:id/ad-accounts/:adAccountId/conversion-goals
Example Responses
{ "conversionGoals": [ { "id": "id", "resourceName": "resourceName", "name": "name", "type": "type", "status": "status", "ownerCustomer": "ownerCustomer", "primaryForGoal": true, "meta": {} } ] }
json
application/json

Trigger integration sync

POST
https://api.funnelflux.pro/v1
/integrations/sync

Reconciles the traffic source's current integration sync settings, then marks the selected recurring sync job due for immediate processing.

Trigger integration sync › Request Body

IntegrationSyncTriggerRequest
trafficSourceId
​string · required
jobType
​string · enum · required
Enum values:
dictionary_sync
cost_sync
cost_sync_daily
scope
​string · enum
Enum values:
active
Default: active

Trigger integration sync › Responses

Sync job queued.

IntegrationSyncTriggerResult
status
​string · enum
Enum values:
queued
trafficSourceId
​string
jobType
​string · enum
Enum values:
dictionary_sync
cost_sync
cost_sync_daily
scope
​string · enum
Enum values:
active
integrationId
​string
queuedAt
​string · date-time
POST/integrations/sync
curl --request POST \ --url https://api.funnelflux.pro/v1/integrations/sync \ --header 'Content-Type: application/json' \ --data ' { "trafficSourceId": "trafficSourceId", "jobType": "dictionary_sync", "scope": "active" } '
Example Request Body
{ "trafficSourceId": "trafficSourceId", "jobType": "dictionary_sync", "scope": "active" }
json
Example Responses
{ "status": "queued", "trafficSourceId": "trafficSourceId", "jobType": "dictionary_sync", "scope": "active", "integrationId": "integrationId", "queuedAt": "2024-08-25T15:00:00Z" }
json
application/json

List integration sync job status

GET
https://api.funnelflux.pro/v1
/integrations/sync/status

List integration sync job status › query Parameters

trafficSourceId
​string · required
jobType
​string · enum
Enum values:
dictionary_sync
cost_sync
cost_sync_daily

List integration sync job status › Responses

Current recurring sync job status for the traffic source.

IntegrationSyncJobStatusResult
​IntegrationSyncJobStatus[]
GET/integrations/sync/status
curl --request GET \ --url 'https://api.funnelflux.pro/v1/integrations/sync/status?trafficSourceId=%3Cstring%3E'
Example Responses
{ "jobs": [ { "trafficSourceId": "trafficSourceId", "jobType": "dictionary_sync", "integrationId": "integrationId", "enabled": true, "status": "status", "lastStatus": "lastStatus", "lastError": "lastError", "lastCount": 0, "lastRunAt": "2024-08-25T15:00:00Z", "nextRunAt": "2024-08-25T15:00:00Z", "intervalSeconds": 0, "running": true, "leaseUntil": "2024-08-25T15:00:00Z", "updatedAt": "2024-08-25T15:00:00Z" } ] }
json
application/json

Authentication