Skip to content
Bloomcount API
Esc
navigateopen⌘Jpreview

Create a supplier

Products reference suppliers by ID, so an integration syncing its own supplier list calls this before its first product write. Only name is required; the contact fields are for whoever places the order.

Names are unique on a tenant, so creating one that already exists returns 409 supplier_name_taken rather than a duplicate. That makes this endpoint safe to call on every sync if you treat that code as “already have it”, though holding onto the returned supplierId is cheaper.

Errors

  • 422 supplier_name_required — no name, or a blank one.
  • 409 supplier_name_taken — another supplier on the tenant already has that name.

Requires the suppliers:write scope.

POST/api/v1/suppliers
Authorization
AuthorizationBearer token (bloomcount_...) · headerrequired
Request body
requiredapplication/json
namestring
addressstring
websitestring
contactNamestring
contactEmailstring
contactPhonestring
Responses
201Created
supplierIdstringrequired
namestringrequired
contactNamestring | null
contactEmailstring | null
contactPhonestring | null
websitestring | null
addressstring | null
401Missing or invalid API key, or revoked / expired.
errorstringrequired
403Authenticated, but the key lacks the required scope or the tenant has no API access.
errorstringrequired
409The request is well formed, but it conflicts with the current state: a name already taken, a row the app protects (the hidden Default supplier, a preset colour or category), or a staff member who has an account.
errorstringrequired
422Request body or arguments failed validation.
errorstringrequired
429Per-minute rate limit (60/min) or per-month cap exceeded.
errorstringrequired
Try it
Server
Authorization
Bodyapplication/json
Request
curl -X POST "https://app.bloomcount.com/api/v1/suppliers" \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "string",
  "address": "string",
  "website": "string",
  "contactName": "string",
  "contactEmail": "string",
  "contactPhone": "string"
}'
Response
{
  "supplierId": "sup_77p3v2k6m4t1r5z9c8w0y7b3",
  "name": "GardenBros Wholesale",
  "contactName": "Aly Bardon",
  "contactEmail": "orders@gardenbros.example",
  "contactPhone": null,
  "website": "https://gardenbros.example",
  "address": null
}