Option C — Invoke skills via HTTP
Option C — Invoke skills via HTTP
Call named, deterministic operations on your pod from any external tool.
What it is
Skills are named operations that run on your pod with full access to your data — entities, documents, search, and memory. Each skill has a defined input schema, a fixed scope (pod-wide, workspace, or user), and runs synchronously with a configurable timeout.
Invoking a skill via HTTP is like calling a typed function on your pod. The result is structured JSON. There is no natural language involved: you pass input, you get result.
This is the right option when you want repeatable, predictable behavior — extracting entities from raw text, creating structured notes, running a search pipeline, or any other operation your pod has a skill for.
Get an API key
Go to Settings → API Keys → New Key, and select the scope skills.invoke.
The key is shown once at creation. Store it securely — it cannot be retrieved later.
List your skills
Response:
Note: Skill slugs are not yet supported — use the UUID
idfrom the list endpoint when invoking. Slugs may be added in a future release.
Invoke a skill
Response:
TypeScript example
Using with Claude Code
Add skill invocation as a tool in your project's CLAUDE.md so Claude Code can call it directly:
Or as a standalone script Claude Code can run:
Skill scopes
| Scope | Visibility | Notes |
|---|---|---|
pod | All workspaces on the pod | System-level skills: full-text search, cross-workspace indexing |
workspace | One workspace | Most skills live here; your API key's workspace context applies |
user | Current authenticated user only | Personal skills: private notes, personal memory |
Your API key is tied to a user and (optionally) a workspace. Skills scoped below your key's permissions return 403.
Errors
| Status | Meaning |
|---|---|
401 Unauthorized | API key missing or invalid |
403 Forbidden | Key has no skills.invoke scope, or skill is out of your key's scope |
404 Not Found | Skill ID does not exist, or you do not have access to it |
400 Bad Request | Skill exists but is inactive, or input fails the skill's parameter schema |
502 Bad Gateway | Pod could not reach the AI service (Intelligence Service unavailable) |
504 Gateway Timeout | Skill ran longer than timeoutSeconds |
Next steps
- Option D — Chat stream — natural language interface to your pod
- Option E — SDK and direct API — full typed access
- API Keys — manage scopes and rotation
