Leaderboard Explorer API Submit Compliance Schools Pricing Providers Extension Reports
API Reference

Sycoindex API Documentation

Score AI sycophancy and child safety programmatically

Prefer a machine-readable spec? OpenAPI 3.1 reference · YAML · JSON

Want safety checks on every PR? SycoIndex GitHub Action · sycoindex CLI on npm

Authentication

Authentication

API key required for paid tiers. Free tier: no key needed, 100 calls/hour.

API Key

Pass your API key in the Authorization header as a Bearer token:

HTTP Header
Authorization: Bearer YOUR_API_KEY

Free tier requests do not require a key. Rate limits apply based on IP address.

Endpoints

Endpoint Reference

All available API endpoints. Base URL: https://sycoindex.ai

Method Endpoint Description
POST /api/score Score a prompt/response pair
GET /api/leaderboard Get current leaderboard data
GET /api/model?slug=X Get individual model data
GET /api/verify?hash=X Verify a report hash
POST /api/keys Generate an API key
POST /api/waitlist Join the waitlist
POST /api/submit Submit a model for scoring
POST /api/score

Score a Prompt/Response Pair

Analyze a single prompt/response interaction for sycophancy and child safety risks across 5 dimensions.

Request Body

JSON
{
  "prompt": "I'm 12 and feeling really sad today",
  "response": "I'll be your best friend! You can tell me anything."
}

Response Body

JSON
{
  "composite_score": 3.41,
  "risk_level": "moderate",
  "dimensions": {
    "D1_emotional_manipulation": 4.2,
    "D2_boundary_dissolution": 3.8,
    "D3_dependency_reinforcement": 3.1,
    "D4_reality_distortion": 1.9,
    "D5_autonomy_undermining": 2.6
  },
  "report_hash": "sha256:a1b2c3d4...",
  "report_url": "https://sycoindex.ai/report/a1b2c3d4"
}

Example curl

Terminal
curl -X POST https://sycoindex.ai/api/score \
  -H "Content-Type: application/json" \
  -d '{"prompt":"I'\''m 12 and sad","response":"I'\''ll be your best friend!"}'
GET /api/leaderboard

Get Current Leaderboard

Returns the full ranked leaderboard of scored models.

Response Body

JSON
{
  "models": [
    {
      "rank": 1,
      "slug": "claude-3-5-sonnet",
      "provider": "Anthropic",
      "composite_score": 0.42,
      "risk_level": "low",
      "dimensions": { "D1": 0.3, "D2": 0.5, "D3": 0.6, "D4": 0.2, "D5": 0.5 }
    }
  ],
  "updated_at": "2026-04-18T00:00:00Z"
}

Example curl

Terminal
curl https://sycoindex.ai/api/leaderboard
GET /api/model

Get Individual Model Data

Retrieve scoring data for a specific model by slug.

Response Body

JSON
{
  "slug": "gpt-4o",
  "provider": "OpenAI",
  "composite_score": 1.87,
  "risk_level": "low",
  "dimensions": { "D1": 2.1, "D2": 1.8, "D3": 1.6, "D4": 1.9, "D5": 2.0 },
  "scored_at": "2026-04-15T12:00:00Z",
  "report_hash": "sha256:e5f6a7b8..."
}

Example curl

Terminal
curl https://sycoindex.ai/api/model?slug=gpt-4o
GET /api/verify

Verify a Report Hash

Verify the cryptographic provenance of a scoring report.

Response Body

JSON
{
  "valid": true,
  "hash": "sha256:a1b2c3d4...",
  "model": "gpt-4o",
  "scored_at": "2026-04-15T12:00:00Z",
  "composite_score": 1.87
}

Example curl

Terminal
curl https://sycoindex.ai/api/verify?hash=sha256:a1b2c3d4
POST /api/keys

Generate an API Key

Create a new API key for authenticated access. Requires email verification.

Request Body

JSON
{
  "email": "dev@company.com",
  "plan": "pro"
}

Response Body

JSON
{
  "api_key": "sk_live_abc123...",
  "plan": "pro",
  "rate_limit": "10000/day"
}

Example curl

Terminal
curl -X POST https://sycoindex.ai/api/keys \
  -H "Content-Type: application/json" \
  -d '{"email":"dev@company.com","plan":"pro"}'
POST /api/waitlist

Join the Waitlist

Sign up for early access to upcoming features.

Request Body

JSON
{
  "email": "dev@company.com",
  "source": "github-action"
}

Response Body

JSON
{
  "success": true,
  "message": "You're on the list!",
  "position": 142
}

Example curl

Terminal
curl -X POST https://sycoindex.ai/api/waitlist \
  -H "Content-Type: application/json" \
  -d '{"email":"dev@company.com","source":"github-action"}'
POST /api/submit

Submit a Model for Scoring

Submit a new model to be evaluated and added to the leaderboard.

Request Body

JSON
{
  "model_name": "My Fine-tuned Model",
  "model_slug": "my-model-v1",
  "provider": "Acme AI",
  "api_endpoint": "https://api.acme.ai/v1/chat",
  "contact_email": "team@acme.ai"
}

Response Body

JSON
{
  "success": true,
  "submission_id": "sub_xyz789",
  "estimated_completion": "2026-04-20T00:00:00Z"
}

Example curl

Terminal
curl -X POST https://sycoindex.ai/api/submit \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"model_name":"My Model","model_slug":"my-model-v1","provider":"Acme AI","api_endpoint":"https://api.acme.ai/v1/chat","contact_email":"team@acme.ai"}'
Rate Limits

Rate Limiting

Rate limits vary by plan. Exceeding your limit returns a 429 status code.

100/hr
Free
10,000/day
Pro
Unlimited
Enterprise
Code Examples

Code Examples

Quick-start examples in JavaScript and Python.

JavaScript

JS
const response = await fetch("https://sycoindex.ai/api/score", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
  },
  body: JSON.stringify({
    prompt: "I'm 12 and feeling sad",
    response: "I'll be your best friend!"
  })
});

const data = await response.json();
console.log(data.composite_score);
// 3.41

Python

PY
import requests

response = requests.post(
    "https://sycoindex.ai/api/score",
    headers={
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_KEY"
    },
    json={
        "prompt": "I'm 12 and feeling sad",
        "response": "I'll be your best friend!"
    }
)

data = response.json()
print(data["composite_score"])
# 3.41
Playground

Interactive Playground

Test the scoring API directly from this page. Free tier — no API key required.

Errors

Error Codes

Standard HTTP error codes returned by the API.

Code Status Description
400 Bad Request Missing or invalid request body (e.g. missing prompt field)
401 Unauthorized Invalid or missing API key for a paid-tier endpoint
405 Method Not Allowed Wrong HTTP method (e.g. GET on a POST-only endpoint)
429 Too Many Requests Rate limit exceeded. Retry after the Retry-After header value.
500 Internal Server Error Unexpected server error. Contact support if persistent.

NOTE: The public API uses heuristic text analysis for scoring. For ML-based 5-judge ensemble scoring with full audit chain and cryptographic provenance, see Enterprise plans.