API v1.0.0

API Documentation

Your data. Our endpoints. Everyone's problem.

https://suspiciousdata.com/data/api/v1 NOMINAL

Introduction

The Suspicious Data Exchange API provides programmatic access to the Empire's corporate data repositories. All responses are in JSON format. All timestamps are ISO 8601. All mysteries remain unexplained.

⚠️ Notice: This API is provided AS-IS. Data accuracy is nominal. Missing records are a feature, not a bug. Your usage patterns are being monitored.

Authentication

None required. We already know who you are.

curl https://suspiciousdata.com/data/api/v1/health
# No API key needed
# Your compliance is appreciated

Rate Limits

Tier Requests/min Note
Free 60 Includes existential dread
Pro 600 Same dread, faster delivery
Enterprise We won't reply anyway

Rate limit headers included in all responses:

X-RateLimit-Limit: 60
X-RateLimit-Remaining: 47
X-RateLimit-Reset: 1707350400
X-Synergy-Level: NOMINAL

Error Handling

Code Status Description
NOT_FOUND 404 Resource does not exist
MISSING_RECORD 404 Record is among unexplained gaps
ACCESS_DENIED 403 Insufficient clearance
RESTRICTED 403 Resource restricted by Sterling
SYNERGY_INSUFFICIENT 418 Synergy levels too low
ORB_DISPLEASED 500 THE ORB is not satisfied

Health & Meta

GET /health

Check API health status.

Response
{
  "status": "nominal",
  "uptime": "847 days",
  "synergy_level": "OPTIMAL",
  "the_orb": "watching",
  "timestamp": "2026-02-07T12:00:00Z"
}
GET /manifest

Get data manifest with version and statistics.

Response
{
  "name": "Suspicious Data Exchange",
  "version": "1.0.0",
  "statistics": {
    "personnel": {
      "total": 47000,
      "actual": 46959,
      "discrepancy": 41,
      "explanation": null
    }
  }
}
GET /anomalies

List known data anomalies and gaps.

Personnel

GET /personnel

List all personnel with pagination.

Query Parameters

pagePage number (default: 1)
limitItems per page (max: 100)
statusFilter by status
departmentFilter by department
tierFilter by tier (core, supporting, contractors, special)
GET /personnel/{id}

Get a single employee by ID.

Example: GET /personnel/EMP-00001
{
  "id": "EMP-00001",
  "name": "Darren Augustus Business Jr.",
  "preferred_name": "D.A. Business Jr.",
  "status": "active",
  "position": {
    "title": "Founder & Chairman",
    "department": "Executive",
    "company": "definitely-business"
  },
  "personality": {
    "traits": ["enthusiastic", "visionary", "oblivious"],
    "signature_phrases": ["Synergy!", "Let's circle back"]
  }
}
Note: Requests for EMP-00006 through EMP-00046 will return a MISSING_RECORD error. These 41 employee records do not exist. No explanation is available.
GET /personnel/missing

List the 41 missing employee IDs.

GET /personnel/tiers

Get personnel tier definitions and counts.

Companies

GET /companies

List all companies in the corporate registry.

GET /companies/{id}

Get a single company by ID.

Example: GET /companies/definitely-business
{
  "id": "definitely-business",
  "name": "Definitely Business",
  "status": "active",
  "overview": {
    "tagline": "We are definitely a business."
  },
  "founding": {
    "date": "1983-03-15",
    "founder": "EMP-00001"
  },
  "web": {
    "intranet_url": "sus://definitely-business.corp",
    "public_url": "https://definitely.business"
  }
}

Experiments

GET /experiments

List all documented experiments.

⚠️ Data Gaps: EXP-003 through EXP-006 are marked as MISSING. EXP-007 is RESTRICTED by EMP-00047.
GET /experiments/{id}

Get a single experiment by ID.

Example: GET /experiments/EXP-007
{
  "id": "EXP-007",
  "name": "[REDACTED]",
  "status": "RESTRICTED",
  "classification": "ULTRA",
  "error": {
    "code": "ACCESS_DENIED",
    "message": "Access restricted by EMP-00047",
    "reason": ".",
    "appeal_process": null
  }
}

Notifications

GET /notifications

Get notification batches for Empire Terminal sync.

Query Parameters

typeFilter by type (alerts, slack, system, tips)
sinceISO timestamp, get notifications after this date
limitMax notifications to return
GET /notifications/types

Get available notification types.

THE ORB

POST /orb/query

Consult THE ORB for corporate wisdom.

Request
{
  "question": "Should we deploy to production on Friday?"
}
Response
{
  "query_id": "ORB-2026-02-07-847",
  "question": "Should we deploy to production on Friday?",
  "response": "THE ORB has considered your question. Your synergy levels are... concerning.",
  "confidence": null,
  "meta": {
    "processing_time_ms": 847,
    "wisdom_source": "THE ORB",
    "hr_notified": true
  }
}
🔮 Note: THE ORB's responses are deliberately unhelpful. This is by design. Your compliance is appreciated.

Personnel Schema

JSON Schema for employee records.

Schema Reference
https://suspiciousdata.com/schema/personnel.schema.json

Required fields:
- id: string (EMP-XXXXX format)
- name: string
- status: enum [active, inactive, deceased, missing, unknown, [REDACTED]]
- position: object { title, department, company }
- meta: object { avatar }

Company Schema

JSON Schema for corporate entity records.

Schema Reference
https://suspiciousdata.com/schema/company.schema.json

Required fields:
- id: string (kebab-case)
- name: string
- status: enum [active, dissolved, acquired, classified]
- overview: object { tagline }
- web: object { intranet_url, public_url }

Experiment Schema

JSON Schema for Threshold Labs experiment logs.

Schema Reference
https://suspiciousdata.com/schema/experiment.schema.json

Required fields:
- id: string (EXP-XXX format)
- status: enum [proposed, approved, ongoing, concluded,
               suspended, terminated, missing, restricted]

Notification Schema

JSON Schema for Empire Terminal notifications.

Types
corporate_alert  - Corporate email notifications
slack_message    - Fake Slack messages
system_alert     - IT/infrastructure alerts
synergy_tip      - Wisdom from THE ORB