Appearance
Authentication
All /v1 routes except signup and GET /v1/usage/schema require a bearer token.
http
Authorization: Bearer sk_live_...Base URL: https://api.skilleo.org
Skilleo API key
Sign up. The plaintext key is returned once.
bash
curl -s -X POST https://api.skilleo.org/v1/account \
-H "Content-Type: application/json" \
-d '{"email":"dev@example.com"}'python
from skilleo import Client
client, signup = Client.signup("dev@example.com")
print(signup["data"]["api_key"])bash
export SKILLEO_API_KEY='sk_live_...'
curl -s https://api.skilleo.org/v1/capabilities \
-H "Authorization: Bearer $SKILLEO_API_KEY"python
client = Client(api_key="sk_live_...")This authenticates you to Skilleo. It is not a provider key.
Two secrets
| Secret | Purpose | Source |
|---|---|---|
sk_live_… | Auth to Skilleo /v1 | POST /v1/account |
| Provider credential | Capability backends | Your secret store — Skilleo stores only a prv_… pointer |
Skilleo does not store customer provider API keys. Register where Skilleo resolves them (Secrets).
python
# Set ANTHROPIC_API_KEY in your secret store, then:
client.providers.connect("anthropic")Provider connections
python
conn = client.providers.connect("runpod")
print(conn["data"]["secret_ref"]) # RUNPOD_API_KEYbash
curl -s -X POST https://api.skilleo.org/v1/providers/connections \
-H "Authorization: Bearer $SKILLEO_API_KEY" \
-H "Content-Type: application/json" \
-d '{"provider":"anthropic","connection_type":"environment","secret_ref":"ANTHROPIC_API_KEY"}'Response: { "provider": "anthropic", "connection": "prv_…", "connection_type": "environment", "secret_ref": "ANTHROPIC_API_KEY", "status": "connected" }.
List: client.providers.list() or GET /v1/account/connections.
Without a connection, provider-backed routes return 400 CREDENTIALS_MISSING. CPU capabilities such as research.gather do not require one.
Key rules
- Skilleo API key shown once at signup
- Invalid or revoked →
401 UNAUTHORIZED - Public without a key: signup,
GET /v1/usage/schema,GET /health
Excess traffic → 429 RATE_LIMITED. Another user’s resource id → 404 NOT_FOUND.