Developers
Built API-first.
A REST API with JSON, signed requests and a free test key. Your partners book through the same engine your staff use.
Request
POST https://api.dmcengine.com/v1/searches
Authorization: Bearer tp_test_7Hq2Rk...
X-Timestamp: 1793011267
X-Signature: 4c1f9a...e9
{
"product_type": "hotel",
"place_id": "lisbon",
"check_in": "2026-11-22",
"check_out": "2026-11-29",
"rooms": [{ "adults": 2, "child_ages": [4, 9] }],
"boards": ["HB"],
"currency": "EUR",
"nationality": "DE",
"residence": "DE",
"locale": "de-DE"
}Response200 OK
{
"search_id": "srch_01JDQ8M4",
"completeness": "complete",
"results": [
{
"offer_id": "off_8F3KX2",
"product_type": "hotel",
"title": "Tidemark Hotel, Family Room, Half board",
"total": { "amount_minor": 112400, "currency": "EUR" },
"availability": "available",
"expires_at": "2026-10-26T12:15:00Z"
}
]
}Request
POST https://api.dmcengine.com/v1/bookings
Authorization: Bearer tp_test_7Hq2Rk...
Idempotency-Key: demo-hotel-1
X-Timestamp: 1793011272
X-Signature: 9be07d...31
{
"valuation_id": "val_4N7TQ2",
"accepted_total": { "amount_minor": 112400, "currency": "EUR" },
"terms_hash": "b7e1c0...5a",
"passengers": [
{ "type": "adult", "first_name": "Fictional", "last_name": "One" },
{ "type": "adult", "first_name": "Fictional", "last_name": "Two" },
{ "type": "child", "first_name": "Fictional", "last_name": "Three", "age": 9 },
{ "type": "child", "first_name": "Fictional", "last_name": "Four", "age": 4 }
],
"external_reference": "DEMO-HOTEL-1"
}Response201 Created
X-Request-Id: req_7f2a91c4
{
"kind": "booking",
"booking": {
"reference": "BK-004218",
"external_reference": "DEMO-HOTEL-1",
"version": 1,
"status": "confirmed",
"total": { "amount_minor": 112400, "currency": "EUR" },
"created_at": "2026-10-26T10:41:12Z"
}
}If the supplier's answer is lost202 Accepted
{ "kind": "operation",
"operation": { "code": "SUPPLIER_OUTCOME_UNKNOWN" } }Quote request
POST https://api.dmcengine.com/v1/bookings/BK-004211/cancellation-quotes
Authorization: Bearer tp_test_7Hq2Rk...
X-Timestamp: 1793011938
X-Signature: 2f8a61...07
{}Quote response200 OK
X-Request-Id: req_3e8b05d2
{
"cancellation_quote_id": "cq_7K2PZ8",
"penalty": { "amount_minor": 0, "currency": "AED" },
"refundable": { "amount_minor": 118000, "currency": "AED" },
"terms_hash": "5d02af...c3"
}Cancellation request
POST https://api.dmcengine.com/v1/bookings/BK-004211/cancellations
Authorization: Bearer tp_test_7Hq2Rk...
Idempotency-Key: demo-cancel-1
X-Timestamp: 1793011940
X-Signature: d41e9c...6b
{
"cancellation_quote_id": "cq_7K2PZ8",
"expected_booking_version": 1,
"accepted_penalty": { "amount_minor": 0, "currency": "AED" },
"terms_hash": "5d02af...c3"
}Cancellation response200 OK
X-Request-Id: req_5d1c80a3
{
"kind": "booking",
"booking": {
"reference": "BK-004211",
"version": 2,
"status": "cancelled"
}
}From search to cancellation.
Real paths and field names from the engine's OpenAPI 3.1 description. Values in the examples are demo data.
- POST
/v1/searchesSearch - POST
/v1/offers/{id}/revalidateRevalidate an offer - POST
/v1/bookingsBook - GET
/v1/bookings/{id}Read a booking - POST
/v1/bookings/{id}/cancellation-quotesQuote a cancellation - POST
/v1/bookings/{id}/cancellationsCancel - GET
/v1/productsList products
- OpenAPI 3.1 description
"openapi": "3.1.0" - Test and live keysStart on a free test key.
Bearer tp_test_7Hq2Rk... - Request ids on every change
X-Request-Id: req_7f2a91c4 - Signed requestsEvery partner API request is signed and checked for freshness and replay.
X-Timestamp · X-Signature
Request log.
Monday 26 Oct 2026, demo times: a search, two bookings and a cancellation, including a supplier answer that was lost.
- 10:41:07POST
/v1/searches14 offers, complete200 - 10:41:09POST
/v1/offers/off_8F3KX2/revalidateEUR 1,124.00 held200 - 10:41:12POST
/v1/bookingsBK-004218 confirmedreq_7f2a91c4201 - 10:44:30POST
/v1/bookingsSUPPLIER_OUTCOME_UNKNOWN, BK-004213req_9b26e4f7Checking supplier202 - 10:46:02WORKER
reconcile.bookingBK-004213 confirmed, supplier asked 1 timeConfirmed after check - 10:46:03WEBHOOK
booking.confirmedBK-004213, delivered to the partner's webhook200 - 10:52:18POST
/v1/bookings/BK-004211/cancellation-quotesPenalty AED 0.00req_3e8b05d2200 - 10:52:20POST
/v1/bookings/BK-004211/cancellationsRefund AED 1,180.00 recordedreq_5d1c80a3200
Read next
Bring one hotel contract to your demo. We will load it and price it with you.
Book a demoOr write to hello@dmcengine.com