REST API
REST API Information
Authentication
All API requests require a CRUSH API key passed in the `Authorization` header.
```
Authorization: Bearer crush_sk_your_key_here
```
Getting Your API Key
1. Log in to https://app.crushthememory.com
2. Go to **Account** > **API Key**
3. Click **Generate API Key**
4. Copy the key immediately - it is only shown once
Regenerating Your Key
If your key is compromised, go to **Account** > **API Key** > **Regenerate**. This immediately revokes the old key and creates a new one.
Base URL
https://app.crushthememory.com
Endpoints - List Notes
Fetch all your notes (metadata + transcripts).
```
GET /api/aws/noteflags
```
Query Parameters:
| Parameter | Type | Description |
| `limit` | number | Max notes to return. Omit for all. |
| `mask` | string | Comma-separated fields to include. Omit for all fields. |
| `noteIds` | string | Comma-separated note IDs to fetch specific notes. |
Example — Get 5 most recent notes with just transcript and date:**
```bash
curl -H "Authorization: Bearer crush_sk_your_key_here" \
"https://app.crushthememory.com/api/aws/noteflags?limit=5&mask=noteTranscript,noteCreatedOn"
```
Response:
```json
[
{
"noteTranscript": "Speaker A: Let's discuss the Q1 roadmap...",
"noteCreatedOn": "2026-03-21T10:30:00.000Z"
}
]
```
Common fields in response:
| Field | Description |
| `noteId` | Unique note ID |
| `userId` | Your user ID |
| `noteTranscript` | Transcribed text (HTML formatted) |
| `noteCreatedOn` | When the note was recorded |
| `noteLastEdited` | Last edit timestamp |
| `folderId` | Folder the note belongs to (if any) |
| `noteAudioStatus` | Audio status (NONE = transcription complete) |
| `noteIsKeepAudio` | Whether audio file is retained |
Endpoints - Get a Specific Note
```
GET /api/aws/noteflags?noteIds=NOTE_ID
```
```bash
curl -H "Authorization: Bearer crush_sk_your_key_here" \
"https://app.crushthememory.com/api/aws/noteflags?noteIds=550e8400-e29b-41d4-a716-446655440000"
```
Endpoints - Download Audio
Get a temporary download URL for a note's audio recording.
```
GET /api/aws/audio?noteId=NOTE_ID
```
```bash
curl -H "Authorization: Bearer crush_sk_your_key_here" \
"https://app.crushthememory.com/api/aws/audio?noteId=550e8400-e29b-41d4-a716-446655440000"
```
Response:
```json
{
"audioUrl": "https://crush-audio.s3.us-east-2.amazonaws.com/...?X-Amz-Signature=...",
"audioFormat": "mp4",
"audioDurationSeconds": 142,
"audioSizeBytes": 2340000
}
```
The `audioUrl` is a presigned URL valid for **1 hour**. Download the file within that window:
```bash
curl -o recording.mp4 "AUDIO_URL_FROM_RESPONSE"
```
Endpoints - List Folders
```
GET /api/aws/noteflags?mask=folderId
```
For dedicated folder metadata (names, settings):
```
GET /api/aws/insights
Endpoint - Get User Profile
```
GET /api/aws/userprofiles
```
Returns your profile, subscription status, and AI credit balance.
```bash
curl -H "Authorization: Bearer crush_sk_your_key_here" \
"https://app.crushthememory.com/api/aws/userprofiles"
```
Endpoints - Get Tags
```
GET /api/aws/tags
```
```bash
curl -H "Authorization: Bearer crush_sk_your_key_here" \
"https://app.crushthememory.com/api/aws/tags"
```
