Skip to content

Your garage management, open to other programs

The API brings data from Manage²Hero into Excel, your accounting software or your website. Each program signs in with its own API token and only ever sees the data of your organization.

  • Base URLhttps://api.manage2hero.com/v1
  • FormatJSON
  • Sign-inAuthorization: Bearer …
  1. Create a tokenA person with administrator rights creates it under Administration → API access. The token is shown only once.
  2. Store the token in the programBest as the environment variable M2H_API_TOKEN, never in the source code.
  3. Fetch your garage parksThe request next to this returns your garage parks. Copy, paste, done.
Read the quickstart
curl
curl -s "https://api.manage2hero.com/v1/locations" \
  -H "Authorization: Bearer $M2H_API_TOKEN"
More languages: PowerShell, Node.js, Python
PowerShell
$headers = @{ Authorization = "Bearer $env:M2H_API_TOKEN" }
Invoke-RestMethod -Uri "https://api.manage2hero.com/v1/locations" -Headers $headers
JavaScript (Node.js 18+)
const res = await fetch('https://api.manage2hero.com/v1/locations', {
  headers: { Authorization: `Bearer ${process.env.M2H_API_TOKEN}` },
});
const body = await res.json();
if (!body.success) throw new Error(`${body.error.code}: ${body.error.message}`);
const data = body.data; // continue processing here
Python (requests)
import os, requests

res = requests.get(
    "https://api.manage2hero.com/v1/locations",
    headers={"Authorization": f"Bearer {os.environ['M2H_API_TOKEN']}"},
    timeout=30,
)
body = res.json()
if not body["success"]:
    raise RuntimeError(f"{body['error']['code']}: {body['error']['message']}")
print(body["data"])
Response200 OK · JSON
{
  "success": true,
  "data": {
    "items": [
      { "id": "6a1f0c2e-…", "code": "HH01",
        "name": "Garagenpark Hamburg Nord",
        "active": true, … }
    ],
    "next_cursor": null
  },
  "request_id": "req_4n2Xc9…"
}

What the API can do today

The “Permission” column names what the token must be allowed to do for the request. The API is extended step by step; new things are listed in the changelog.

Garage parks and occupancy

How many garages are rented, and how has that developed?

TaskEndpointPermission
List garage parks
GET/v1/locations
locations:read
Occupancy rate of all garage parks
GET/v1/occupancy
occupancy:read
Occupancy rate of one garage park
GET/v1/locations/{id}/occupancy
occupancy:read
Occupancy rate history
GET/v1/occupancy/history
occupancy:read

Tenants and import

Read current tenants and take over existing tenants from another system. Guide

TaskEndpointPermission
Current tenants of a garage park
GET/v1/locations/{id}/tenants
tenants:read
Submit existing tenants to the import
POST/v1/tenant-imports
tenants:import
Status of an import
GET/v1/tenant-imports/{id}
tenants:import
Cancel an import
DELETE/v1/tenant-imports/{id}
tenants:import
Take over an import (create tenants and leases)
POST/v1/tenant-imports/{id}/commit
tenants:import_commit
One tenant
GET/v1/tenants/{id}
tenants:read
Timeline of a tenant
GET/v1/tenants/{id}/timeline
timeline:read

Bookings and revenue

The booking journal and net revenue for your reports.

TaskEndpointPermission
Booking journal
GET/v1/bookings
bookings:read
Net revenue by month, document type or garage park
GET/v1/revenue
bookings:read
Change sync bookingsStarting cursor, changes since the cursor and lookup by ID
/v1/bookings/changes/cursor
/v1/bookings/changes
/v1/bookings/by-ids
bookings:read
DATEV exports (history)
GET/v1/datev/exports
datev:export
Request a DATEV export
POST/v1/datev/exports
datev:export
Status of a DATEV export
GET/v1/datev/exports/{id}
datev:export
Download link for a DATEV export
POST/v1/datev/exports/{id}/download-link
datev:export

Invoices and payments

Issued invoices and received payments.

TaskEndpointPermission
Invoices
GET/v1/invoices
invoices:read
One invoice with line items
GET/v1/invoices/{id}
invoices:read
Incoming payments
GET/v1/payments
payments:read
Change sync invoicesStarting cursor, changes since the cursor and lookup by ID
/v1/invoices/changes/cursor
/v1/invoices/changes
/v1/invoices/by-ids
invoices:read
Change sync incoming paymentsStarting cursor, changes since the cursor and lookup by ID
/v1/payments/changes/cursor
/v1/payments/changes
/v1/payments/by-ids
payments:read

Open items and dunning

What is still unpaid, and where does each lease stand in the dunning process?

TaskEndpointPermission
Open items
GET/v1/open-items
open_items:read
Open items: totals and aging
GET/v1/open-items/summary
open_items:read
Dunning status per lease
GET/v1/dunning/leases
dunning:read
Issued dunning notices
GET/v1/dunning/notices
dunning:read
One dunning notice with its items
GET/v1/dunning/notices/{id}
dunning:read
Change sync dunning noticesStarting cursor, changes since the cursor and lookup by ID
/v1/dunning/notices/changes/cursor
/v1/dunning/notices/changes
/v1/dunning/notices/by-ids
dunning:read

Documents

Retrieve tenant and location documents, with short-lived download links.

TaskEndpointPermission
Change sync documentsStarting cursor, changes since the cursor and lookup by ID
/v1/documents/changes/cursor
/v1/documents/changes
/v1/documents/by-ids
documents:read
Documents
GET/v1/documents
documents:read
One document (metadata)
GET/v1/documents/{id}
documents:read
Download link for a document
POST/v1/documents/{id}/download-link
documents:download

Emails

Which system emails a tenant received, with status and, on request, the full text.

TaskEndpointPermission
Change sync emailsStarting cursor, changes since the cursor and lookup by ID
/v1/emails/changes/cursor
/v1/emails/changes
/v1/emails/by-ids
emails:read
Email history of tenants
GET/v1/emails
emails:read
One email
GET/v1/emails/{id}
emails:read

Contracts

Contracts, amendments, terminations and signatures. Guide

TaskEndpointPermission
Change sync contractsStarting cursor, changes since the cursor and lookup by ID
/v1/contracts/changes/cursor
/v1/contracts/changes
/v1/contracts/by-ids
contracts:read
Contracts
GET/v1/contracts
contracts:read
One contract
GET/v1/contracts/{id}
contracts:read

Units and garages

Individual units with status, rent and current tenant. Guide

TaskEndpointPermission
Units and garages
GET/v1/units
units:read
One unit
GET/v1/units/{id}
units:read

Damage reports

Read and create damage reports and set their status. Guide

TaskEndpointPermission
Change sync damagesStarting cursor, changes since the cursor and lookup by ID
/v1/damages/changes/cursor
/v1/damages/changes
/v1/damages/by-ids
damages:read
Damages (case files)
GET/v1/damages
damages:read
One damage
GET/v1/damages/{id}
damages:read
Create a damage at a unit
POST/v1/damages
damages:write
Set the status of a damage
PATCH/v1/damages/{id}/status
damages:write

Utilities and meters

Read and enter statements, meters and meter readings. Guide

TaskEndpointPermission
Electricity and water statements
GET/v1/utility/statements
utility:read
Meters
GET/v1/meters
utility:read
Create a meter
POST/v1/meters
utility:write
Readings of a meter
GET/v1/meters/{id}/readings
utility:read
Enter a meter reading
POST/v1/meters/{id}/readings
utility:write

Appointments

Read and create viewings and handovers. Guide

TaskEndpointPermission
Appointments
GET/v1/appointments
appointments:read
One appointment
GET/v1/appointments/{id}
appointments:read
Create an appointment
POST/v1/appointments
appointments:write

Prospects and waiting list

Read enquiries and submit them from your own website. Guide

TaskEndpointPermission
Prospect inquiries
GET/v1/prospects
prospects:read
One prospect inquiry
GET/v1/prospects/{id}
prospects:read
Waiting list
GET/v1/waitlist
prospects:read
Submit a rental inquiry
POST/v1/prospects
prospects:write

Contractors and orders

Read contractors and their orders. Guide

TaskEndpointPermission
Contractors
GET/v1/contractors
contractors:read
Orders to contractors
GET/v1/contractor-orders
contractors:read

Webhooks

Set up notifications for events instead of polling. Webhooks handbook · Integration checklist

TaskEndpointPermission
List webhooks
GET/v1/webhooks
webhooks:manage
Create a webhook
POST/v1/webhooks
webhooks:manage
One webhook
GET/v1/webhooks/{id}
webhooks:manage
Update a webhook
PATCH/v1/webhooks/{id}
webhooks:manage
Delete a webhook
DELETE/v1/webhooks/{id}
webhooks:manage
Rotate the signing secret
POST/v1/webhooks/{id}/rotate-secret
webhooks:manage
Send a test event
POST/v1/webhooks/{id}/test
webhooks:manage
Delivery history of a webhook
GET/v1/webhooks/{id}/deliveries
webhooks:manage
Send a delivery again
POST/v1/webhooks/{id}/deliveries/{delivery_id}/retry
webhooks:manage
Send failed deliveries again
POST/v1/webhooks/{id}/deliveries/retry-failed
webhooks:manage
Sandbox: simulate an event
POST/v1/sandbox/events
webhooks:manage

Access log

Which requests your API tokens have made.

TaskEndpointPermission
Access log of API calls
GET/v1/usage
usage:read
Data protectionYou decide which programs receive which data. Only transfer tenant data to systems for which you have a legal basis, and grant each program only the permissions it really needs.

Security & support · Threat model · Status · Changelog