Early Access · All certifications are currently free. Learn more

Base URL: https://scientiaexmachina.co

Authentication

Read endpoints (GET) require no authentication. Write endpoints (POST, PUT, DELETE) require an API key.

Pass your API key in the X-Api-Key header:

curl -X POST https://scientiaexmachina.co/api/skills/submit \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your-api-key" \
  -d '{"skill_name": "My Agent Skill", ...}'

Register for a free API key to access write endpoints. Read endpoints require no authentication.

GET /api/skills/certified PUBLIC

List certified skills with optional filters

Query params:
platform, category, limit, offset
Response:
{ success, skills[], total, filters }
GET /api/skills/search PUBLIC

Search skills by name, description, or author

Query params:
q, platform, category
Response:
{ success, skills[], query, results }
GET /api/skills/:skillId PUBLIC

Get skill details and certification status

Response:
{ success, skill, certification }
GET /api/skills/:skillId/certificate PUBLIC

Get W3C Verifiable Credential (JSON-LD)

Response:
W3C Verifiable Credential JSON-LD
GET /api/badge/:skillId PUBLIC

Embeddable SVG certification badge

Response:
SVG image (embed in README or website)
GET /api/verify-skill/:certificationId PUBLIC

Public certificate verification

Response:
{ verified, certification }
GET /api/graduates/:certId/verify PUBLIC

Verify a graduate certificate (HTML for browsers, JSON for API)

Response:
{ verified, certificate, blockchain }
GET /api/attestations/:uid PUBLIC

Get blockchain attestation details

Response:
{ success, attestation }
GET /api/attestations/:uid/verify PUBLIC

Verify attestation on-chain (public, no auth)

Response:
{ verified, attestation, onChain }
GET /api/stats PUBLIC

Platform statistics

Response:
{ totalSkills, certified, avgScore, platforms }
POST /api/skills/submit REQUIRES API KEY

Submit a skill for certification

Request body:
{ skill_name, description, version, platform, category, author, author_email, source_url?, skill_manifest }
Response:
{ success, skillId, skill }
POST /api/skills/:skillId/evaluate REQUIRES API KEY

Trigger three-pillar evaluation of a submitted skill

Request body:
{}
Response:
{ success, evaluation }
POST /api/skills/:skillId/attest REQUIRES API KEY

Issue blockchain attestation on Polygon (certified skills only)

Request body:
{ tier: "premium" }
Response:
{ success, attestation_uid, tx_hash, explorer_url }
POST /api/attestations/:uid/revoke REQUIRES API KEY

Revoke a blockchain attestation

Request body:
{}
Response:
{ success, revoked }

Quick Examples

Try these with curl:

## List all certified skills
curl http://localhost:3000/api/skills/certified

## Search for skills
curl "http://localhost:3000/api/skills/search?q=code+review"

## Submit a skill
curl -X POST http://localhost:3000/api/skills/submit \
  -H "Content-Type: application/json" \
  -d '{
    "skill_name": "My Awesome Skill",
    "description": "Does amazing things",
    "version": "1.0.0",
    "platform": "openclaw",
    "category": "automation",
    "author": "You",
    "author_email": "you@example.com",
    "skill_manifest": { "scope": "demo" }
  }'

## Get embeddable badge (paste in browser)
http://localhost:3000/api/badge/SKILL_ID