Endpoint reference
Every REST endpoint on api.actuallycare.com — 64 operations across 10 resource groups.
The REST API exposes 64 operations across 10 resource groups. All requests use the base URL https://api.actuallycare.com/v1 and authenticate with an API key or JWT.
This reference is generated from the live OpenAPI spec. Machine-readable version: openapi.json.
API Keys#
| Endpoint | Summary |
|---|---|
GET /v1/api-keys | List API keys |
POST /v1/api-keys | Create new API key |
PATCH /v1/api-keys/{id}/scopes | Update API key scopes |
PUT /v1/api-keys/{id}/revoke | Revoke API key |
DELETE /v1/api-keys/{id} | Delete API key |
Appointments#
| Endpoint | Summary |
|---|---|
GET /v1/appointments | List all appointments |
POST /v1/appointments | Create new appointment |
GET /v1/appointments/{id} | Get appointment by ID |
PUT /v1/appointments/{id} | Update appointment |
DELETE /v1/appointments/{id} | Delete appointment |
Authentication#
| Endpoint | Summary |
|---|---|
POST /v1/auth/register | Register new user |
POST /v1/auth/login | Login user |
POST /v1/auth/refresh | Refresh access token |
POST /v1/auth/logout | Logout user |
GET /v1/auth/verify | Verify token validity |
GET /v1/auth/profile | Get user profile |
PUT /v1/auth/profile | Update user profile |
POST /v1/auth/logout-all | Logout from all devices |
GET /v1/auth/sessions | List active sessions |
Billing#
| Endpoint | Summary |
|---|---|
GET /v1/billing/public-plans | Get public plan pricing |
POST /v1/billing/public-checkout | Start checkout without an account |
GET /v1/billing/plans | Get plans with checkout identifiers |
GET /v1/billing/subscription | Get current subscription status |
POST /v1/billing/checkout | Start checkout for a subscription |
POST /v1/billing/portal | Open the billing portal |
Clients#
| Endpoint | Summary |
|---|---|
GET /v1/clients | List all clients |
POST /v1/clients | Create new client |
GET /v1/clients/{id} | Get client by ID |
PUT /v1/clients/{id} | Update client |
DELETE /v1/clients/{id} | Delete client |
Contacts#
| Endpoint | Summary |
|---|---|
GET /v1/contacts | List contacts |
POST /v1/contacts | Create a contact |
GET /v1/contacts/search | Search contacts |
GET /v1/contacts/{id} | Get a contact |
PUT /v1/contacts/{id} | Update a contact |
DELETE /v1/contacts/{id} | Delete a contact |
PATCH /v1/contacts/{id}/archive | Archive a contact |
PATCH /v1/contacts/{id}/restore | Restore an archived contact |
Escrows#
| Endpoint | Summary |
|---|---|
GET /v1/escrows | List escrows |
POST /v1/escrows | Create an escrow |
GET /v1/escrows/{id} | Get an escrow |
PUT /v1/escrows/{id} | Update an escrow |
DELETE /v1/escrows/{id} | Delete an escrow |
PATCH /v1/escrows/{id}/archive | Archive an escrow |
PATCH /v1/escrows/{id}/restore | Restore an archived escrow |
GET /v1/escrows/{id}/timeline | Get an escrow's timeline |
Leads#
| Endpoint | Summary |
|---|---|
GET /v1/leads | List all leads |
POST /v1/leads | Create new lead |
GET /v1/leads/{id} | Get lead by ID |
PUT /v1/leads/{id} | Update lead |
DELETE /v1/leads/{id} | Delete lead |
POST /v1/leads/{id}/convert | Convert lead to client |
Listings#
| Endpoint | Summary |
|---|---|
GET /v1/listings | List all property listings |
POST /v1/listings | Create new listing |
GET /v1/listings/{id} | Get listing by ID |
PUT /v1/listings/{id} | Update listing |
DELETE /v1/listings/{id} | Delete listing |
Webhooks#
| Endpoint | Summary |
|---|---|
GET /v1/webhooks | List webhook subscriptions |
POST /v1/webhooks | Create a webhook subscription |
GET /v1/webhooks/events | List available webhook events |
GET /v1/webhooks/events/categories | List webhook event categories |
PUT /v1/webhooks/{id} | Update a webhook subscription |
DELETE /v1/webhooks/{id} | Deactivate a webhook subscription |
GET /v1/webhooks/{id}/logs | Get webhook delivery logs |
Error responses#
Every endpoint returns errors in the same envelope — success is false and an error object carries a stable machine-readable code and a human message. Branch on error.code, never the message. See Errors for the full status-code and error-code reference and retry guidance.
{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "Invalid request data",
"errorId": "ERR_1782972632_ab12cd",
"correlationId": "b7e4c2a8-3f6d-4e29-9c41-8d5a2f7e1b93",
"details": null
},
"timestamp": "2026-07-15T14:32:10.000Z"
}