REST API
Create a resource and patch a resource accept
a
bookingStepMinutes of 60 for rooms, conference rooms, event spaces, meeting rooms, phone booths, and studios, next to 5, 10, 15, and
30.
Update plans turns sign-up on with a type, or off, for up to 100 plans in one request, and delete
plans deletes up to 100 plans in one request.REST API
Create a resource and patch a resource accept
a
bookingStepMinutes of 60 for rooms, conference rooms, event spaces, meeting rooms, phone booths, and studios, next to 5, 10, 15, and
30.
Create a booking invites people from outside the location. Each attendee is either an existing
user, { "user": { "id": "…" } }, or a person by email, { "user": { "email": "…", "name": "…", "surname": "…" } }. A person invited
by email is matched to the user with that email or added as a new user, and attends without a membership in the location. An id that
is not an existing user is rejected with the attendeeNotValid error, and an existing user who is not a member of the location is
now kept as an attendee instead of being left out.REST API
Update a subscription and update a subscription
item ignore the deprecated
discounts field of an item when the request
carries grantedDiscounts, so sending an item back as it was returned, with its grantedDiscounts edited, keeps exactly the coupons in
that list. Before, the discounts percentages the response derives from a granted coupon re-created that coupon when grantedDiscounts
was emptied in the same request. A request without grantedDiscounts still applies discounts.REST API
A user whose profile the authorized user may not see is now left out of transactions instead of being returned with
null fields, the
same as in bookings. The user object (customer.user, userCreatedBy, userOwner, a refund’s or a booking’s user) and every reference
to them (userRefOwner, userRefCreator, customerRefCreatedBy, membershipRef, membershipRefCreator) are omitted. Admins of the
location and requests authenticated with an API key still get every user.REST API
Transactions retrieved with an OAuth2 access token respect the privacy settings of the users they embed. When the authorized user is not
an admin of the location, another user’s
name, surname, photoUrl, about, email, and phoneNumber are null unless that user
shares their profile, email, or phone number with them. Requests authenticated with an API key are unchanged. This applies to retrieve
credit transactions, retrieve a credit
transaction, retrieve day pass
transactions, retrieve a day pass
transaction, retrieve money
transactions, retrieve a money
transaction, retrieve scheduled credits
transactions, and retrieve scheduled day pass
transactions.REST API
Retrieve visits filters by visitor with
userRefVisitor, the id of the user who visits, as
returned in each visit’s userRefVisitor.REST API
A booking paid by invoice carries
payments[].method.invoice.invoiceRef, the invoice its invoice item was added to. It is not set while
the item is pending. This applies to get a booking, retrieve
bookings, create a booking, and update a
booking.REST API
List invoice items accepts
invoiceRef to list the items of one invoice, in place of
customerRef or locationRef or together with them. They page and sort like the rest of the list, and the other filters still apply.REST API
List invoice items lists pending invoice items with
pending=true, for one customer with
customerRef or for a whole location with locationRef. List upcoming invoice
items is deprecated: use list invoice items with pending=true and customerRef
instead. It keeps working for existing integrations. Listing the items of one invoice (GET /billing/invoices/v1/{invoiceId}/items) is no
longer in the API reference and keeps working too. In list invoice items, createDate[gte] and createDate[lte] filter by when the item
was created, while status, issueDate[gte], and issueDate[lte] filter by the invoice the item is on.REST API
The OpenAPI spec lists the OAuth2 authorization, token, and refresh URLs on
https://oauth2.spacebring.com/api/oauth2/, the same URLs the
authentication page documents. The https://api.spacebring.com/oauth2/ URLs it listed before
reach the same endpoints and keep working, so existing integrations need no change.REST APIWebhooks
Location
media follows the order administrators arrange the photos and videos in, and the first one is the location’s cover. Media added
since the last arrangement comes first, newest first, which is the order every location returned before. This applies to get a
location, retrieve all locations, and the
location in webhook payloads.REST API
Update a subscription item with
grantedDiscounts now keeps exactly the
coupons in the list, and an empty list removes them all. Before, a coupon the item carried as a product-type percentage discount, the
deprecated discounts field, came back after the update.REST API
A resource can charge different prices on some weekdays.
pricingRules lists the rules, each with the days it covers and the money
and credits tiers that replace the regular ones for a booking starting on one of those days, in the location’s time zone. Pass it when
you create a resource or patch a resource: the
list replaces the current rule, an empty list removes it, and a patch without it keeps it. The list holds at most one rule, a rule must
select at least one day, and a rule keeps only the prices the resource charges, so its money tiers are dropped while money is disabled
and its credits tiers while credits are disabled. Get a resource returns the rules, and
create a booking prices the booking with the rule covering its start day. Dynamic pricing
still applies on top of the day’s tiers.REST API
Invoice items carry
issueDate, when their invoice was issued. It is returned once the item is on an issued invoice: list invoice
items, retrieve an invoice item, retrieve
an invoice, and issue an invoice.REST API
List invoice items accepts
pending. With true it returns only pending items, the ones not
on an invoice and not part of a subscription, and with false only the rest.REST API
A resource can have its own booking window. Create a resource and patch a
resource accept
bookingWindow, and get a resource
and retrieve resources return it. While bookingWindow.enabled is true, minNotice, how
many minutes before it starts a booking has to be made, and bookAhead, how far ahead users can book (oneDay, twoDays, oneWeek,
twoWeeks, oneMonth, threeMonths, sixMonths, oneYear, or unlimited), replace the ones the location sets for the resource type,
and both are required. While it is false, the resource follows its location and keeps its own values. Create a
booking, update a booking, and check resource
availability apply the resource’s window.Webhooks
Location payloads carry how far ahead users can book in new fields,
roomBookAhead, deskBookAhead, officeBookAhead,
parkingBookAhead, and equipmentBookAhead, with the values oneDay, twoDays, oneWeek, twoWeeks, oneMonth, threeMonths,
sixMonths, oneYear, and unlimited. The roomBookingPeriod, deskBookingPeriod, officeBookingPeriod, parkingBookingPeriod, and
equipmentBookingPeriod fields and their BOOKING_PERIOD_* values are deprecated and will be removed. Until then they keep the same
values. See Webhooks.REST API
Invoice items carry the
customer they are billed to, with the company name in title for a company and the member in user, the same
way invoices do. It is returned wherever an invoice item is: list invoice items, retrieve an
invoice item, create an invoice item,
list upcoming invoice items, retrieve the upcoming
invoice, retrieve an invoice, and
issue an invoice.REST API
A membership’s
role is read-only. Administrators are managed on the Administrators page, so create a
membership and update a membership no
longer take role, and role is no longer required on create. A role sent in the request is ignored and never changes the user’s
administrator access. The role returned by retrieve a membership and the other
membership endpoints still says whether the user administers the location, and removing a membership no longer removes that access.REST API
Update a booking can move a booking paid by card or externally to a pricier resource with
resourceRef. The difference is charged as a separate money transaction, the way an extension is: the booking stays tentative while the
charge is pending, and a failed charge returns it to its previous resource and interval. A move to a resource with a lower price is still
rejected with bookingMovePriceMismatch, and a move while an extra charge is pending is rejected with bookingPaymentPending.REST API
Ticket comment and guide attachments can be uploaded through the API. Create an upload for a file of any type up to 50 MB with ticket
comments or guides, send the
file to the presigned URL with the headers returned, then pass the returned key in
activity.attachments when you create a ticket
comment within 25 minutes, or in attachments when you create a
guide or update a guide within an hour. A key that is
unknown, expired, already attached, or uploaded by another network now fails with 400 and the code fileUploadNotFound, where a ticket
comment returned 404 and a guide dropped the attachment, and one whose file is still in transit fails with 409 and
fileUploadPending. See File uploads for the full flow.REST API
Retrieve resource assignments no longer returns an assignment that a
subscription reserved during a checkout that expired without completing. Such a reservation never held the resource, as creating or
updating an assignment already ignored it once expired, but it stayed in the list until it was deleted, which could take days.
REST API
Check-ins are part of the API. Retrieve check-ins lists a location’s check-ins, newest
arrival first, filtered by arrival date,
status, type, or userRef, and get a check-in
returns one by its id. Check in records an arrival for a booking, an event ticket, a visit, or a
member’s subscription, found by its check-in id, by a location and a six-digit code, or by a location and a customerRef, and check
out records the departure. They come with their own OAuth scopes: reading needs checkIns.readonly
or checkIns, and checking in or out needs checkIns. With a bearer token, the user must be an administrator of the check-in’s location.REST API
Contract template files can be uploaded through the API. Create a template upload for
a .docx file of up to 50 MB, send the file to the presigned URL, then pass the returned key as
template.file.key when you create a
template or update a template. A key that is
unknown, expired, already used, or uploaded by another network now fails with 400 and the code fileUploadNotFound instead of 404,
and one whose file is still in transit with 409 and fileUploadPending. An update that replaces the file fails with 409 and the code
conflict when another request replaced it first. See File uploads for the full flow.REST API
Product, resource, guide, and post media and company logos can be uploaded through the API. Create an upload with
products, resources,
guides, posts, or
companies, send the file to the presigned URL, then attach it:
media[0].key on a
product, a key in media on a resource or a post, a Markdown image with the returned url in a guide description, or logo.key on a
company. Guides and posts also take MP4, QuickTime, and WebM videos up to 50 MB. Create a
company and update a company now accept logo,
where null removes it, and companies return logo with its key and url. An attached key that is unknown, expired, or already used
fails with fileUploadNotFound, and one whose file is still in transit with fileUploadPending. See File
uploads for the full flow.REST API
A resource can have up to 10 images.
media lists them in display order, and imageUrl is the URL of the first one, the resource’s
cover. When you create a resource or patch a
resource, media sets the whole list in the order given, so send the current keys in a new
order to reorder the images, or an empty list to remove them all. A patch without media keeps the current images. Before, a patch used
only the first key in media and ignored an empty list. See Get a resource.REST API
Retrieve bookings sorts by cancellation with
order=deleteDate:desc or
order=deleteDate:asc. The list then holds only cancelled bookings, ordered by their deleteDate, and status defaults to canceled.
It works with every lookup the endpoint supports, but not with singleBookings, which returns a validation error as it does for
createDate.REST API
Location and resource schedules can stay open past midnight. A schedule item’s
hours.to is counted from the start of its weekday, so a
day open from 6:00 PM to 2:00 AM returns from: "18:00:00" and to: "26:00:00", at most 24 hours after from. Parse hours.to as a
number of hours and minutes rather than as a time of day. Bookings inside such a day can run past midnight, and a hot desk booking spends
one day pass per seat for each schedule day it covers. See Get a location and Get a
resource.REST APIWebhooks
Orders can carry the
external payment method, which an administrator uses to record a payment collected outside Spacebring, such as cash
or a bank transfer. When getting an order or retrieving orders,
such an order returns payment.method.type as external and the paying customer in payment.method.external.customer. When the payment
is recorded as still owed, payment.status stays pending until it is marked as paid. The shop.order.created and shop.order.paid
webhooks carry the same payment with type set to external.REST API
Update a booking paid by card or externally to extend it or add seats. The added part is
charged as a separate money transaction, so
payments lists one entry per charge, the booking stays tentative while the charge is
pending, and a failed charge returns the booking to its previous interval instead of canceling it. Shortening such a booking is still
rejected with bookingDurationChangeNotAllowed for users and is not refunded for administrators, and a change to the duration or seats
while a payment is pending is rejected with bookingPaymentPending. See Get a booking for the
payments field.Webhooks
The
benefit.application.created payload always includes the benefit object with the applied benefit’s id and title, so an
integration no longer has to treat it as optional. No other field of the payload changes. See Webhooks.REST API
Shop orders paid through a payment gateway are created with the
pending status and move to new once the payment succeeds. Pass
status=pending when you retrieve orders to list them; the default status filter still excludes
them. Updating a pending order fails with a validation error until its payment completes.REST API
Check resource availability before creating a booking. Send the
startDate and
endDate of the slot, plus quantity for seat-based resources such as hot desks, entire to check a whole office, or recurrence RRULE
lines for a repeating slot. The response returns available, and when the slot cannot be booked, a reason with the code and message
the booking would fail with, such as bookingConflict or bookingScheduleConflict. The same capacity, schedule, duration, and booking
window rules as booking creation apply.REST API
Event cover images can be uploaded through the API. Create a media upload to get a
presigned URL, send the file to it, then pass the returned
key as media[0].key when creating or updating an event. Creating or
updating an event with a key that is unknown, not yet uploaded, or expired now fails with the fileUploadNotFound code, or
fileUploadPending while the file is still in transit, instead of saving the event without an image. See File
uploads for the full flow.REST API
Transactions share one response format across credits, day passes, and money, and money transactions can now be updated and refunded through the API:
- All transaction responses:
customeridentifies the company or user the transaction belongs to,productlinks the transaction to its booking, ticket, order, invoice, or subscription and carries a displaytitle, anduserCreatedBynames who created it - Credits and day pass transactions:
amountssplits a charge across the expiring and permanent balances it was deducted from - Money transactions:
paymentcarries the payment method, price, surcharge, refunds, dispute, and whether the payment is still refundable, alongside top-levelcurrencyCode,customerName,customerTaxId,customerAddress, andreceiptPdfUrl - New money routes: update a money transaction to approve or cancel a pending external payment, and refund a money transaction fully or partially through the payment gateway it was paid with
membershipRef,companyRef,company,user, anduserOwner— usecustomerandcustomer.userinsteadmembershipRefCreator,userCreator, anduserRefCreator— useuserCreatedByinstead- The
booking,ticket,order,invoice,plan, andcreditPackageembeds — useproductinstead expiringAmountandpermanentAmounton credits transactions — useamountsinsteadpaymentMethod,refund,refunds,billingAddressBy, andbillingAddressToon money transactions — usepayment.method,payment.refunds,locationAddress, andcustomerAddressinsteadmembershipRefandcompanyRefin transaction list queries and in create credit or day pass transaction requests — passcustomerRefinstead
REST API
Create booking requests accept a
paymentMethod with the external type to record a payment collected outside Spacebring. Pass
external.status as succeeded to confirm the booking, or pending to keep it tentative until the payment is marked as paid. Spacebring
issues the invoice once the payment is confirmed.Webhooks
New webhook event types for events, alongside the existing
event.created:event.updated— sent when an event’s details changeevent.canceled— sent when an event is canceledevent.deleted— sent when an event is deleted
cancelDate and deleteDate. Select the new event types for your endpoint in Network Settings > Developers.REST API
Support ticket assignees are now users instead of memberships. The membership-based assignee fields are deprecated and will be removed in a future release:
- Ticket responses:
membershipAssigneeandmembershipRefAssigneeare deprecated — useuserAssigneeanduserRefAssigneeinstead - Ticket activity responses:
data.membershipAssigneeanddata.previousAttributes.membershipAssigneeare deprecated — usedata.userAssigneeanddata.previousAttributes.userAssigneeinstead - Update ticket assignee requests:
ticket.membershipRefAssigneeis deprecated — passticket.userRefAssigneewith the ID of the user to assign, ornullto unassign
REST API
New API routes for floors management:
- Retrieve a list of all floors
- Delete a floor
- Retrieve, create, get, update, and delete coupons
- Retrieve, create, get, and archive promocodes
- Retrieve promocode redemptions
REST API
New API routes for credit notes management:
- Issue, preview and update credit notes
- Update, delete, duplicate, issue, void, and resend invoices
- Cancel a payment on an invoice
- Retrieve an upcoming invoice preview
- Search invoices by code or number
- Retrieve, update, and delete invoice items
- List invoice items by invoice, scheduled, or upcoming
- Retrieve a single guide or list of all guides
- Add, modify, and delete guides
REST API
Manage subscriptions with ease! With new API routes, you can:
- Retrieve subscription data
- Add, modify, and delete subscription items
- Patch subscription details, as advance invoicing, pause payment collection etc.
REST API
Check out new ways to manage visitors! With new API routes, you can:
- Check in and check out visitors
- Create visit requests
- Approve and reject requests
- Register contacts
REST API
Comprehensive social feed management capabilities:• Feed Posts Management
– Create, retrieve, update, and delete feed posts seamlessly
– Browse all posts with filtering by hashtags and pagination• Interactive Comments System
– Add, retrieve, and manage comments on any feed post
– Enable rich discussions and community engagement• Social Engagement Features
– Like and unlike both posts and commentsBuild dynamic social experiences and foster community engagement with these powerful feed management tools!
REST API
Introducing comprehensive support and subscription management capabilities:• Support
– Open, update, and close support tickets effortlessly• Subscription Plans
– Create, modify, and monitor customer plansUnlock new possibilities for customer service and subscription management with these robust tools!
REST API
Major expansion in product catalog and event coordination features:• Product & Order Management
– Add or modify products with a single call
– Place, track, and update orders seamlessly• Event Management
– Schedule events, manage details, and publish updatesTransform how you handle events—streamline operations like never before!
REST API
Powerful new capabilities for benefits administration and visitor insights:• Benefits & Applications
– Create, organize, and update benefit and their categories
– Submit and review user applications in one go• Visitor Tracking
– Capture and query visitors dataEnhance your platform with better benefits and visitor management!
REST APIWebhooks
Introducing New API & WebhooksWe’re thrilled to introduce the newly redesigned Spacebring API, built from the ground up to help you create more powerful, seamless integrations and automated workflows.Expanded Endpoints: Take advantage of the restructured existing endpoints and many new ones to build more flexible, custom integrations.
Webhook Support: Receive real-time event notifications, enabling faster and more responsive interactions.
Improved Documentation: Get up and running with the development process more quickly thanks to helpful explanations in our newly added guides.