Skip to main content

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: true in the body. Check the body, never the status alone.
  • Most list endpoints are not paginated. GET /properties/get/all returns 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​

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.