• Documentation
  • Introduction
    • The member journey
  • Training
    • Create a program
    • Courses and sections
    • Lessons, media and publication
    • Milestones and paths
    • Tasks and deliverables
    • Cohorts and groups
  • Student & Community
    • Joining a school
    • Learning and resuming
    • Submitting and revising work
    • Calendar and lives
    • Spaces and questions
    • Reading progress
  • Coaching
    • Roles and assignments
    • Member context and work queue
    • Reviews and feedback
    • Sessions and interventions
    • Cohort cockpit and live operations
  • Leads & Qualification
    • People, leads and applications
    • Contacts and import
    • Qualification forms
    • Application triage
  • Setting & Booking
    • Setter scope
    • Sales availability
    • Share a booking link
    • Prospect booking
    • Agenda and booking management
    • Prepare a call and share its meeting link
  • Closing, Offers & Payments
    • Closer scope
    • Compose an offer
    • Share a nominal payment link
    • Buyer checkout and access
    • Instalments
    • Offline payment
    • Track payment and access failures
    • Stripe school account
  • Administration & Integrations
    • Organization roles and domains
    • API keys and tenant binding
    • Webhooks
    • Payment setup
  • API quickstart
  • API reference
    • Connect with MCP
    • Enrollments
      • GETGet the enrollment timeline
      • GETGet the coaching briefing
      • POSTPause an enrollment
      • POSTResume an enrollment
      • POSTExtend a deadline
      • POSTTransfer an enrollment
      • POSTClose an enrollment
      • POSTSubmit an outcome measure
      • GETList outcome measures
      • GETList deadline extensions
      • DELETECancel a deadline extension
      • GETList enrollments
      • POSTEnroll a person
    • Cohorts
      • GETGet the cohort cockpit
      • GETList the enrollments behind a cockpit signal
      • PATCHConfigure a cohort
      • POSTMove a cohort to another phase
      • POSTCreate a cohort
      • POSTChange a cohort's status
    • Coaching sessions
      • GETList coaching sessions
      • GETGet a coaching session
      • POSTRecord a coaching session
      • POSTAppend coaching session entries
    • Interventions
      • GETList interventions
      • POSTPlan an intervention
      • POSTClose an intervention
    • Live sessions
      • PATCHRecord live attendance
      • GETList live attendance
      • GETRead one enrollment's attendance
      • GETList live sessions
      • POSTSchedule a live session
      • PATCHUpdate a live session
      • POSTCancel a live session
      • GETGet live session
    • Programs
      • GETList programs
      • POSTCreate a program
      • GETRead a program
      • PATCHUpdate a program
      • POSTArchive a program
      • POSTRestore a program
    • Courses
      • GETList the courses of a program
      • POSTCreate a course
      • PATCHUpdate a course
      • POSTRename a course
      • POSTArchive a course
      • POSTReorder the courses of a program
      • POSTUpload a course cover
    • Sections
      • GETList the sections of a course
      • POSTCreate a section
      • POSTRename a section
      • POSTDissolve a section
      • POSTReorder the sections of a course
      • POSTMove a lesson into a section
      • DELETETake a lesson out of its section
    • Lessons
      • GETList the lessons of a program
      • POSTCreate a lesson
      • GETRead a lesson
      • PATCHUpdate a lesson
      • POSTPublish a lesson
      • POSTArchive a lesson
      • POSTMove a lesson to another course
      • POSTReorder the lessons of a program
      • POSTAttach a resource
      • DELETEDetach a resource
      • POSTReorder the resources of a lesson
      • POSTUpload a lesson resource
      • POSTUpload a lesson video
      • GETRead a lesson by its identifier
      • PATCHUpdate a lesson by its identifier
      • GETRead the discussion of a lesson
      • POSTComment on a lesson
    • Milestones
      • GETList the milestones of a program
      • POSTCreate a milestone
      • PATCHUpdate a milestone
      • POSTArchive a milestone
      • POSTReorder the milestones of a program
      • GETList the contributions of a milestone
      • POSTAttach a contribution
      • DELETEDetach a contribution
    • People
      • POSTImport people
      • POSTLink a duplicate person
      • DELETEUnlink a duplicate person
    • Delivery analytics
      • GETGet delivery analytics
    • Sales availability
      • GETRead sales availability
      • GETPreview sales slots
      • PUTReplace sales availability
      • GETList eligible sales closers
    • Community
      • POSTUpload an attachment
      • POSTAttach to a thread
      • POSTCreate a space
      • POSTPost a thread
      • POSTReply to a thread
      • POSTLink a thread
      • GETList spaces
      • GETRead a thread
      • GETSearch the community
    • Offer payments
      • POSTPause automatic charging
      • DELETEResume automatic charging
      • POSTCharge an instalment now
      • GETGet collections dashboard
    • Member tasks
      • POSTCreate a member task
      • GETList the tasks of a milestone
      • PUTUpdate a member task
      • POSTArchive a member task
      • POSTReorder the tasks of a milestone
      • GETRead a task
      • GETList program tasks
    • Deliverables
      • POSTCreate a deliverable
      • GETList the deliverables of a task
      • GETGet a deliverable
      • PUTUpdate a deliverable
      • POSTArchive a deliverable
    • Groups
      • GETList groups
      • POSTCreate a group
      • GETGet a group
      • PATCHUpdate a group
      • POSTAdd a Group membership
      • DELETERemove a Group membership
    • Paths
      • GETList program paths
      • POSTCreate a path
      • GETGet a path
      • PATCHVersion or promote a path
    • Webhooks
      • GETList webhook subscriptions
      • POSTCreate a webhook subscription
      • GETGet a webhook subscription
      • PATCHUpdate a webhook subscription
      • DELETEDelete a webhook subscription
      • POSTVerify a webhook subscription
      • POSTRotate a webhook secret
      • POSTPause or reactivate a webhook subscription
      • GETList webhook deliveries
      • GETGet a webhook delivery
      • POSTReplay a webhook delivery
    • Media
      • GETList media
      • POSTUpload a media
      • PATCHRename a media
      • DELETEDelete a media
    • Bookings
      • GETList the open slots of a booking link
      • POSTSave a booking lead
      • POSTBook a call for a prospect
      • GETGet booking details
      • GETList bookings
      • GETGet booking
      • PATCHUpdate booking details
      • GETGet booking agenda
      • GETGet closer meeting link
      • GETList person bookings
      • PUTSet closer meeting link
      • GETList booking links
      • POSTSend a booking email
      • GETRead booking follow-up
      • POSTCreate booking link
      • GETGet booking link
      • PUTRecord booking attendance
      • GETRead booking reminder settings
      • PATCHUpdate booking link
      • POSTReschedule booking
      • PUTSet booking reminder settings
      • POSTCancel booking
      • GETList booking reassignment candidates
      • POSTReassign booking
      • GETList booking reschedule slots
      • GETList booking reassignment slots
    • My learning
      • GETList my enrollments
      • GETGet my learning context
      • GETList my lessons
      • GETGet one of my lessons
      • GETList my agenda
      • GETGet my lesson note
      • PUTSave my lesson note
      • DELETEDelete my lesson note
      • GETList my lesson notes
      • GETGet my lesson's agent section
      • GETList my tasks
      • GETRead my submission
      • POSTOpen my submission draft
      • PUTSave my submission draft
      • POSTSubmit my work
      • POSTResubmit my work
    • Forms
      • GETList forms
      • POSTCreate a form
      • GETGet a form
      • PATCHUpdate form identity
      • DELETEDelete a form
      • PUTSave form definition
      • PUTSet form theme
      • PUTSet form qualification
      • PUTSet submission mode
      • PUTOpen or close a form
      • POSTPublish a form
      • POSTUnpublish a form
      • GETList form responses
      • GETGet a form response
      • GETRead form statistics
      • POSTRetry response qualification
      • GETRead form definition
      • GETRead form theme
      • GETRead form qualification
      • GETRead form submission-settings
      • GETRead form identity fields
      • PUTSet form identity fields
    • Calendar connections
      • GETList calendar connections
      • GETRead a calendar connection
      • POSTRequest calendar consent
      • GETList writable calendars
      • PUTSelect a calendar
      • DELETEDisconnect a calendar
    • Offers
      • GETList offers
      • POSTCreate an offer
      • GETGet an offer
      • PATCHUpdate an offer
      • GETGet composer options
    • Responsibilities
      • GETList responsibilities
      • POSTAssign a responsibility
      • DELETERemove a responsibility
    • Submission reviews
      • GETList submission reviews
      • GETRead a submission review
      • POSTTake a submission in review
      • POSTDecide a submission review
    • Closers
      • GETList closer invitations
      • POSTInvite a closer
      • POSTResend a closer invitation
      • DELETECancel a closer invitation
      • GETRead commercial responsibility
      • PUTAssign commercial responsibility
      • GETRead my sales availability
      • PUTUpdate my sales availability
      • GETRead my closer setup
    • Personal preparation
      • GETRead my work profile
      • PATCHUpdate my work profile
      • GETRead my preparation
    • Video library
      • GETList video resources
      • GETGet a video resource
      • POSTPublish a video resource
      • PATCHUpdate a video resource
      • POSTUnpublish a video resource
      • POSTRepublish a video resource
    • Video questions
      • POSTAsk a question
      • GETList my questions
      • GETGet my question
      • GETList received questions
      • PATCHAssign a question
      • POSTAnswer a question
      • POSTCancel a question
  1. Documentation
  2. API reference
  3. Bookings
  4. Update booking details
HomeBlogDocumentationPricingContact

Update booking details

PreviousGet bookingNextGet booking agenda
On this page
AuthorizationOrganization roleBusiness authorizationPath parametersRequest headersRequest bodyExampleResponseResponse fieldsExample responseNotesRelated

PATCH /api/v1/bookings/{bookingId}/details

Reads or edits the public information and private preparation notes for one sales call. Omitted fields remain unchanged; explicit null clears a field.

Authorization

Organization role

Role in the organizationThis endpoint
OWNERAllowed with current organization permissions
ADMINAllowed with current organization permissions
MEMBERConditional on the business role and scope below

Business authorization

RequirementRule for this endpoint
Business roleAssigned closer; setters cannot edit
Resource scopeOrganization bound to the API key
ParticipationCall must be visible to the bearer
Resource stateNo additional state restriction

Private notes are returned only to owner/admin and the currently assigned closer. Setter responses omit the privateNotes property entirely.

Path parameters

ParameterTypeRequiredDescription
bookingIdUUIDyesBooking identifier

Request headers

HeaderRequiredDescription
x-api-keyyesOrganization API key
X-Correlation-IdnoCorrelation UUID for support
Idempotency-KeyyesStable key for one intention
Content-Typeyesapplication/json

Request body

FieldTypeRequiredNullableDescription
meetingUrlstringnoyesHTTP or HTTPS URL, maximum 2048 characters, no credentials or whitespace
publicInstructionsstringnoyesPlain text, maximum 4000 characters
privateNotesstringnoyesPrivate plain text, maximum 10000 characters; replaces the complete note
sendUpdateEmailbooleannonoDefault false; true only after explicit operator confirmation

Unknown fields, including organizationId, are refused. At least one editable field must be provided.

Example

bash
curl -X PATCH "$COHORTE_API_BASE_URL/api/v1/bookings/11111111-1111-4111-8111-111111111111/details" \
  -H "x-api-key: $COHORTE_API_KEY" \
  -H "Idempotency-Key: call-details-001" \
  -H "Content-Type: application/json" \
  -d '{"meetingUrl":"https://meet.example.com/my-room"}'

Response

  • 200: successful read, save or replay.
  • 400: invalid identifier, payload or missing idempotency key.
  • 401: invalid key or membership.
  • 403: insufficient permissions.
  • 404: booking absent or outside this organization.
  • 429: rate limit reached.
  • 500: unexpected failure.

Response fields

FieldTypeNullableDescription
successbooleannoSuccessful request
data.details.bookingIdUUIDnoBooking identifier
data.details.meetingUrlstringyesEffective link stored on this call
data.details.publicInstructionsstringyesPublic information
data.details.privateNotesstringyesPrivate note; property omitted for setters
data.details.canEditbooleannoCurrent editing permission
data.details.hasProspectEmailbooleannoWhether a prospect email is available
data.email.statusstringnonot_requested, sent, skipped, or failed
data.email.reasonstringyeslog_mode, no_email, delivery_failed, delivery_not_completed, or null

Example response

json
{
  "success": true,
  "data": {
    "details": {
      "bookingId": "11111111-1111-4111-8111-111111111111",
      "meetingUrl": null,
      "publicInstructions": null,
      "privateNotes": null,
      "canEdit": true,
      "hasProspectEmail": true
    },
    "email": {
      "status": "not_requested",
      "reason": null
    }
  }
}

Notes

A mutation records an audit and change event. Reusing the same key does not apply the edit twice. The returned data reflects the current resource; replay does not resend email.

Meeting-link updates appear on the personal public page and newly generated calendar exports. Already imported external events are not synchronized. Notes never appear on the prospect page, emails or calendars. No management link is recovered or replaced.

An update email is attempted only when the link changes and sendUpdateEmail is explicitly true. Ask the operator before setting it. Email failure does not undo the saved call. sent means accepted for sending, not delivered or read. Replies go to the assigned closer through Reply-To. The update email includes its private management link directly, while previous personal links remain valid. A retry resumes the same durable delivery and stable provider idempotency key; delivery_not_completed can indicate an interrupted attempt with uncertain delivery.

The optional update email carries the meeting details and recipient context captured at the approved save. Later changes made without sending do not replace the contents of that already approved email.

Related

  • Get booking details
  • Update booking details
  • Set closer meeting link

All update-email attempts appear in call history with approved content, actor and actual send/result timestamps. Later unsent edits do not change an already approved email snapshot. Personal capabilities are redacted from operator history.