Accounts and sub-accounts
An account holds maps, content catalogs, links, kiosks, users and API keys. A sub-account is a separate account owned by yours: its own maps and content, its own users, one bill. Use one per client, event, tenant or site. See Sub-accounts and users.
A request applies to the key's own account, or to the sub-account named in the Waygo-Account header. Scopes: accounts:read, accounts:write, accounts:delete.
ENDPOINTS
GET /accounts/v1
PUT /accounts/v1
POST /accounts/v1
GET /accounts/v1/sub-accounts
DELETE /accounts/v1
POST /accounts/v1/users
GET /accounts/v1/users/:user_id
DELETE /accounts/v1/users/:user_id
The account object
- Name
account_id- Type
- string
- Description
- The account's ID (the value of the
Waygo-Accountheader).
- Name
account_name- Type
- string
- Description
- Its name.
- Name
account_type- Type
- 'Enterprise' | 'Business' | 'Vendor'
- Description
- Its plan type. Sub-accounts are
BusinessorVendor.
- Name
contact_info- Type
- object | null
- Description
- Free-form contact details.
- Name
is_active- Type
- boolean
- Description
- Whether the account is active.
- Name
features- Type
- object
- Description
- Which optional features are on, for example
reservationsandconnections.
- Name
limits- Type
- object
- Description
- The account's publish allowance:
{ publish: { content_publishes_per_day, min_interval_seconds } }.
- Name
created_at / updated_at / last_active_at- Type
- timestamp
- Description
- Timestamps.
The account object
{
"account_id": "dash-dev-acct",
"account_name": "Acme Expo Team",
"account_type": "Business",
"contact_info": { "email": "ops@acme.example" },
"is_active": true,
"features": { "reservations": true, "connections": true },
"limits": { "publish": { "content_publishes_per_day": 12, "min_interval_seconds": 600 } },
"created_at": "2026-07-01T09:00:00",
"updated_at": "2026-09-18T19:44:21",
"deleted_at": null,
"last_active_at": "2026-09-18T19:44:21"
}
Retrieve your account
The account the request applies to.
GET /accounts/v1
curl https://api.waygomaps.com/accounts/v1 \
-H "Waygo-API-Key: $WAYGO_API_KEY"
Update your account
account_name and contact_info. Only the fields you send change.
PUT /accounts/v1
curl -X PUT https://api.waygomaps.com/accounts/v1 \
-H "Waygo-API-Key: $WAYGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "account_name": "Acme Events", "contact_info": { "email": "ops@acme.example" } }'
Create a sub-account
A new account owned by yours. Your key works on it with the Waygo-Account header from then on.
Body
- Name
account_name- Type
- string
- Description
- Required, up to 50 characters.
- Name
account_type- Type
- 'Business' | 'Vendor'
- Description
- The sub-account's type. An Enterprise account creates Business or Vendor sub-accounts; a Business account creates Vendor ones.
- Name
contact_info- Type
- object
- Description
- Optional.
POST /accounts/v1
curl -X POST https://api.waygomaps.com/accounts/v1 \
-H "Waygo-API-Key: $WAYGO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "account_name": "Acme Events EMEA", "account_type": "Business" }'
Response (201)
{ "account_id": "3jfhhf99h293y4f93yyfe239y9eyf9eh", "account_name": "Acme Events EMEA", "account_type": "Business", "is_active": true, "…": "…" }
List sub-accounts
The sub-accounts of the account, with their number of maps and users. Paged with skip and limit.
GET /accounts/v1/sub-accounts
curl "https://api.waygomaps.com/accounts/v1/sub-accounts?limit=20" \
-H "Waygo-API-Key: $WAYGO_API_KEY"
Response
{
"sub_accounts": [
{ "account_id": "3jfhhf99…", "account_name": "Acme Events EMEA", "account_type": "Business", "is_active": true, "num_maps": 3, "num_users": 2, "features": { "reservations": false, "connections": true }, "…": "…" }
],
"total": 1, "skip": 0, "limit": 20
}
Delete an account
Deletes the account the request applies to (with Waygo-Account, a sub-account) and everything in it.
There is no undo. Maps, catalogs, kiosks and users of the account are gone.
DELETE /accounts/v1
curl -X DELETE https://api.waygomaps.com/accounts/v1 \
-H "Waygo-API-Key: $WAYGO_API_KEY" \
-H "Waygo-Account: 3jfhhf99h293y4f93yyfe239y9eyf9eh"
Add a user
Give a user (by email) a role on the account. A user who does not exist yet is invited by email.
Body
- Name
user_id- Type
- string
- Description
- The user's email address.
- Name
roles- Type
- string[]
- Description
- One or more of
Owner,Admin,editor,viewer.
POST /accounts/v1/users
curl -X POST https://api.waygomaps.com/accounts/v1/users \
-H "Waygo-API-Key: $WAYGO_API_KEY" \
-H "Waygo-Account: 3jfhhf99h293y4f93yyfe239y9eyf9eh" \
-H "Content-Type: application/json" \
-d '{ "user_id": "jordan@acme.example", "roles": ["editor"] }'
Response
201 Created
A user's roles
Every account the user has a role on, with the roles.
GET /accounts/v1/users/:user_id
curl https://api.waygomaps.com/accounts/v1/users/jordan@acme.example \
-H "Waygo-API-Key: $WAYGO_API_KEY"
Response
{
"user_id": "jordan@acme.example",
"accounts": [
{ "account_id": "3jfhhf99…", "account_name": "Acme Events EMEA", "account_type": "Business", "is_active": true, "features": { "…": "…" }, "roles": ["editor"] }
]
}
Remove a user
Removes every role the user has on the account.
DELETE /accounts/v1/users/:user_id
curl -X DELETE https://api.waygomaps.com/accounts/v1/users/jordan@acme.example \
-H "Waygo-API-Key: $WAYGO_API_KEY" \
-H "Waygo-Account: 3jfhhf99h293y4f93yyfe239y9eyf9eh"
Response
204 No Content