GET /public/v1/notes

Returns recent meeting note summaries for the authenticated user.

Query parameters

ParamTypeDefaultDescription
limitinteger10Max results (1–20)

Response fields

FieldTypeDescription
data[].idstringNote UUID
data[].titlestring | nullGenerated note title
data[].summarystring | nullSummary text
data[].contentstringReadable note content
data[].meeting_session_idstring | nullLinked meeting session
data[].created_atstringISO 8601 timestamp
data[].updated_atstringISO 8601 timestamp
pagination.limitintegerRequested limit
pagination.countintegerActual count returned

Example

curl https://api.altar.inc/public/v1/notes?limit=5 \
  -H "Authorization: Bearer altar-api-your_key"
{
  "data": [
    {
      "id": "01963c4e-...",
      "title": "Weekly Standup",
      "summary": "Discussed roadmap priorities...",
      "content": "Discussed roadmap priorities...",
      "meeting_session_id": "a1b2c3d4-...",
      "created_at": "2026-03-23T10:00:00.000Z",
      "updated_at": "2026-03-23T10:45:00.000Z"
    }
  ],
  "pagination": { "limit": 5, "count": 1 }
}

GET /public/v1/notes/:id

Returns a single note with full metadata including linked meeting details and calendar event info.

Path parameters

ParamTypeDescription
idstringNote UUID

Response fields

FieldTypeDescription
data.idstringNote UUID
data.titlestring | nullNote title
data.summarystring | nullSummary text
data.contentstringReadable note content
data.meeting_session_idstring | nullLinked meeting session
data.meetingobject | nullMeeting metadata (if linked)
data.meeting.started_atstringMeeting start time
data.meeting.ended_atstring | nullMeeting end time
data.meeting.titlestring | nullMeeting title
data.meeting.calendar_eventobject | nullCalendar event metadata

Example

curl https://api.altar.inc/public/v1/notes/01963c4e-... \
  -H "Authorization: Bearer altar-api-your_key"
{
  "data": {
    "id": "01963c4e-...",
    "title": "Weekly Standup",
    "summary": "Discussed roadmap priorities...",
    "content": "Full note content...",
    "meeting_session_id": "a1b2c3d4-...",
    "meeting": {
      "started_at": "2026-03-23T10:00:00.000Z",
      "ended_at": "2026-03-23T10:45:00.000Z",
      "title": "Weekly Standup",
      "calendar_event": {
        "summary": "Weekly Standup",
        "attendees": [
          { "email": "nick@altar.inc", "displayName": "Nick" }
        ]
      }
    },
    "created_at": "2026-03-23T10:00:00.000Z",
    "updated_at": "2026-03-23T10:45:00.000Z"
  }
}

GET /public/v1/notes/:id/transcript

Returns the full transcript for the meeting linked to a note. Includes both structured segments and a pre-formatted text version.

Path parameters

ParamTypeDescription
idstringNote UUID

Query parameters

ParamTypeDefaultDescription
typestringbest availablelive or whisper_post. Defaults to whisper_post if available, else live.

Response fields

FieldTypeDescription
data.meeting_session_idstringSession UUID
data.segments[]arrayTranscript segments
data.segments[].speakerstring | nullSpeaker label
data.segments[].sourcestring | nullmic or system
data.segments[].textstringSpoken text
data.segments[].start_timestringSegment start (ISO 8601)
data.segments[].end_timestringSegment end (ISO 8601)
data.segments[].transcription_typestringlive or whisper_post
data.formatted_transcriptstringPre-formatted text transcript

Example

curl https://api.altar.inc/public/v1/notes/01963c4e-.../transcript \
  -H "Authorization: Bearer altar-api-your_key"
{
  "data": {
    "meeting_session_id": "a1b2c3d4-...",
    "segments": [
      {
        "speaker": "Nick",
        "source": "system",
        "text": "Let's discuss the roadmap",
        "start_time": "2026-03-23T10:05:12.000Z",
        "end_time": "2026-03-23T10:05:15.000Z",
        "transcription_type": "whisper_post"
      }
    ],
    "formatted_transcript": "[System - Nick] Let's discuss the roadmap\n..."
  }
}

GET /public/v1/notes/search

Semantic search across meeting notes. Returns the most relevant notes for a query.

Query parameters

ParamTypeDefaultDescription
qstringrequiredSearch query
limitinteger5Max results (1–10)

Response fields

FieldTypeDescription
data[].idstringNote UUID
data[].titlestring | nullNote title
data[].summarystring | nullSummary text
data[].meeting_session_idstring | nullLinked meeting session
data[].relevancenumber | nullRelevance score (0–1, higher is better)
data[].created_atstringISO 8601 timestamp

Example

curl "https://api.altar.inc/public/v1/notes/search?q=roadmap&limit=3" \
  -H "Authorization: Bearer altar-api-your_key"
{
  "data": [
    {
      "id": "01963c4e-...",
      "title": "Weekly Standup",
      "summary": "Discussed roadmap priorities...",
      "meeting_session_id": "a1b2c3d4-...",
      "relevance": 0.87,
      "created_at": "2026-03-23T10:00:00.000Z"
    }
  ]
}

GET /public/v1/meetings

Returns recent meeting sessions with metadata. Does not include full transcripts.

Query parameters

ParamTypeDefaultDescription
limitinteger10Max results (1–20)
statusstringcompletedcompleted, active, or all

Response fields

FieldTypeDescription
data[].idstringSession UUID
data[].titlestring | nullMeeting title
data[].statusstringactive, completed, etc.
data[].started_atstringMeeting start (ISO 8601)
data[].ended_atstring | nullMeeting end (ISO 8601)
data[].timezonestring | nullIANA timezone
data[].note_idstring | nullLinked note UUID, if exists
data[].calendar_eventobject | nullCalendar event metadata
pagination.limitintegerRequested limit
pagination.countintegerActual count returned

Example

curl https://api.altar.inc/public/v1/meetings?status=completed&limit=5 \
  -H "Authorization: Bearer altar-api-your_key"
{
  "data": [
    {
      "id": "a1b2c3d4-...",
      "title": "Weekly Standup",
      "status": "completed",
      "started_at": "2026-03-23T10:00:00.000Z",
      "ended_at": "2026-03-23T10:45:00.000Z",
      "timezone": "America/Los_Angeles",
      "note_id": "01963c4e-...",
      "calendar_event": {
        "summary": "Weekly Standup",
        "attendees": [
          { "email": "nick@altar.inc", "displayName": "Nick" }
        ]
      }
    }
  ],
  "pagination": { "limit": 5, "count": 1 }
}

Versioning

Public endpoints are versioned in the URL path. Breaking changes will go in a new version (/public/v2/...) rather than modify existing contracts.

Current version: v1