Nest — student & coaching data
People & CoachingNest product DB (read-only replica)read-onlyCurated student profiles: who the student is, enrolled program, assigned coach, account status. One row per student (users holding the student role).
Fields
| Field | Type | Description |
|---|---|---|
| person_id | string (ULID) | Nest person id (26-char ULID) |
| full_name | string | Student's full name |
| string | Primary email | |
| program | string · nullable | Most recent enrolled program |
| coach | string · nullable | Assigned coach (name) |
| status | string | active · suspended · archived |
| last_activity_at | timestamp | Most recent activity (ISO 8601, UTC) |
Call it
# optional filters: status=active|suspended|archived, updated_since=2026-01-01 curl -s "https://nest-data-api.egelloc.com/v1/nest_data?limit=100" \ -H "Authorization: Bearer $NEST_API_KEY"
curl -s "https://nest-data-api.egelloc.com/v1/nest_data/01JKHBVWRXFX2KPZN2TX8DWWG4" \ -H "Authorization: Bearer $NEST_API_KEY"
Nest — meetings & bookings
EngagementNest product DB (read-only replica)read-onlyCoaching sessions / bookings for a given student: host, call type, scheduled time, duration and status. Requires a person_id.
Fields
| Field | Type | Description |
|---|---|---|
| meeting_id | string (ULID) | Booking id |
| person_id | string (ULID) | Student the meeting belongs to |
| host | string · nullable | Coach hosting the session |
| type | string · nullable | Call type (e.g. "Check-In Call") |
| scheduled_at | timestamp | Scheduled start (ISO 8601, UTC) |
| duration_min | integer | Duration in minutes |
| status | string | scheduled · completed · cancelled · no_show · rescheduled |
Call it
curl -s "https://nest-data-api.egelloc.com/v1/meetings?person_id=01JKHBVWRXFX2KPZN2TX8DWWG4&limit=100" \ -H "Authorization: Bearer $NEST_API_KEY"
All tables — generic access
All DataNest product DB (read-only replica)read-onlyRead any table in the Nest replica except credential/secret tables. Columns are reflected from the read-only grant, so responses list explicit columns and never include password hashes, auth/OAuth tokens, or reset tokens.
Call it
# catalog: every readable table + its columns (this is what powers the list below) curl -s "https://nest-data-api.egelloc.com/v1/tables" -H "Authorization: Bearer $NEST_API_KEY"
# any column can be used as an equality filter; limit default 100, max 1000 curl -s "https://nest-data-api.egelloc.com/v1/tables/essays?type=personal_statement&limit=50" \ -H "Authorization: Bearer $NEST_API_KEY"
Response: { table, items, limit, offset, total }. Unknown / secret tables return 404; unknown filter columns return 400.
Available tables (…)
Auth & pagination
applies to all data routesEvery data route requires a bearer API key, scoped per dataset (nest_data, meetings, tables). Health and this catalog need no auth.
Authentication
| Situation | Status | Meaning |
|---|---|---|
| valid key, in scope | 200 | Data returned |
| missing / malformed key | 401 | No or bad Authorization header |
| valid key, wrong scope | 403 | Key not scoped for that dataset |
| unknown id / table | 404 | No matching row or non-readable table |
Authorization: Bearer <your-api-key>
Request a key from the API owner — don't hard-code it in client source.
Pagination
| Param | Type | Description |
|---|---|---|
| limit | integer | Rows to return. Default 100, max 1000 (always capped) |
| offset | integer | Rows to skip. Default 0 |
List responses are enveloped: { items, limit, offset, total }.
Service
no authLiveness and connectivity checks.
curl -s https://nest-data-api.egelloc.com/v1/health → {"status": "ok"}
curl -s https://nest-data-api.egelloc.com/v1/health/db → {"status": "ok", "db": "ok"}
Interactive OpenAPI docs auto-generated at /docs and /redoc.