# Zeeg Developer Hub > Zeeg Developer Hub: REST API reference, guides, and webhooks for building scheduling, booking, and AI-agent integrations on the Zeeg platform. - [Introduction](https://developer.zeeg.me/introduction.md): Overview of the Zeeg REST API — endpoints, scopes, webhooks, and SDKs for building scheduling and booking integrations on the Zeeg platform. - [Authentication](https://developer.zeeg.me/authentication.md): Authenticate Zeeg API requests with Bearer tokens. Learn how to generate API keys, scope them to specific permissions, and keep your credentials secure. - [Quickstart](https://developer.zeeg.me/quickstart.md): Make your first authenticated request to the Zeeg API in under 5 minutes — generate an API key, verify your token, and list scheduled events. - [Pagination](https://developer.zeeg.me/pagination.md): How page-based pagination works in the Zeeg API. Use the count and page query parameters and walk through results with the nextPage cursor. - [Errors](https://developer.zeeg.me/errors.md): Reference for HTTP status codes and error response shapes returned by the Zeeg API, with examples for 400, 401, 403, 404, 409, 422, and 500 errors. - [Rate Limits](https://developer.zeeg.me/rate-limits.md): How the Zeeg API rate-limits requests, how to handle 429 responses with exponential backoff, and best practices to stay within your quota. - [Booking Flow](https://developer.zeeg.me/guides/booking-flow.md): End-to-end guide for programmatically creating bookings via the Zeeg API — fetch scheduling pages, query available time slots, and create the event. - [Managing Events](https://developer.zeeg.me/guides/managing-events.md): List, filter, inspect, cancel, and hand over scheduled events with the Zeeg API. Includes filtering by host, team, status, and date range. - [Webhooks](https://developer.zeeg.me/guides/webhooks-guide.md): Subscribe to Zeeg webhooks to receive real-time notifications when events are scheduled, rescheduled, cancelled, or when routing forms are submitted. - [AI Agent Calls](https://developer.zeeg.me/guides/ai-agent-calls.md): Use the Zeeg API to trigger immediate or scheduled AI agent outbound phone calls, including how to pass call context and handle responses. - [Syncing Employee Time-Off](https://developer.zeeg.me/guides/syncing-employee-time-off.md): Push vacations and out-of-office periods from your HRIS (BambooHR, Personio, Workday, a spreadsheet) into Zeeg so bookings never land on someone who's away. - [CRM Bulk Import](https://developer.zeeg.me/guides/crm-bulk-import.md): Migrate contacts, companies, and custom records from another CRM (HubSpot, Salesforce, Airtable, CSV) into Zeeg using the upsert endpoints — idempotent, batch-safe, and re-runnable. - [Managing Scheduling Pages](https://developer.zeeg.me/guides/managing-scheduling-pages.md): List, inspect, toggle, and issue single-use links for Zeeg scheduling pages programmatically. Provision pages at sign-up, sync from a master config, or generate per-customer booking links. - [List Scheduled Events](https://developer.zeeg.me/api/scheduled-events/list-scheduled-events.md): Retrieve a paginated list of scheduled events in your Zeeg workspace, with filters for status, date range, host, team, and invitee. - [Get a Scheduled Event](https://developer.zeeg.me/api/scheduled-events/get-a-scheduled-event.md): Retrieve full details of a single scheduled event by UUID, including invitees, hosts, location, status, and custom answers. - [Get Reschedule Availability](https://developer.zeeg.me/api/scheduled-events/get-reschedule-availability.md): List the slots a specific booking can be moved to. Call this before rescheduling, and reschedule to one of the slots it returns. - [Reschedule a Scheduled Event](https://developer.zeeg.me/api/scheduled-events/reschedule-a-scheduled-event.md): Move a booking to a new date and time. The invitee and the host receive a reschedule notice, and the response names the new identifiers. - [Cancel a Scheduled Event](https://developer.zeeg.me/api/scheduled-events/cancel-a-scheduled-event.md): Cancel a scheduled Zeeg event by UUID. Notifies all invitees and hosts and marks the event as cancelled in the system. - [Cancel a Scheduled Invitee](https://developer.zeeg.me/api/scheduled-events/cancel-a-scheduled-invitee.md): Cancel a single invitee on a scheduled event without cancelling the event itself. Useful for group bookings where one attendee drops out. - [Handover a Scheduled Event](https://developer.zeeg.me/api/scheduled-events/handover-a-scheduled-event.md): Reassign a scheduled Round Robin event from its current host to another eligible host in your workspace. - [List Scheduling Pages](https://developer.zeeg.me/api/scheduling-pages/list-scheduling-pages.md): Retrieve a paginated list of scheduling pages (event types) in your workspace, including title, slug, duration, and active status. - [Get a Scheduling Page](https://developer.zeeg.me/api/scheduling-pages/get-a-scheduling-page.md): Retrieve a single scheduling page by UUID, including its profile, custom invitee questions, duration, and configuration. - [Toggle Scheduling Page Status](https://developer.zeeg.me/api/scheduling-pages/toggle-scheduling-page-status.md): Activate or deactivate a scheduling page so it stops or resumes accepting new bookings without deleting its configuration. - [Get a Single-Use Scheduling Link](https://developer.zeeg.me/api/scheduling-pages/get-a-single-use-scheduling-link.md): Generate a one-time-use scheduling link for a scheduling page so that only one invitee can book before the link expires. - [Get Available Time Slots](https://developer.zeeg.me/api/scheduling-pages/get-available-time-slots.md): Query bookable time slots for any scheduling page, personal, team or shared. Used as the first step of a programmatic booking flow. - [Create an Event](https://developer.zeeg.me/api/scheduling-pages/create-an-event.md): Programmatically book a scheduled event on a Zeeg scheduling page by providing an invitee, a chosen time slot, and any required custom answers. - [Get All Availability Schedules](https://developer.zeeg.me/api/availability/get-all-availability-schedules.md): Retrieve all availability schedules belonging to the authenticated user, including weekly hours, time zone, and date overrides. - [Get Default Availability Schedule](https://developer.zeeg.me/api/availability/get-default-availability-schedule.md): Retrieve the user's default availability schedule, used when a scheduling page does not have a specific schedule assigned. - [Update Default Availability Schedule](https://developer.zeeg.me/api/availability/update-default-availability-schedule.md): Update the user's default availability schedule, including weekly working hours, time zone, and date-specific overrides. - [Get Availability Schedule by UUID](https://developer.zeeg.me/api/availability/get-availability-schedule-by-uuid.md): Retrieve a specific availability schedule by its UUID, with weekly working hours, time zone, and any date-specific overrides. - [Update Availability Schedule by UUID](https://developer.zeeg.me/api/availability/update-availability-schedule-by-uuid.md): Update a specific availability schedule by its UUID. Modify weekly working hours, time zone, or date-specific overrides. - [List Time-Off Periods](https://developer.zeeg.me/api/availability/list-time-off-periods.md): Retrieve all time-off periods configured for users in your workspace, used to block availability during vacations or absences. - [Create Time-Off Periods](https://developer.zeeg.me/api/availability/create-time-off-periods.md): Bulk-create time-off periods for one or more users (by email, slug, or UUID) to block their availability for vacations or absences. - [Update Time-Off Period](https://developer.zeeg.me/api/availability/update-time-off-period.md): Update an existing time-off period by UUID — change start/end dates, time zone, or notes. - [Delete Time-Off Period](https://developer.zeeg.me/api/availability/delete-time-off-period.md): Permanently delete a time-off period by UUID, restoring the user's availability for that date range. - [List Holiday Categories](https://developer.zeeg.me/api/holidays/list-holiday-categories.md): List the holiday categories (countries and regions) available for subscription, with localized names and identifiers. - [Preview Holidays for a Category](https://developer.zeeg.me/api/holidays/preview-holidays.md): Preview the upcoming holidays in a given category before creating a subscription, so users can see exactly which dates will be blocked. - [List Holiday Subscriptions](https://developer.zeeg.me/api/holidays/list-holiday-subscriptions.md): List the holiday subscriptions for users in your workspace, including which categories they follow and any per-holiday overrides. - [Create Holiday Subscriptions](https://developer.zeeg.me/api/holidays/create-holiday-subscriptions.md): Bulk-subscribe one or more users to a holiday category so the listed dates are automatically blocked from their availability. - [Delete a Holiday Subscription](https://developer.zeeg.me/api/holidays/delete-holiday-subscription.md): Remove a holiday subscription, unblocking the previously held holiday dates from the user's availability. - [Toggle Holiday Overrides](https://developer.zeeg.me/api/holidays/toggle-holiday-overrides.md): Override individual holidays within a subscription — opt back in to specific dates without unsubscribing from the entire category. - [Create Webhook Subscription](https://developer.zeeg.me/api/webhooks/create-webhook-subscription.md): Register a webhook callback URL to receive real-time notifications for selected Zeeg events such as bookings, cancellations, and reschedules. - [List Webhook Subscriptions](https://developer.zeeg.me/api/webhooks/list-webhook-subscriptions.md): List all webhook subscriptions for a given scope (user, team, or organization), including their callback URLs and event types. - [Get Webhook Subscription](https://developer.zeeg.me/api/webhooks/get-webhook-subscription.md): Retrieve a single webhook subscription by UUID, including the callback URL, scope, and the event types it is subscribed to. - [Delete Webhook Subscription](https://developer.zeeg.me/api/webhooks/delete-webhook-subscription.md): Permanently delete a webhook subscription by UUID. Zeeg will stop sending event notifications to its callback URL. - [Create a Note](https://developer.zeeg.me/api/notes/create-a-note.md): Attach a free-form note to a scheduled event for internal context, meeting prep, or post-call follow-up. - [List Notes by Event](https://developer.zeeg.me/api/notes/list-notes-by-event.md): List all notes attached to a scheduled event, ordered by creation time, including the author and timestamps. - [Get a Note](https://developer.zeeg.me/api/notes/get-a-note.md): Retrieve a single note by its identifier, including its content, author, and the event it is attached to. - [Update a Note](https://developer.zeeg.me/api/notes/update-a-note.md): Update the content of an existing note attached to a scheduled event. - [Delete a Note](https://developer.zeeg.me/api/notes/delete-a-note.md): Permanently delete a note attached to a scheduled event. - [Check Logged-in User](https://developer.zeeg.me/api/workspaces-teams/check-logged-in-user.md): Verify your API token and identify the authenticated user. Use this as the first call to confirm credentials are valid. - [List Users in a Workspace](https://developer.zeeg.me/api/workspaces-teams/list-users-in-a-workspace.md): List all users in your Zeeg workspace, including their roles, slugs, and email addresses. Supports per_page pagination. - [Add a Team Member](https://developer.zeeg.me/api/workspaces-teams/add-a-team-member.md): Add an existing workspace user to a team. Address the team by its UUID or its slug. Useful for automating onboarding flows and team membership sync. - [Create Outbound Call](https://developer.zeeg.me/api/ai-agent/create-outbound-call.md): Trigger an immediate or scheduled AI agent outbound phone call. Pass the destination number and any call context required by the agent. - [Event Webhook Payload](https://developer.zeeg.me/api/webhook-payloads/event-webhook-payload.md): Schema reference for the webhook payload Zeeg sends to your callback URL when an invitee schedules, reschedules, or cancels an event. - [Routing Form Webhook Payload](https://developer.zeeg.me/api/webhook-payloads/routing-form-webhook-payload.md): Schema reference for the webhook payload Zeeg sends when a routing form is submitted, including answers and the routed scheduling page. - [AI Agent Call Webhook Payload](https://developer.zeeg.me/api/webhook-payloads/ai-agent-call-webhook-payload.md): Schema reference for the webhook payload Zeeg sends when an AI agent call completes, including the outcome, transcript summary, collected data, actions, and any booking made. - [CRM Overview](https://developer.zeeg.me/api/crm/overview.md): Manage contacts, companies, and custom objects through the Zeeg CRM API. - [List CRM Objects](https://developer.zeeg.me/api/crm/list-crm-objects.md): Retrieve every CRM object in your Zeeg workspace with full attribute schemas, including standard people and companies plus any custom objects you created - [Get a CRM Object](https://developer.zeeg.me/api/crm/get-a-crm-object.md): Retrieve the full schema of a single Zeeg CRM object by slug, including every attribute definition with its type, label, options, and relation metadata - [Create a CRM Object](https://developer.zeeg.me/api/crm/create-a-crm-object.md): Create a custom CRM object in your Zeeg workspace with a unique, immutable slug. Each new object gets id, created_at, and updated_at system attributes. - [Update a CRM Object](https://developer.zeeg.me/api/crm/update-a-crm-object.md): Update a custom CRM object's display metadata via the Zeeg CRM API. Change its singular and plural names; the slug stays immutable - [Delete a CRM Object](https://developer.zeeg.me/api/crm/delete-a-crm-object.md): Delete a custom CRM object and all its records via the Zeeg CRM API. Removes attribute definitions and relation links; standard objects can't be deleted - [Add Attribute to CRM Object](https://developer.zeeg.me/api/crm/add-attribute-to-crm-object.md): Add a custom attribute to a Zeeg CRM object via the API. Define typed fields like text, number, select, relation, or currency with auto-generated keys - [Update CRM Object Attribute](https://developer.zeeg.me/api/crm/update-crm-object-attribute.md): Update a single attribute definition on a Zeeg CRM object with a partial PATCH that changes only the fields you send, like label, options, or currency - [List CRM Companies](https://developer.zeeg.me/api/crm/list-crm-companies.md): List paginated CRM company records in your Zeeg workspace, sorted by creation date, with each company's custom attributes included via the CRM API - [Get a CRM Company](https://developer.zeeg.me/api/crm/get-a-crm-company.md): Retrieve the full record for a single CRM company by ID with the Zeeg CRM API, including nested social links and custom attributes - [Create a CRM Company](https://developer.zeeg.me/api/crm/create-a-crm-company.md): Create a new company record in your Zeeg CRM with a workspace-unique domain and optional social profile links such as LinkedIn and Twitter. - [Assert a CRM Company](https://developer.zeeg.me/api/crm/assert-a-crm-company.md): Create or update a CRM company in the Zeeg CRM API, matched by domain. Upserts companies for bulk imports and sync jobs without pre-checking. - [Patch a CRM Company](https://developer.zeeg.me/api/crm/patch-a-crm-company.md): Update a CRM company via the Zeeg CRM API by sending only the fields to change, including individual social links; omitted fields stay as-is. - [Delete a CRM Company](https://developer.zeeg.me/api/crm/delete-a-crm-company.md): Delete a CRM company by ID and cascade its notes, activity logs, and relationships via the Zeeg CRM API. Permanent and irreversible. - [List CRM People](https://developer.zeeg.me/api/crm/list-crm-people.md): List CRM person records in a workspace with the Zeeg CRM API, returning paginated, sortable results that include each contact's custom attributes - [Get a CRM Person](https://developer.zeeg.me/api/crm/get-a-crm-person.md): Retrieve a single CRM person record by ID from the Zeeg CRM API, including social links, the linked company, and custom attributes. - [Create a CRM Person](https://developer.zeeg.me/api/crm/create-a-crm-person.md): Create a new person record in the Zeeg CRM API with first or last name, link them to an existing company by UUID, and attach social profile URLs - [Assert a CRM Person](https://developer.zeeg.me/api/crm/update-a-crm-person.md): Create or update a CRM person via the Zeeg CRM API, matching on any standard or custom attribute slug to upsert contacts in bulk imports and sync jobs - [Patch a CRM Person](https://developer.zeeg.me/api/crm/patch-a-crm-person.md): Update a CRM person via the Zeeg CRM API by sending only the contact fields to change, including single social links; the rest stays intact. - [Delete a CRM Person](https://developer.zeeg.me/api/crm/delete-a-crm-person.md): Delete a CRM person by ID via the Zeeg CRM API, also removing their notes, activity logs, and company links. This cannot be undone. - [List CRM Records](https://developer.zeeg.me/api/crm/list-crm-records.md): List paginated records of any custom CRM object in Zeeg by object slug, with sorting and pagination controls for browsing, export, and sync jobs - [Get a CRM Record](https://developer.zeeg.me/api/crm/get-a-crm-record.md): Retrieve a single custom CRM object record by UUID with the Zeeg CRM API, returning all its attribute values keyed by attribute slug - [Create a CRM Record](https://developer.zeeg.me/api/crm/create-a-crm-record.md): Create a new record in a custom Zeeg CRM object by slug, setting typed attribute values that are validated on submit, and get back a generated record UUID - [Assert a CRM Record (Upsert)](https://developer.zeeg.me/api/crm/assert-a-crm-record.md): Upsert a CRM record into a Zeeg custom object: match on an attribute to update an existing record or create a new one. Ideal for sync and bulk imports. - [Patch a CRM Record](https://developer.zeeg.me/api/crm/patch-a-crm-record.md): Update a CRM record by ID via the Zeeg CRM API by sending only the attributes to change; every other field on the record stays untouched. - [Delete a CRM Record](https://developer.zeeg.me/api/crm/delete-a-crm-record.md): Delete a custom object record in the Zeeg CRM API, permanently removing its attribute values, notes, activity logs, and links from related records - [Update a CRM Record Relation](https://developer.zeeg.me/api/crm/update-relation-crm-record.md): Add or remove individual record and team-member links on a relation or user attribute of a Zeeg CRM record without overwriting existing linked IDs - [Routing Forms Overview](https://developer.zeeg.me/api/routing-forms/overview.md): Build and read routing forms and their submissions through the Zeeg API, and map every answer into your own CRM. - [List Routing Forms](https://developer.zeeg.me/api/routing-forms/list-routing-forms.md): List the routing forms in a workspace with the Zeeg API, returning paginated results that carry each form's name, slug, public URL, and status. - [Get a Routing Form](https://developer.zeeg.me/api/routing-forms/get-a-routing-form.md): Get one routing form by ID via the Zeeg API, including its questions in inputs and its routes with the rules that select each destination. - [Create a Routing Form](https://developer.zeeg.me/api/routing-forms/create-a-routing-form.md): Create a routing form with the Zeeg API, setting its name, headline, body, submit button and colours, and returning the form with its default fallback route. - [Update a Routing Form](https://developer.zeeg.me/api/routing-forms/update-a-routing-form.md): Update the settings of a routing form with the Zeeg API. The update is partial, so every field the body leaves out keeps its stored value. - [Replace Routing Form Questions](https://developer.zeeg.me/api/routing-forms/replace-routing-form-questions.md): Replace every question of a routing form with the Zeeg API. The write covers the whole list, so a question the body leaves out is deleted. - [Replace Routing Form Routes](https://developer.zeeg.me/api/routing-forms/replace-routing-form-routes.md): Replace the routes of a routing form with the Zeeg API, sending each answer to a scheduling page, a team, a URL or a message, with an optional fallback. - [Delete a Routing Form](https://developer.zeeg.me/api/routing-forms/delete-a-routing-form.md): Delete a routing form by ID via the Zeeg API, removing its questions, its routes and every submission it holds. This cannot be undone. - [List Routing Form Submissions](https://developer.zeeg.me/api/routing-forms/list-routing-form-submissions.md): List routing form submissions with the Zeeg API, filtering one flat feed by form, creation time, and destination type, with each answer in both display and raw form. - [Get a Routing Form Submission](https://developer.zeeg.me/api/routing-forms/get-a-routing-form-submission.md): Get one routing form submission by ID via the Zeeg API, with its answers, the route the answers selected, and the UTM and ad-click values captured at submit. - [Delete a Routing Form Submission](https://developer.zeeg.me/api/routing-forms/delete-a-routing-form-submission.md): Delete a routing form submission by ID via the Zeeg API, removing the submission and every answer it holds. This cannot be undone. ## OpenAPI Specs - [openapi](/openapi.yaml)