Developers
Build on Meetrays.
A clean, REST-flavored HTTP API. Bearer-token auth, JSON in, JSON out. Webhooks for everything that happens on a booking.
Bearer auth
Generate a key from your dashboard. Send it as Authorization: Bearer ... on every request.
REST endpoints
JSON in, JSON out. Standard verbs. No GraphQL, no SDK lock-in. Curl-ready.
Webhooks
booking.created, booking.cancelled, booking.rescheduled, no_show.flagged. Signed payloads.
Quickstart
Create a booking in three lines.
Same response shape as our internal calls. No SDK required — ship it from anywhere that speaks HTTP.
# List your bookings curl https://meetrays.com/api/v1/bookings \ -H "Authorization: Bearer $MEETRAYS_KEY" # Get one booking curl https://meetrays.com/api/v1/bookings/<uid> \ -H "Authorization: Bearer $MEETRAYS_KEY"
Reference
Endpoints.
Auth
/api/v1/meSanity-check the bearer token — returns the owner of the key.Bookings
/api/v1/bookingsList bookings. Filters: ?status=, ?limit=, ?cursor=./api/v1/bookings/{uid}Fetch a single booking by its public uid.Event types
/api/v1/event-typesList your personal event types.Webhooks
Real-time events.
Add an endpoint in Settings → Webhooks, pick the events you care about, and we'll POST signed JSON payloads to your URL.
booking.createdA new booking was made.
booking.confirmedPending → confirmed (manual review flows).
booking.rescheduledTime changed; payload includes old + new.
booking.cancelledCancelled by attendee or host.
booking.completedMeeting end time has passed without cancellation.
Verifying signatures
Every delivery includes X-Meetrays-Signature and X-Meetrays-Event. The signature is sha256=<hmac> of the raw body using the signing secret shown next to each endpoint in the dashboard.
// Node.js — verify on receive
import { createHmac, timingSafeEqual } from "node:crypto"
function verify(secret, rawBody, header) {
const expected = "sha256=" + createHmac("sha256", secret)
.update(rawBody)
.digest("hex")
return timingSafeEqual(
Buffer.from(expected),
Buffer.from(header ?? "")
)
}Already have an account?
Generate a key from Settings → API keys and you're live. Otherwise email us to get an invite.