Claim a brand
Asks FurniOps to let the organisation speak for a brand: a listed profile (profile), whose catalogue then moves to the organisation without copying anything, or its own profile, which then becomes verified. FurniOps gathers the evidence on the profile's website domain at once: a domain the organisation verified by DNS (strongest) and members whose verified address is at the domain. An invitation from FurniOps and a trademark registration add to it. Staff decide every claim, after re-checking the evidence. One claim may be pending at a time (409 otherwise), and a listed profile can be claimed only while the organisation's own catalogue is empty (409). Owners and admins only; never an API key or an AI agent.
- Scopes
brand:write - Rate classwrite
- Idempotency-Key required
/v1/brand/claimsAsks FurniOps to let the organisation speak for a brand: a listed profile (profile), whose catalogue then moves to the organisation without copying anything, or its own profile, which then becomes verified. FurniOps gathers the evidence on the profile's website domain at once: a domain the organisation verified by DNS (strongest) and members whose verified address is at the domain. An invitation from FurniOps and a trademark registration add to it. Staff decide every claim, after re-checking the evidence. One claim may be pending at a time (409 otherwise), and a listed profile can be claimed only while the organisation's own catalogue is empty (409). Owners and admins only; never an API key or an AI agent.
Authorization
apiKey An API key (fo_live_… / fo_test_…) as a bearer token
In: header
Header Parameters
Dated API version; pinned per organisation on first use and overridable per request
Value in
- "2026-10-01"
- "2026-10-04"
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"
Unique key for this operation, reused on retries (24 h)
1 <= length <= 257Preview 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.
A claim. Evidence on the brand's domain (a DNS record, members' verified addresses) is gathered when it is filed
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
curl -X POST "https://example.com/v1/brand/claims" \ -H "Idempotency-Key: string" \ -H "Content-Type: application/json" \ -d '{}'{ "object": "vendor_claim", "id": "string", "kind": "listed", "profile": { "object": "vendor_profile", "id": "string", "name": "string", "slug": "string", "brands": [ "string" ], "website_domain": "string", "status": "unclaimed", "verified": true, "verified_at": "2019-08-24T14:15:22Z", "catalogue": "string", "created_at": "2019-08-24T14:15:22Z" }, "status": "pending", "evidence": [ { "kind": "dns", "strength": "strong", "domain": "string", "org_domain": "string", "verified_at": "2019-08-24T14:15:22Z", "last_checked_at": "2019-08-24T14:15:22Z", "captured_at": "2019-08-24T14:15:22Z" } ], "strength": "strong", "note": "string", "message": "string", "filed_by": "string", "created_at": "2019-08-24T14:15:22Z", "checked_at": "2019-08-24T14:15:22Z", "decided_at": "2019-08-24T14:15:22Z"}Gather a claim's evidence again POST
Re-reads the evidence of a pending claim now, checking the domain's DNS record again: use it after publishing the record or adding a member at the domain. A claim that is not pending answers 409.
Read a claim GET
One of the organisation's claims, with its evidence and, once decided, the outcome.