Accounts¶
Accounts represent channel connections (e.g., Airbnb, Hostaway, or other PMS accounts) linked to a user.
| Endpoint | Method | Scope | Description |
|---|---|---|---|
/api/v1/users/<user_id>/accounts/ |
GET | user:read |
List accounts for a user |
/api/v1/users/<user_id>/accounts/ |
POST | user:write |
Add an account for a user |
/api/v1/users/<user_id>/accounts/<account_id>/refresh/ |
POST | user:write |
Queue a full refresh for an account |
/api/v1/users/<user_id>/accounts/<account_id>/ |
DELETE | user:write |
Delete an account |
Try it out
Explore parameters, schemas, supported channels with their required credentials, and live requests in the Swagger UI.
List Accounts¶
Returns a paginated list of accounts (channel connections) for the specified user.
Use this endpoint to monitor the background import that starts after an account is created. The response includes sync-status, which can be used to detect whether the account is still queued, in_progress, or completed.
For the end-to-end workflow, see the Partner Onboarding Flow.
Add Account¶
Add a channel connection (account) for a user. Each channel requires specific credentials (API key, client ID/secret, JWT, etc.). The Swagger UI documents the complete list of 50+ supported channels and the credentials each one requires.
User-scoped tokens may call this endpoint, but the bound credential must have global edit or admin permissions.
If channel validation or authentication fails, the API returns 422 Unprocessable Entity with a meta.channel field identifying which channel failed and a meta.code field with the error type.
Creating an account starts a background sync that imports reservation history and creates listings for the connected account.
Refresh Account¶
Queue a full listings and reservations refresh for an existing account.
User-scoped tokens may call this endpoint, but the bound credential must have global edit or admin permissions.
Use this endpoint when you want to manually trigger another import after the account has already been connected, for example after fixing channel-side data issues or when you want to force a fresh sync without reconnecting the account.
The API returns 202 Accepted after the refresh job is queued. The refresh runs asynchronously, so use List Accounts to poll the account's sync-status.
This refresh is prioritized ahead of normal queued work and replaces an existing pending account refresh that has not started yet.
Use the optional recent_sync_threshold_minutes query parameter to control how recently synced listings are skipped during the refresh. The threshold unit is minutes.
- If omitted, the default is
60. - If set to
0, recently synced listings are not skipped and the refresh includes all listings.
On success, the API returns a JSON:API document with meta describing the accepted refresh request and links.related pointing to the account resource you can poll for sync-status.
Delete Account¶
Remove an account (channel connection) for the specified user.
User-scoped tokens may call this endpoint, but the bound credential must have global edit or admin permissions.
Returns 204 No Content on success.