Quickstart
1. Get an API key
Ask the MTRO PRO account owner to create a key for you. In the admin panel at mtropro.app they go to Settings → API keys, create a key, and choose its scopes.
The key is shown once, at creation. It is stored hashed, so nobody can read it back afterwards — if it is lost, it has to be replaced.
Keys are prefixed with mtro_ followed by 64 hexadecimal characters.
An account owner who already holds a key with the api_keys.manage scope can
also create keys over the API:
curl -X POST 'https://core.mtro.app/api-keys/generate' \
-H 'Authorization: Bearer mtro_your_api_key' \
-H 'Content-Type: application/json' \
-d '{
"name": "Integration key",
"scopes": ["properties.read", "bookings.read", "guests.read"],
"expiresAt": 1790000000000
}'
scopes and expiresAt are optional for a normal account and required for an
administrator account. See Authentication and scopes
for what happens when you omit them.
2. Check that the key works
curl 'https://core.mtro.app/status'
/status needs no key and confirms the API is reachable. Then try an
authenticated call:
curl 'https://core.mtro.app/properties/get/all' \
-H 'Authorization: Bearer mtro_your_api_key'
You should get back a JSON object with a properties array. If the key is
missing, wrong, revoked, or expired you get HTTP 401 with:
{ "message": "Unauthorized.", "error": true }
3. Read this before you write a client
Two things will surprise a client written on autopilot:
- Some errors arrive with HTTP 200 and
error: truein the body. Check the body, never the status alone. - Most list endpoints are not paginated.
GET /properties/get/allreturns every property the key can see, in one response. Only conversations, logs, and notifications take page parameters.
Both are covered in Errors and conventions.
4. Explore
- The full endpoint list is in the API reference.
- The OpenAPI document is at
https://core.mtro.app/openapi.json— load it into Postman, Insomnia, or a code generator. - There is a live Swagger console at
https://core.mtro.app/api-docs. Click Authorize, paste your key, and call endpoints from the browser.
Development environment
https://dev.core.mtro.app runs the same API against development data. Keys are
not shared between environments: a production key does not work on
development, and the reverse. Ask for a separate development key if you want a
safe place to test writes.