Skip to content

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

FieldTypeRequiredNotes
namestring≤120 chars
phoneNumberstringThe gate’s GSM module number
locationstring≤200 chars
descriptionstring≤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.