Bookings

Creates a booking — one or more events under the organization identified by entityId — with the full deal structure: multiple artists with per-artist splits, ticket scales and tiers, custom payment schedules, expenses, and day-of-show schedules.

Minimum request. The minimum request is one event (events with a startDateTime, a currencyType, and at least one artist in artists), a buyer (contacts.buyer.person with an email and at least one of firstName/lastName), and at least one agent — given explicitly under assignments.agents, or resolvable from the artists' roster assignments. Artists are matched by roster entity id (or exact roster name) and must be active on the agency's roster. Discover ids with List Organization Members and List Roster Members.

Units and formats. Event dates are local wall-clock values in YYYY-MM-DD or YYYY-MM-DDThh:mm:ss form — never with a UTC offset or Z suffix. When a date carries a time, timeZone is required and must be an IANA time zone id (for example America/Los_Angeles). guarantee and amount fields are in whole currency units of the event's currencyType (7500 = 7,500.00 USD). Percent fields are percent numbers (50 = 50%) except where a field's own description says it is a string.

Defaults for omitted fields. Event status defaults to tentative (unless the agency is set to confirm bookings at creation), dealType to FLAT_GUARANTEE, and guarantee to 0. Agents default from each roster artist's assignments. When payments is omitted, the agency's default payment-plan preset is applied.

Limits. A booking can include at most 30 events (DEAL_TOO_MANY_EVENTS beyond that).

Permissions. The account that minted the token needs the api role on entityId.

Retries. Creation is not idempotent — a timeout does not itself prove failure (the booking may exist); check with Run Report (a Booking report on the event date) before retrying.

What creation does.

  • Runs the booking workflow and syncs the event to connected calendars per the agency's settings.
  • Creates contact and organization records for any new people and organizations you name.
  • When you omit a member group, the artists' roster-assigned members are added for it (respecting the roster's auto-add flags).
  • Distributes the booking to the assigned members' inboxes.

Errors. Validation failures return HTTP 406 with a DEAL_* result code — see the worked example under Responses. A request without a buyer person currently fails with HTTP 500, Please select a Buyer. — treat it as a request error, not a server outage. Exceeding the rate limit returns HTTP 503 RATE_LIMIT_EXCEEDED.

post/booking/{entityId}

Request

  • Base URL
    https://api.gigwell.com/api
  • Auth
    HTTP bearer

Path parameters

entityIdstring required

The agency's entity ID to create the booking under.

Request body

phrasesobject nullable

Contract phrase values keyed by phrase id, each a list of lines.

internalNotesstring nullable

Internal notes attached to the booking; visible to agency members, not to the buyer.

Response

OK

status'OK' | 'FAIL' | 'ERROR'
codestring nullable

ResultCode enum name (e.g. SUCCESS, NOT_FOUND, RATE_LIMIT_EXCEEDED)

messagestring nullable

Result message: OK on success; the error text when status is FAIL or ERROR.

messagesstring[] nullable

In rare, specific cases, additional error messages.

requestIdstring nullable

A request correlation id generated by the server.

Changes