Skip to main content

Base URLs

  • API base: http://localhost:8000/api
  • OpenAPI UI (FastAPI): http://localhost:8000/docs
  • OpenAPI JSON (FastAPI): http://localhost:8000/openapi.json
For published docs, use the API Reference tab for endpoint-level schema details.

Authentication Model

API key auth is operator-configurable via backend settings.
  • If API_AUTH_KEY is unset: requests run without key checks.
  • If API_AUTH_KEY is set:
    • all /api/* non-GET/HEAD/OPTIONS requests require auth
    • GET /health?deep=true requires auth
Accepted headers:
  • x-api-key: <key> (recommended)
  • authorization: Bearer <key>

Common Headers

  • Content-Type: application/json for JSON write endpoints
  • Accept: text/event-stream for POST /api/chat/stream
  • X-Response-Time is returned by the API for latency visibility

First Calls

Health check

curl -s http://localhost:8000/health

Chat request

curl -s \
  -H "Content-Type: application/json" \
  -X POST http://localhost:8000/api/chat \
  -d '{"message":"Summarize my strongest skill signals from recent sources."}'

Authenticated write request (when API key is enabled)

curl -s \
  -H "x-api-key: $API_AUTH_KEY" \
  -H "Content-Type: application/json" \
  -X POST http://localhost:8000/api/chat \
  -d '{"message":"What should I work on next for career lift?"}'

LinkedIn network snapshot write

curl -s \
  -H "x-api-key: $API_AUTH_KEY" \
  -H "Content-Type: application/json" \
  -X POST http://localhost:8000/api/network-ops/linkedin/snapshots \
  -d '{
    "source": "connections",
    "raw_text": "Member blocks pasted from LinkedIn export",
    "summary": {
      "parsed_contacts": 120,
      "keep_count": 78,
      "cut_count": 42,
      "keep_rate_pct": 65
    },
    "builder_count": 35,
    "buyer_count": 24,
    "amplifier_count": 19,
    "top_engage_queue": [],
    "proposed_cuts": [],
    "topic_map": [],
    "gap_report": []
  }'

LinkedIn network KPI summary read

curl -s http://localhost:8000/api/network-ops/linkedin/summary

Next