FurniOpsDocs
API referenceMappings

Confirm a mapping

Confirms the mapping, as proposed or with the columns given, and applies it: a file waiting in needs_mapping resumes, or the source's current snapshot is replayed. Confirming again with new columns changes it the same way. Columns that are not among the headers, a field mapped twice, or settings that do not fit the field answer 422; a source with an active run, or a paused or disabled one, answers 409.

POST/v1/mappings/{id}/confirm

Confirms the mapping, as proposed or with the columns given, and applies it: a file waiting in needs_mapping resumes, or the source's current snapshot is replayed. Confirming again with new columns changes it the same way. Columns that are not among the headers, a field mapped twice, or settings that do not fit the field answer 422; a source with an active run, or a paused or disabled one, answers 409.

Authorization

apiKey
AuthorizationBearer <token>

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

In: header

Path Parameters

id*string

Mapping profile (how one header set of a source maps to canonical fields) ID

Match^map_[0-9A-Za-z]{22}$

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.

The mapping a person confirms

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

application/problem+json

curl -X POST "https://example.com/v1/mappings/string/confirm" \  -H "Idempotency-Key: string" \  -H "Content-Type: application/json" \  -d '{}'
{  "object": "mapping_confirmation",  "mapping": {    "object": "mapping",    "id": "string",    "source": "string",    "status": "proposed",    "headers": [      "string"    ],    "samples": [      [        "string"      ]    ],    "columns": [      {        "column": "string",        "prefix": true,        "field": "group",        "settings": {},        "tier": "built_in"      }    ],    "unmapped": [      {        "column": "string",        "reason": "string"      }    ],    "confirmed_at": "2019-08-24T14:15:22Z",    "created_at": "2019-08-24T14:15:22Z",    "updated_at": "2019-08-24T14:15:22Z"  },  "run": {    "object": "run",    "id": "string",    "source": "string",    "trigger": "schedule",    "stream": "catalogue",    "status": "queued",    "stage": "fetch",    "served_by": null,    "stats": {      "property1": 0,      "property2": 0    },    "error": {      "code": "fetch_refused",      "message": "string"    },    "waiting": {      "reason": "rate_limited",      "until": "2019-08-24T14:15:22Z",      "attempt": 1,      "detail": "string"    },    "problems": [      {        "sheet": "string",        "line": 1,        "column": "string",        "field": "string",        "problem": "missing",        "detail": "string"      }    ],    "created_at": "2019-08-24T14:15:22Z",    "started_at": "2019-08-24T14:15:22Z",    "finished_at": "2019-08-24T14:15:22Z"  }}