Nest — student & coaching data

People & CoachingNest product DB (read-only replica)read-only

Curated student profiles: who the student is, enrolled program, assigned coach, account status. One row per student (users holding the student role).

scope name
nest_data
source
egelloc · users + program_user + programs + coach_student + roles
freshness
live · queried on request
auth scope
nest_data

Fields

FieldTypeDescription
person_idstring (ULID)Nest person id (26-char ULID)
full_namestringStudent's full name
emailstringPrimary email
programstring · nullableMost recent enrolled program
coachstring · nullableAssigned coach (name)
statusstringactive · suspended · archived
last_activity_attimestampMost recent activity (ISO 8601, UTC)

Call it

GET/v1/nest_data?limit=100&offset=0
# 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"
GET/v1/nest_data/{person_id}
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-only

Coaching sessions / bookings for a given student: host, call type, scheduled time, duration and status. Requires a person_id.

scope name
meetings
source
egelloc · bookings + call_types + users
freshness
live · queried on request
auth scope
meetings

Fields

FieldTypeDescription
meeting_idstring (ULID)Booking id
person_idstring (ULID)Student the meeting belongs to
hoststring · nullableCoach hosting the session
typestring · nullableCall type (e.g. "Check-In Call")
scheduled_attimestampScheduled start (ISO 8601, UTC)
duration_minintegerDuration in minutes
statusstringscheduled · completed · cancelled · no_show · rescheduled

Call it

GET/v1/meetings?person_id={id}&limit=100
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-only

Read 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.

scope name
tables
excluded
password hashes, remember_token, personal_access_tokens, password_reset_tokens, SSO/OAuth creds, session/cache/job tables
freshness
live · queried on request
auth scope
tables

Call it

GET/v1/tables
# 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"
GET/v1/tables/{table}?{column}={value}&limit=100&offset=0
# 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 routes

Every data route requires a bearer API key, scoped per dataset (nest_data, meetings, tables). Health and this catalog need no auth.

Authentication

SituationStatusMeaning
valid key, in scope200Data returned
missing / malformed key401No or bad Authorization header
valid key, wrong scope403Key not scoped for that dataset
unknown id / table404No 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

ParamTypeDescription
limitintegerRows to return. Default 100, max 1000 (always capped)
offsetintegerRows to skip. Default 0

List responses are enveloped: { items, limit, offset, total }.

Service

no auth

Liveness and connectivity checks.

GET/v1/health
curl -s https://nest-data-api.egelloc.com/v1/health
 {"status": "ok"}
GET/v1/health/db
curl -s https://nest-data-api.egelloc.com/v1/health/db
 {"status": "ok", "db": "ok"}

Interactive OpenAPI docs auto-generated at /docs and /redoc.