Queries your Monologue vault using the Notes API, handles auth securely, and surfaces the notes you're looking for—with pagination and filtering built in.
Best for: Finding a specific note or idea buried in your Monologue vault without leaving Claude.
Creator's repository · intellectronica/agent-skills
License: CC0-1.0
---
name: monologue-notes-api
description: >
Use this skill when the user wants to read or search their Monologue notes through the
Monologue Notes REST API. It covers authentication with the MONOLOGUE_API_KEY environment
variable, safe token handling, listing notes, fetching a single note, pagination, filters,
and error handling. The API is read-only and should be accessed with direct HTTP requests
such as curl or any equivalent REST client.
---
# Monologue Notes API
This skill provides the information needed to call the Monologue Notes REST API directly.
Use it for read-only operations on the authenticated user's notes.
Use whatever HTTP client fits the task: `curl`, a short script, or another REST-capable tool.
Do not invent client libraries unless the user asks for one.
## Authentication
Use the environment variable `MONOLOGUE_API_KEY` as the bearer token.
- Required auth header: `Authorization: Bearer $MONOLOGUE_API_KEY`
- Required scope: `notes:read`
- Never print the token, echo it, log it, or include it in a response to the user
- Only pass it through the `Authorization` header as a shell variable expansion
Check whether the token is available without displaying it:
```bash
if [ -z "${MONOLOGUE_API_KEY:-}" ]; then
echo "MONOLOGUE_API_KEY is not set"
fi
```
If `MONOLOGUE_API_KEY` is missing:
- Report that the environment variable is not present
- Ask the user whether they want to provide an API key
- Do not attempt authenticated API calls until a token is available
Avoid commands such as these because they would expose secrets:
```bash
echo "$MONOLOGUE_API_KEY"
env | grep MONOLOGUE_API_KEY
set | grep MONOLOGUE_API_KEY
```
## Base URL
- Base URL: `https://api.monologue.to`
- API shape: read-only Notes API
- Data format: JSON
- Timestamps: ISO 8601 date-time strings
## Request Pattern
For all requests:
```bash
curl -sS \
-H "Authorization: Bearer $MONOLOGUE_API_KEY" \
"https://api.monologue.to/..."
```
If structured output is useful, pipe the response to `jq`.
## Endpoints
### List notes
`GET /v1/public-api/notes`
Returns a page of notes for the authenticated user.
Supported query parameters:
- `limit`: integer from `1` to `100`, default `20`
- `cursor`: opaque pagination cursor from a previous response
- `created_after`: ISO 8601 timestamp
- `created_before`: ISO 8601 timestamp
- `updated_after`: ISO 8601 timestamp
- `q`: full-text search across titles, summaries, and transcripts
Example:
```bash
curl -sS \
-H "Authorization: Bearer $MONOLOGUE_API_KEY" \
"https://api.monologue.to/v1/public-api/notes?limit=20&q=interview"
```
Example with `jq`:
```bash
curl -sS \
-H "Authorization: Bearer $MONOLOGUE_API_KEY" \
"https://api.monologue.to/v1/public-api/notes?limit=20" \
| jq '{next_cursor, items: [.items[] | {note_id, title, summary, created_at, updated_at}]}'
```
Expected response fields:
- `items`: array of note summaries
- `next_cursor`: cursor for the next page, if any
Each list item may include:
- `note_id`
- `title`
- `summary`
- `created_at`
- `updated_at`
Possible errors:
- `400`: invalid filter or cursor
- `401`: missing or invalid token
- `403`: token lacks the required scope
- `422`: validation error
### Get a single note
`GET /v1/public-api/notes/{note_id}`
Returns the full details for one note belonging to the authenticated user.
Path parameters:
- `note_id`: note identifier returned by the list endpoint
Example:
```bash
curl -sS \
-H "Authorization: Bearer $MONOLOGUE_API_KEY" \
"https://api.monologue.to/v1/public-api/notes/NOTE_ID"
```
Example with `jq`:
```bash
curl -sS \
-H "Authorization: Bearer $MONOLOGUE_API_KEY" \
"https://api.monologue.to/v1/public-api/notes/NOTE_ID" \
| jq '{note_id, title, summary, transcript, transcript_segments, created_at, updated_at}'
```
In addition to the list fields, the full note response may include:
- `transcript`
- `transcript_segments`
Notes:
- `transcript_segments` is loosely typed structured JSON and may be `null`
- `404` means the note was not found for the authenticated user
Possible errors:
- `401`: missing or invalid token
- `403`: token lacks the required scope
- `404`: note not found
- `422`: validation error
## Common Workflows
### Search notes by keyword
Use the `q` parameter:
```bash
curl -sS \
-H "Authorization: Bearer $MONOLOGUE_API_KEY" \
"https://api.monologue.to/v1/public-api/notes?q=meeting"
```
Search covers:
- note titles
- note summaries
- note transcripts
### Page through results
1. Call `GET /v1/public-api/notes`
2. Read `next_cursor` from the response
3. Pass that cursor back as the `cursor` query parameter
4. Stop when `next_cursor` is absent or `null`
Example:
```bash
curl -sS \
-H "Authorization: Bearer $MONOLOGUE_API_KEY" \
"https://api.monologue.to/v1/public-api/notes?limit=50&cursor=OPAQUE_CURSOR"
```
### Filter by time
Use ISO 8601 date-time values:
```bash
curl -sS \
-H "Authorization: Bearer $MONOLOGUE_API_KEY" \
"https://api.monologue.to/v1/public-api/notes?created_after=2026-01-01T00:00:00Z"
```
## Operating Rules
- Treat this API as read-only
- Do not claim write support; this skill only covers listing and reading notes
- Prefer `https://api.monologue.to` for requests
- When reporting failures, summarise the HTTP status and relevant response body without exposing the token
- If the user asks for a workflow that requires local post-processing, fetch the data first and then transform it separately
## Source Notes
This skill is based on:
- `/Users/eleanor/repos/obsidian/intellectronica/2026-04-21-20-10 Monologue API.md`
- Live OpenAPI checks against `https://api.monologue.to/public-openapi.json` on 2026-04-22