FurniOpsDocs
API referenceSources

Create a source

Adds a vendor connection to the organisation's catalogue. The kind is fixed; config must fit it (a feed needs a URL and a platform, an API source a connector). Set credentials separately with PUT /v1/sources/{id}/credentials.

POST/v1/sources

Adds a vendor connection to the organisation's catalogue. The kind is fixed; config must fit it (a feed needs a URL and a platform, an API source a connector). Set credentials separately with PUT /v1/sources/{id}/credentials.

Authorization

apiKey
AuthorizationBearer <token>

An API key (fo_live_… / fo_test_…) as a bearer token

In: header

Header Parameters

FurniOps-Version?string

Dated API version; pinned per organisation on first use and overridable per request

Value in

  • "2026-10-01"
  • "2026-10-04"
FurniOps-Mode?string

The data the request acts on: test is the organisation's sandbox. An OAuth token picks it (live by default); an API key's mode is fixed, and naming the other one is refused

Value in

  • "live"
  • "test"
Idempotency-Key*string

Unique key for this operation, reused on retries (24 h)

Length1 <= length <= 257
FurniOps-Dry-Run?string

Preview the write and change nothing: true answers the would-be response, explain a Preview (application/vnd.furniops.preview+json)

Value in

  • "true"
  • "explain"

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Fields for a new source

Response Body

application/json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

application/problem+json

curl -X POST "https://example.com/v1/sources" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "kind": "api",    "licence_basis": "vendor_agreement"  }'
{  "object": "source",  "id": "string",  "catalogue": "string",  "name": "string",  "kind": "api",  "connector": "string",  "config": {    "url": "http://example.com",    "platform": "shopify",    "format": "csv",    "currency": "usd",    "decimal": "dot",    "role": "supplier",    "warehouse": "string",    "price_code": "string",    "inbound": {      "senders": [        "string"      ]    }  },  "schedule": {    "interval_minutes": 15,    "stock_interval_minutes": 15,    "adaptive": true  },  "status": "active",  "status_reason": {    "code": "fetch_refused",    "message": "string"  },  "licence_basis": "vendor_agreement",  "first_party": true,  "has_credentials": true,  "freshness": {    "catalogue": null,    "stock": null  },  "inbound_address": "[email protected]",  "version": 1,  "created_at": "2019-08-24T14:15:22Z",  "updated_at": "2019-08-24T14:15:22Z"}