Skip to content
Bloomcount API
Esc
navigateopen⌘Jpreview

Get one event

The whole event: the scalar fields the list returns, plus description (HTML), links, imageUrls (download URLs for attached storage), and the event’s groups with the items inside them. This is the only read that returns an event’s contents, so it is what an integration mirrors a quote from.

The heavy parts cost real work to assemble, so fields pays here: omitting groups skips loading the lines and the variants, products and suppliers behind them, and omitting imageUrls skips a storage lookup per image.

Errors

  • 404 event_not_found — unknown ID, or one belonging to another tenant.
  • 400 invalid_event_id — the ID is malformed.
  • 422 unknown_fields:<names> — a fields entry that doesn’t exist on an event.
GET/api/v1/events/{id}
Authorization
AuthorizationBearer token (bloomcount_...) · headerrequired
Path parameters
idstringrequired
Query parameters
fieldsstring
Comma-separated list of the fields to return, so a caller can ask for the parts of an object it actually uses. A dotted path reaches inside a collection, so `variants.sku` keeps the variants array with only each variant's SKU. The object's own id comes back whether or not it is listed, which keeps a trimmed response addressable. A name that the resource hasn't got returns 422 `unknown_fields:` followed by the names that did not resolve. Omit the parameter for the full object.
Responses
200OK
eventIdstringrequired
slugstring | null
namestringrequired
statusEventStatus | any
Show properties
One of:
EventStatus
string
any
any
ceremonyAddressstring | null
venueAddressstring | null
ceremonyStartinteger | null
Unix ms.
ceremonyEndinteger | null
Unix ms. Null when the event has no ceremony time set.
venueStartinteger | null
Unix ms, when setup at the reception venue begins.
venueEndinteger | null
Unix ms, when the event ends at the venue.
clientName1string | null
First client on the event. Both names are free text.
clientName2string | null
Second client, for a couple. Null for a single-client event.
budgetnumber | null
The client's budget, in the tenant's currency, excluding tax. Null when none was agreed.
numberOfGuestsinteger | null
Guest count, used for planning rather than pricing.
numberOfTablesinteger | null
Table count, which table-centre quantities are usually derived from.
colourSchemestring[] | null
Colour labels for the event, matched against the colour vocabulary by label rather than by ID. See GET /api/v1/colors for the labels that will line up.
descriptionstring | null
HTML (from Tiptap). May be large.
linksobject[] | null
Show properties
Array of object
labelstringrequired
urlstringrequired
imageUrlsstring<uri>[]required
Resolved download URLs for any attached storage objects. May be empty.
priceListIdstring | null
materialsPriceListIdstring | null
hirePriceListIdstring | null
ID of the hire price list governing this event's hire-mode lines, or `null` if no hire list is set. Daily fees on `EventItem` rows where `mode: "hire"` come from this list.
markupMultipliernumber | null
totalsobject | null
The event's stored rollup, or `null` when the request asked for no money fields.
Show properties
customerPriceIncTaxnumberrequired
What the customer pays for the whole event: every visible line with tax and markup, plus labour, additional fees and travel. Larger than the sum of the line prices for that reason.
costIncTaxnumberrequired
What the units the design consumes cost, including tax, before markup. Excludes the pack leftovers.
wasteCostIncTaxnumberrequired
What the pack leftovers cost, including tax, before markup. Computed per line, so it can differ slightly from the event page's Waste card, which pools packs across lines sharing a variant.
costOfGoodsIncTaxnumberrequired
What the florist actually pays out: costIncTax plus wasteCostIncTax. A breakdown of this figure, not an extra beside it, so never add all three together.
itemsCountintegerrequired
Lines on the event, hidden groups included.
groupsEventGroup[]required
Items attached to the event, grouped as they appear in the app. A synthetic `"Ungrouped"` group is appended if any items have no `groupId` set (defensive — every event has at least the auto-created default group, so this is rarely populated).
Show properties
Array of EventGroup
groupIdstringrequired
This group's ID.
namestringrequired
What the section is called on the quote.
orderintegerrequired
Position among the event's groups, ascending. Ties fall back to creation order.
quantityModestring | null
Controls how line-item quantities are interpreted within this group. - `open` — each item's `quantity` stands alone. `effectiveQuantity == quantity`. Use for one-off arrangements (ceremony arch, top table). - `group` — the group has a `groupQuantity` multiplier. Each item's `effectiveQuantity = quantity × groupQuantity`. Use for repeated builds (e.g. 10 identical centrepieces — set `groupQuantity: 10` once instead of multiplying every line by hand).
Allowed:opengroup
groupQuantityinteger | null
Multiplier applied to every item's quantity when `quantityMode` is `group`. Ignored otherwise.
hiddenbooleanrequired
When true, the group is excluded from the in-app totals, order-sheet exports, and waste calculations. The group + its items are still returned here so partners can see what was hidden — apply your own filter if you want to mirror the in-app exclusion.
itemsEventItem[]required
Show properties
Array of EventItem
itemIdstringrequired
This line's ID. Pass it back to change or remove the line.
variantIdstringrequired
The variant this line orders.
productIdstring | null
The variant's parent product. Null if the product has since been deleted.
productNamestring | null
The product's name, copied onto the line so it reads without a catalogue lookup.
categorystring | null
The product's category label at the time the line was written.
productTypestring | null
Which catalogue the variant came from, and therefore which price list prices this line.
Allowed:flowermaterial
variantNamestring | null
The variant's name, such as a stem length or a size.
skustring | null
The variant's SKU. Materials carry one; flowers do not.
stemLengthinteger | null
Stem length in cm, on flower lines only.
unitsPerPackinteger | null
How many units one supplier pack holds. Packs to order are worked out from this and the quantity.
quantityintegerrequired
Stored quantity on the line.
effectiveQuantityintegerrequired
Quantity after applying the parent group's quantity multiplier. For groups in `quantityMode: "group"`, this is `quantity × groupQuantity`. For everything else it equals `quantity`.
supplierIdstring | null
Who this line is bought from. Always null on hire lines, which come from studio inventory.
supplierNamestring | null
That supplier's name, copied onto the line.
modestringrequired
- `consumable` — flowers and bought-in materials. Sourced from a supplier per event; priced from the flower or materials price list. - `hire` — studio-owned inventory rented out for a date window. No `supplierId`; priced from the event's hire price list as `dailyFeeExclTax × hireDays × quantity`.
Allowed:consumablehire
hireStartinteger | null
Hire window start (Unix ms, inclusive). `null` on `consumable` lines.
hireEndinteger | null
Hire window end (Unix ms, inclusive). `null` on `consumable` lines.
hireDaysinteger | null
Days billed = `floor((hireEnd - hireStart) / 1d) + 1`, minimum 1. `null` on `consumable` lines.
dailyFeeExclTaxnumber | null
Snapshotted daily fee (excluding tax) from the event's hire price list at the moment the line was added or last refreshed. `null` on `consumable` lines.
pricingobject | null
What this line costs and what the customer pays for it, or `null` when the request asked for no money fields.
Show properties
unitPriceExclTaxnumberrequired
On a consumable line the pack price excluding tax; on a hire line the daily fee excluding tax. The frozen snapshot where the line has one, the live price-list entry otherwise.
perUnitPriceExclTaxnumberrequired
Price of a single unit excluding tax: the pack price divided by unitsPerPack. Equal to unitPriceExclTax on a hire line, which is billed per day rather than per pack.
costExclTaxnumberrequired
What the units this line consumes cost, excluding tax and before markup. effectiveQuantity times perUnitPriceExclTax, or fee times days times quantity on a hire line. Excludes the pack leftovers, which are wasteCostIncTax.
costIncTaxnumberrequired
costExclTax with the tax multiplier of the price list this line is priced from. Still before markup.
customerPriceIncTaxnumberrequired
What the customer pays for this line: costIncTax with the event's per-unit uplift and the markup for this line's product type. Hire lines use the event's hire markup, which is set separately from the flower and materials ones.
packsNeededintegerrequired
Whole packs to order, raised to the supplier's minimum order quantity where one applies to this variant. Zero on a hire line, where the studio owns the stock.
wasteUnitsnumberrequired
Units bought and not used: packsNeeded times unitsPerPack, less effectiveQuantity. Includes any extra forced by a supplier minimum. Zero on a hire line.
wasteCostIncTaxnumberrequired
What those leftover units cost, including tax and before markup. Add it to costIncTax for what this line costs to buy.
subtotalsobject | null
This group's lines added up, or `null` when the request asked for no money fields.
Show properties
costExclTaxnumberrequired
Sum of the group's line costExclTax.
costIncTaxnumberrequired
Sum of the group's line costIncTax.
customerPriceIncTaxnumberrequired
Sum of the group's line customerPriceIncTax.
wasteCostIncTaxnumberrequired
Sum of the group's line wasteCostIncTax.
itemsCountintegerrequired
How many lines are in this group.
400Malformed event ID.
errorstringrequired
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
404Event not found in the caller's tenant.
errorstringrequired
429Per-minute rate limit (60/min) or per-month cap exceeded.
errorstringrequired
Try it
Server
Authorization
Parameters
Request
curl -X GET "https://app.bloomcount.com/api/v1/events/evt_2b1f3x9k4m7p8q6r5t1v0w2y" \
  -H "Authorization: Bearer YOUR_TOKEN"
Response
{
  "eventId": "evt_2b1f3x9k4m7p8q6r5t1v0w2y",
  "slug": "smith-jones-wedding",
  "name": "Smith × Jones Wedding",
  "status": "quoting",
  "ceremonyAddress": "St Mary's Church, Bath",
  "venueAddress": "The Manor Hotel, Bath",
  "ceremonyStart": 1781424000000,
  "ceremonyEnd": 1781427600000,
  "venueStart": 1781430000000,
  "venueEnd": 1781467200000,
  "clientName1": "Alex Smith",
  "clientName2": "Jordan Jones",
  "budget": 4500,
  "numberOfGuests": 80,
  "numberOfTables": 10,
  "colourScheme": [
    "blush",
    "ivory",
    "sage"
  ],
  "description": "string",
  "links": [
    {
      "label": "string",
      "url": "string"
    }
  ],
  "imageUrls": [
    "http://example.com"
  ],
  "priceListId": "string",
  "materialsPriceListId": "string",
  "hirePriceListId": "string",
  "markupMultiplier": 0,
  "totals": {
    "customerPriceIncTax": 0,
    "costIncTax": 0,
    "wasteCostIncTax": 0,
    "costOfGoodsIncTax": 0,
    "itemsCount": 0
  },
  "groups": [
    {
      "groupId": "string",
      "name": "string",
      "order": 0,
      "quantityMode": "open",
      "groupQuantity": 0,
      "hidden": true,
      "items": [
        {
          "itemId": "string",
          "variantId": "string",
          "productId": "string",
          "productName": "string",
          "category": "string",
          "productType": "flower",
          "variantName": "string",
          "sku": "string",
          "stemLength": 0,
          "unitsPerPack": 0,
          "quantity": 0,
          "effectiveQuantity": 0,
          "supplierId": "string",
          "supplierName": "string",
          "mode": "consumable",
          "hireStart": 0,
          "hireEnd": 0,
          "hireDays": 0,
          "dailyFeeExclTax": 0,
          "pricing": {
            "unitPriceExclTax": 0,
            "perUnitPriceExclTax": 0,
            "costExclTax": 0,
            "costIncTax": 0,
            "customerPriceIncTax": 0,
            "packsNeeded": 0,
            "wasteUnits": 0,
            "wasteCostIncTax": 0
          }
        }
      ],
      "subtotals": {
        "costExclTax": 0,
        "costIncTax": 0,
        "customerPriceIncTax": 0,
        "wasteCostIncTax": 0,
        "itemsCount": 0
      }
    }
  ]
}