# 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](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"\
\`\`\`

Source: https://crush.clay.imek-dev.com/api-and-mcp-access/rest-api
