fullstreak
One calendar9 minute read

Mews API: how to build a direct booking page

Christian, Co-founder, Fullstreak; co-owner, MINT @Naschmarkt, Vienna

Published Updated
At a glance
Who this is for
Operators selling the same unit on more than one channel, who have been caught out once already.
What you get
The developer's read on the Mews API, and the owner's. Two references at docs.mews.com, a public demo environment to build against, certification before a production key, an access token per building, and a reservation state that holds the room while the guest pays.
In this piece
5 sections, 9 minute read
Published
Updated
Filed under
One calendar

The developer building your booking page on Mews works from two references, both at docs.mews.com. Between them a checkout can do the whole job: show what a property has free, hold the room while the guest finds a card, take the money and confirm the stay. The Booking Engine API is the narrow one, and Mews describes it as the way an outside application gets the rooms or spaces a property offers, checks whether they are free, and creates reservations. The Connector API carries the rest: whether a booking is holding, confirmed or canceled, the payment requests, and the messages Mews sends your server when any of that changes. For the owner paying for the work, two facts move the launch date. Mews reads and certifies the integration before your developer gets a production key, and every building you add needs a key of its own.

You can build against Mews before you have an account

Mews runs a demo environment at api.mews-demo.com, with test credentials printed in the documentation and nothing to register for. A developer can create a working reservation on it in an afternoon and show you the flow before a contract exists. Mews is blunt about what that environment is: "The demo environments are completely public and NO REAL DATA should be used for any reason." Partners who want a demo property of their own fill in a form and get one.

Going live takes two credentials, and every request your site makes carries both of them. A token is a long string your code sends with every call, so Mews knows who is asking and about which property. The client token identifies your integration, and Mews says it "will be provided to you by our integration team upon successful certification". Certification means Mews reads your integration before it goes live. The process "aims to confirm that the integration's API requests are accurate according to the Mews Connector API specifications". You get there by building the integration, testing it against the demo environment, then filling in a form that names the operations you call and why you call them. No turnaround time is published, so put it in the schedule as a step of unknown length.

The second token comes from the property itself. Mews calls it an access token and describes it as "unique to the connection with a property (referred to as an enterprise in the API)", issued by whoever administers that property. One token covering a whole group exists, giving access "to all of the enterprises or properties within scope of the portfolio, rather than just to a single enterprise", and the same page adds that the Multi-Property feature "is not available for all customers, it depends on system configuration". Ask Mews whether yours is one of them before anybody prices a second building, because the answer decides whether your developer maintains one connection or two.

The hold: Mews keeps the room while the guest pays

Mews can hold the room for you, which most systems leave to your developer to build. A reservation can be created in the Optional state, defined in the reference as "confirmed by enterprise but not by the guest (the enterprise is holding resource for the guest)", and the same call carries a ReleasedUtc, the "date when the optional reservation is released in UTC timezone". UTC is the universal clock the API works in, so your developer converts it to local time before anybody sees it. Your code picks that moment: ten minutes, an hour, whatever your card step really takes. Mews confirms a reservation "only if all confirmation conditions are met (the reservations have the Optional state)", so a hold that has already passed its release time cannot be turned into a booking by a late callback.

A payment request carries one of four statuses, Pending, Completed, Canceled or Expired, so the charge expires on a clock of its own as well, and Mews is exact about the rule that catches people: "Only payment requests which are in Pending state can be canceled."

If you are still choosing the system underneath, the other two handle this moment differently. Guesty's checkout starts from a quote that guarantees the price for 24 hours while its documentation says nothing about the dates coming off sale, and Hostaway deletes the reservation when the card is refused in its card validation flow. On Mews the room is off sale for the window you set. A guest who wanders off at the card step leaves a hold that expires on its own.

What you want to do What Mews gives you
Create the booking from your own pages An add call that takes up to 1,000 reservations and books them as a single group
Hold the room while the guest pays The Optional state, with a release time your own call sets
Charge the card A payment request that expires by itself, cancelable only while it is Pending
Hear about a change without asking An automatic message to your server the moment a booking changes, re-sent a few minutes later if the first attempt fails and dropped after that
Get a production key A client token after certification, plus an access token from each property
Read the reference docs.mews.com: Booking Engine API for the checkout, Connector API for everything else

Rows read on Mews's own documentation pages, checked on September 2026.

What your server has to get right

A webhook is an automatic message one system sends another the moment something changes. Mews delivers those to a web address you register with it, or over a connection it keeps open to your server. One documented behavior catches most new integrations. A newly created record arrives as two separate events. Mews works the example through a customer, who turns up as both a CustomerAdded and a CustomerUpdated event carrying the same CustomerId, and its instruction is to "ensure that you process each entity only once". Write the code that receives them so a second copy of a message changes nothing at all.

The webhooks FAQ sets out the retry rules in one paragraph. Your server "must respond in a timely manner (within 5 seconds)", a failed delivery "will be re-sent after a few minutes", and one that still has not landed "will be discarded". Nothing afterward tells you which message you lost. Guesty publishes a retry chain of about 27 hours and switches an address off after 5 days of failures, and Hostfully's own people confirmed to us that it does not retry a failed delivery at all, so Mews sits between the two with less written down than either. Read your reservations back on a timer and compare them against what your own database believes, because that sweep is the only thing that catches a message nobody delivered.

Mews Payments Checkout runs in the guest's browser as a single flow. A figure that lives in a browser can be changed there before it reaches you, so your own server has to compare what was charged against the price you quoted.

A Mews checkout runs in this order:

  1. Price the stay.
  2. Create the reservation as Optional, with a release time on it.
  3. Raise the payment request and take the card while it sits in Pending.
  4. Confirm the reservation.
  5. Compare the charged amount with your own record before the guest gets a confirmation email.

The duplicate we paid for, on our own software

At MINT @Naschmarkt, our own serviced apartments in Vienna, the property system we run sent the same booking notice twice. Our invoicing code checked whether an invoice already existed, found none and wrote one, while the second copy of the notice arrived mid job and did exactly the same thing. A few guests received the same invoice three times before we caught it. The fix was to mark the booking as taken in one step that nothing else can interrupt, and write the invoice after that. A later copy of the notice finds the mark and stops. Mews at least warns you this is coming. Our system did not, and we heard about it from a guest.

What it costs, and whether to build at all

Mews publishes no price. Its pricing page names three plans, Essentials, Advanced and Enterprise, and puts a quote form behind each one, so the first number you hear comes from a salesperson.

Mews now sells a channel manager of its own, described on its page as "Mews Channel Manager, powered by SiteMinder. Built into Mews" and claiming more than 400 channels, while the Mews marketplace still lists outside ones beside it. Ask the salesperson which plan includes that channel manager, and which plan includes the booking engine, because neither carries a published number. If it turns out you need a standalone one, what the standalone channel managers actually cost opens at $135 a month for a five room property on SiteMinder.

Mews documents three routes to a booking on your own site: a page Mews hosts and you link to, a widget you embed, and the API build. An owner selling most nights through Booking.com and Airbnb, with nobody on call when a checkout breaks on a Friday evening, should switch on the hosted page or the widget and put the money into photographs instead. The build earns its keep when the checkout has to look and behave like the rest of your site, and when the guest list has to stay with you. A website builder or a build sets the two routes side by side with prices.

If you do build, somebody has to own it after launch: the holds nobody finished, the repeated messages, and the sweep that catches what never arrived. Certification sits in that budget too, between a finished integration and a live one.

We turn down properties booking under roughly $350,000 a year, because at that volume the commission you save will not pay for a build in its first year, and our about page puts the same number in writing. Above it, if a Mews quote or a build estimate is in front of you, send it over with the number of units you run and we will say which parts of it Mews already covers. Book a call.

Questions operators ask

Where is the Mews API documentation?
The documentation is at docs.mews.com, split into two references. The Booking Engine API covers what a booking site needs: the rooms a property offers, whether they are free, and creating the reservation. The Connector API covers the rest: whether a booking is holding, confirmed or canceled, the payment requests, the event messages and the rules for a group of buildings.
How do I get a Mews API key?
You need two tokens and they come from different places. Mews's integration team issues the client token to your integration once it has passed certification, and the administrator of each property issues the access token that scopes you to that building. A group can run on one portfolio token instead, though Mews says the Multi-Property feature depends on system configuration and is not open to every customer.
Is there a Mews test environment?
The demo environment at api.mews-demo.com is open to anybody. It takes test credentials printed in the documentation, with no registration and no cost, so a developer can build and test the whole checkout before you sign anything. Mews states that the demo environments are completely public and no real data should go near them.
Can the Mews API hold a room while the guest pays?
Yes. Your call creates the reservation in the Optional state, which Mews defines as the property holding the resource for the guest, and the same call sets the time at which the hold is released. Mews will confirm the reservation only while it is still Optional, and the payment request beside it can be canceled only while it is Pending.
Does Mews tell my site when a booking changes?
Yes. Mews posts an automatic message, a webhook, to a web address you register, or holds a connection open to your server instead. Build around two behaviors: a new record arrives as both an added and an updated event carrying one id, and Mews asks you to process each entity only once; and a delivery counts as failed if your server takes more than 5 seconds to answer, after which Mews re-sends it a few minutes later and discards it if it still has not landed.
Does Mews have its own channel manager?
Mews sells one now. Mews Channel Manager is powered by SiteMinder and built into Mews, and its page claims more than 400 channels, while outside channel managers are still listed in the Mews marketplace. No price is published for any of it, so ask which plan carries it before you compare quotes.
What does the Mews API cost?
Mews publishes no figure for the API or for the software under it. The pricing page lists Essentials, Advanced and Enterprise with a quote form behind each, so the number comes from a sales call. On your side the costs are the build, the wait for certification, and whoever maintains the integration after it goes live.

Who wrote this

Christian

Co-founder, Fullstreak; co-owner, MINT @Naschmarkt, Vienna

I own MINT @Naschmarkt in Vienna with Maxine, and I run Ekamoira, the agency Fullstreak came out of. Almost every booking we took arrived through the platforms, so we built the site that takes the booking, the plumbing that keeps one calendar, and the pages Google and the AI assistants quote. MINT ran it first. Fullstreak is that work, made repeatable for operators like you.

MINT @Naschmarkt, Vienna

Every vendor claim traces to the vendor's own page, checked on the month shown under each table. MINT numbers come from our own books.

See where your own bookings leak.

Twenty minutes on a call. You get a read on where your bookings start today, what the platforms take, and what a direct channel would take to build. It is yours whether or not you hire us.

Ask an assistant about this page

ChatGPTOpensClaudeOpens

The question is written for you. Nothing is sent until you send it.

Share this post

Get the next one by email

New posts when they land, and the numbers behind them. Write to us any time to come off the list.

By subscribing you agree that we store your email address and this consent line. The address is used for the letter alone, and we delete it whenever you ask at hello@fullstreak.com.

Book a call

Twenty minutes, prepared for your property.

Fullstreak, a brand of Ekamoira Digital GmbH, will send you text messages about your enquiry and your call, at most a few a month. Consent is not a condition of any purchase. Message and data rates may apply. Reply STOP to any message to opt out, or HELP for help.

TermsPrivacy