Webhook
Webhooks (Push Notifications)
CRUSH can automatically push data to your application when a new transcription completes.
Setup
1. Go to **Account** > **Zapier Integrations**
2. Add a webhook URL (your server endpoint)
3. Enable **Auto-send new transcriptions**
Webhook Payload
When a transcription completes, CRUSH sends a POST request to your webhook URL:
```json
[
{
"noteId": "550e8400-e29b-41d4-a716-446655440000",
"noteTranscript": "Plain text transcript with speaker labels",
"noteCreatedOn": "2026-03-21T10:30:00.000Z",
"audioUrl": "https://crush-audio.s3.us-east-2.amazonaws.com/...?X-Amz-Signature=...",
"audioFormat": "mp4",
"audioDurationSeconds": 142
}
]
```
The `audioUrl` is a presigned download URL valid for 1 hour.
Costs
| Operation | Cost |
| Read notes, folders, tags, profile | Free |
| Download audio | Free |
| Webhook delivery | Free |
| AI Insights (`/api/agents/insight`) | Deducts from your AI credit balance |
Rate Limits
Currently no hard rate limit is enforced. Use responsibly, because I'm monitoring excessive requests which may result in throttling in a future update.
Errors
| Status | Meaning |
| 200 | Success |
| 400 | Bad request (missing required parameter) |
| 401 | Invalid or revoked API key |
| 403 | Not authorized to access this resource |
| 404 | Resource not found |
| 500 | Internal server error |
Quick Start Example
Pull all your notes and save transcripts to files:
```bash
API_KEY="crush_sk_your_key_here"
BASE="https://app.crushthememory.com"
# Get all notes
curl -s -H "Authorization: Bearer $API_KEY" \
"$BASE/api/aws/noteflags?mask=noteId,noteTranscript,noteCreatedOn" \
| jq -r '.[] | "\(.noteId)\t\(.noteCreatedOn)\t\(.noteTranscript)"'
```
Download audio for a specific note:
```bash
# Get audio URL
AUDIO_URL=$(curl -s -H "Authorization: Bearer $API_KEY" \
"$BASE/api/aws/audio?noteId=YOUR_NOTE_ID" | jq -r '.audioUrl')
# Download the file
curl -o recording.mp4 "$AUDIO_URL"
```
