Attorneys
The attorney object and the endpoint that lists your firm's bookable attorneys.
An attorney is a schedulable, active member of your firm — the staff who take
consultations. This is the one place the API exposes them: use it to turn an
attorney's display name into the id you pass as attorney_id when you
book a consultation.
Only schedulable, active staff are listed — the same set the app offers when booking, and the same set booking will accept. A staff member who isn't marked schedulable (or whose account is disabled) won't appear here and can't be booked.
"Attorney" is a loose label here: the listing filters on schedulable, not on job title, and a
firm can mark any staff member schedulable (a senior legal assistant who takes intake consults, for
example). Each row carries role so you can tell an actual attorney apart
from other schedulable staff — filter client-side on it if you only want licensed attorneys.
Being schedulable is only an admin toggle, though. An attorney with no office hours set up has no
bookable time — booking one always fails with outside_office_hours. Each attorney therefore carries
has_office_hours, and ?has_office_hours=true narrows
the listing to the genuinely bookable subset.
Endpoints
| Method | Path | Scope | Description |
|---|---|---|---|
GET | /api/attorneys | consultations:read | List the firm's schedulable attorneys |
The attorney object
{
"id": "a1b2c3d4-0000-4000-8000-000000000000",
"name": "Ayesha Okafor",
"email": "ayesha@chidoluelaw.com",
"role": "attorney",
"schedulable": true,
"has_office_hours": true
}| Field | Type | Notes |
|---|---|---|
id | string | Staff UUID, stable. Pass as attorney_id when booking. |
name | string | The staff member's display name. |
email | string | The staff member's email. |
role | string | Staff role — one of admin, attorney, la_lead, legal_assistant, qa_lead, creative_writer, sales, accounts_receivable, file_clerk. The listing isn't filtered by role, so use this to tell an actual attorney from other schedulable staff. |
schedulable | boolean | Always true here — only schedulable staff are returned. |
has_office_hours | boolean | Whether the attorney has recurring office hours configured. false means booking will fail with outside_office_hours until hours are set. Filter with ?has_office_hours=true. |