Gates
Base URL: https://api.gatevia.app
The gate object
{ "id": "665f1c2ab9d1a2c3d4e5f601", "name": "Main entrance", "phoneNumber": "+40712345678", "location": "12 Florilor Street", "description": null, "isActive": true, "openCount": 42, "lastOpenedAt": "2026-07-10T18:03:12.000Z", "createdAt": "2026-06-01T09:00:00.000Z"}List gates
GET /api/v1/gates — scope gates:read
Returns { "gates": [ … ] }.
Create a gate
POST /api/v1/gates — scope gates:write
| Field | Type | Required | Notes |
|---|---|---|---|
name | string | ✓ | ≤120 chars |
phoneNumber | string | ✓ | The gate’s GSM module number |
location | string | ✓ | ≤200 chars |
description | string | — | ≤500 chars |
Returns 201 { "gate": { … } }. Subject to your plan’s gate limit
(plan_limit_reached otherwise). Remember to whitelist GateVia’s caller
numbers in the GSM module — same as when adding a gate from the dashboard.
Update a gate
PATCH /api/v1/gates/:gateId — scope gates:write
Any subset of name, phoneNumber, location, description, isActive.
Returns { "gate": { … } }.
Deactivate a gate
DELETE /api/v1/gates/:gateId — scope gates:write
Soft-deletes the gate. Returns 204.
Open a gate
POST /api/v1/gates/:gateId/open — scope gates:open
Physically opens the gate by placing the GSM call. Requires the explicit
gates:open scope and is rate-limited to 10/min.
{ "opened": true, "openingId": "665f…" }Failures return 502 open_failed with the reason. Every attempt is
recorded in openings history.