Skill
Axiom Bearer API Skill
# Axiom Bearer API Skill
Use this skill when an agent needs to call this Axiom backend with the bearer token shown on the profile page.
## Instance
- Base URL: `https://axiom-demo.thebridge.ai`
- Token page: `https://axiom-demo.thebridge.ai/account/profile/`
- Header: `Authorization: Bearer <AXIOM_TOKEN>`
- Browser CSRF tokens are not required when the bearer token is valid.
- Send normal form endpoints as `application/x-www-form-urlencoded` or `multipart/form-data`.
- Send JSON endpoints with `Content-Type: application/json`.
- A `401` means the token is missing or invalid.
- A `403` means the user is authenticated but does not have permission for that app.
Set these once before running the examples:
```bash
BASE_URL="https://axiom-demo.thebridge.ai"
AXIOM_TOKEN="paste-token-from-profile"
```
## Catalog
Upload a local file:
```bash
curl -sS -X POST "$BASE_URL/catalog/api/upload/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "file=@/path/to/media.wav" \
-F "given_name=Board Meeting" \
-F "description=Uploaded by agent" \
-F "video_relevant=on"
```
Import YouTube media:
```bash
curl -sS -X POST "$BASE_URL/catalog/api/upload/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "youtube_url=https://www.youtube.com/watch?v=VIDEO_ID" \
-F "given_name=Customer Call"
```
Save YouTube cookies for imports:
```bash
curl -sS -X POST "$BASE_URL/catalog/api/youtube-cookies/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-H "Content-Type: application/json" \
--data '{"cookies":"# Netscape HTTP Cookie File\n.youtube.com\tTRUE\t/\tTRUE\t2147483647\tSID\tabc"}'
```
Check a YouTube import job:
```bash
curl -sS "$BASE_URL/catalog/youtube-imports/<job_id>/status/" \
-H "Authorization: Bearer $AXIOM_TOKEN"
```
## Perception
Start perception processing for a catalog media item:
```bash
curl -sS -X POST "$BASE_URL/perception/<media_item_id>/process/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "whisper_model=base" \
-F "diarization_provider=pyannote_ai"
```
Cancel a running perception job:
```bash
curl -sS -X POST "$BASE_URL/perception/<media_item_id>/cancel/" \
-H "Authorization: Bearer $AXIOM_TOKEN"
```
Save speaker labels:
```bash
curl -sS -X POST "$BASE_URL/perception/<media_item_id>/labels/save/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "speaker_key=SPEAKER_00" \
-F "speaker_label=Jane"
```
Infer speaker labels:
```bash
curl -sS -X POST "$BASE_URL/perception/<media_item_id>/labels/infer/" \
-H "Authorization: Bearer $AXIOM_TOKEN"
```
## Understanding
Run full-file analysis:
```bash
curl -sS -X POST "$BASE_URL/understanding/<perception_result_id>/analyze/full/" \
-H "Authorization: Bearer $AXIOM_TOKEN"
```
Run item-level analysis:
```bash
curl -sS -X POST "$BASE_URL/understanding/<perception_result_id>/analyze/items/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "view=segments"
```
Profile speakers:
```bash
curl -sS -X POST "$BASE_URL/understanding/<perception_result_id>/speakers/profile/" \
-H "Authorization: Bearer $AXIOM_TOKEN"
```
Analyze one segment:
```bash
curl -sS -X POST "$BASE_URL/understanding/<perception_result_id>/segments/<segment_id>/analyze/" \
-H "Authorization: Bearer $AXIOM_TOKEN"
```
## Decision Dashboard
Create a dashboard:
```bash
curl -i -X POST "$BASE_URL/decisions/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "dashboard_name=Untitled"
```
Rename a dashboard:
```bash
curl -sS -X POST "$BASE_URL/decisions/<dashboard_id>/rename/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "name=Pipeline Review"
```
Upload and link media to a dashboard:
```bash
curl -sS -X POST "$BASE_URL/decisions/<dashboard_id>/upload-media/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "file=@/path/to/meeting.wav" \
-F "given_name=Meeting Recording" \
-F "video_relevant=on"
```
Start dashboard analysis for linked media:
```bash
curl -sS -X POST "$BASE_URL/decisions/<dashboard_id>/analysis-jobs/start/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "media_ids=<media_item_id>"
```
Check a dashboard analysis job:
```bash
curl -sS "$BASE_URL/decisions/<dashboard_id>/analysis-jobs/status/?job_id=<job_id>" \
-H "Authorization: Bearer $AXIOM_TOKEN"
```
Cancel a dashboard analysis job:
```bash
curl -sS -X POST "$BASE_URL/decisions/<dashboard_id>/analysis-jobs/cancel/" \
-H "Authorization: Bearer $AXIOM_TOKEN" \
-F "job_id=<job_id>"
```
## Recommended Agent Workflow
1. Open `https://axiom-demo.thebridge.ai/account/profile/` and copy the bearer token.
2. Upload or import media with Catalog and keep the returned `id`.
3. Start Perception with `/perception/<media_item_id>/process/`.
4. Poll or open Perception detail until the `PerceptionResult` is completed.
5. Run Understanding actions with the completed `perception_result_id`.
6. Create or choose a Decision Dashboard, link media, and start dashboard analysis.
7. Poll returned status URLs until jobs are completed or failed.