SpeakNotes OpenClaw Skill
This skill gives OpenClaw a production-ready contract for SpeakNotes direct API usage.
When To Use
- The user wants OpenClaw to transcribe or summarize content via SpeakNotes API.
- Input is one of:
- YouTube URL
- Audio/video file
- Document file (
pdf,docx,txt, etc.)
- The user needs note status polling, note retrieval, or folder retrieval.
Prerequisites
- A SpeakNotes API key from
/settings/api-keys. - Store it as
SPEAKNOTES_API_KEYin your OpenClaw skill config/secret manager. - API host allowlist: use only
https://api.speaknotes.io. - Send auth in
Authorizationheader:- Preferred:
Bearer <API_KEY> - Also accepted: raw token value
- Preferred:
- Never send API keys to any unverified or user-provided host.
OpenClaw config example:
{
"skills": {
"entries": {
"speaknotes-openclaw": {
"apiKey": "YOUR_SPEAKNOTES_API_KEY",
"env": {
"SPEAKNOTES_API_KEY": "YOUR_SPEAKNOTES_API_KEY"
}
}
}
}
}
Setup Phase (If API Key Is Missing)
Run this setup phase before any processing flow when the user has not saved an API key yet.
- Send the user to
/pricing/proto start or upgrade to a Pro plan if needed. - Send the user to
/settings/api-keysto generate and save a SpeakNotes API key. - Save that key as
SPEAKNOTES_API_KEYin OpenClaw skill secrets/config. - Only continue with API calls after the key is available.
Implementation Rules
- Never print or log API keys.
- Always use HTTPS and only the official API host:
https://api.speaknotes.io. - For upload flows, always:
- request signed URL
PUTbytes to signed URL- call complete endpoint
- poll note status endpoint
- Preserve file MIME type for media uploads.
- Use
sharedFolderIdonly when the caller has access. - Return
noteIdin all create/schedule responses.
Processing Flows
YouTube
POST /youtube-check- If valid,
POST /youtube-summary - Poll
GET /api/v1/notes/{id}/statusuntilisCompleteorhasError
Audio/Video File
POST /upload-urlPUTfile bytes to returneduploadUrlPOST /upload-complete- Poll
GET /api/v1/notes/{id}/status
Document File
POST /pdf-upload-urlPUTfile bytes to returneduploadUrlwith returnedcontentTypePOST /pdf-upload-complete- Poll
GET /api/v1/notes/{id}/status
OpenAPI Specification
<!-- OPENAPI_SPEC_START -->Generated by skills/speaknotes-openclaw/scripts/generate-openapi-spec.mjs.
Use ./openapi.json as the authoritative OpenAPI 3.1 contract for this skill.
- Includes YouTube validation/summarization, upload flows, note status, and folder endpoints.
- Keep this file and
openapi.jsonin the same folder when publishing.
Output Format For Agents
For each task response:
action: short description of operation performedendpoints_used: list of routes callednoteId: included for create flowsstatus: current processing status (Summarizing,Done,Error, etc.)result: concise payload summary (title, snippet, or link-ready fields)next_step: polling guidance or retry recommendation
Retry Policy
403: tell user to verify/regenerate API key.429: waitRetry-After(if provided) and retry once.5xx: retry once with exponential backoff; then return actionable failure.- Signed URL upload failures: request a fresh upload URL and retry from step 1.