Public API
HTTP endpoints
Two production services back the platform. Both accept the same X-API-Key header.
- MCP serverhttps://mcp.phenomainon.com/mcp
Streamable-HTTP JSON-RPC. Seven tools over the 252K event corpus + embedding index. Same endpoint as the Claude/Cursor MCP integrations.
- UAP Computer Visionhttps://api.phenomainon.com/analyze
Image classification + authenticity analysis. Returns a verdict (authentic / manipulated / inconclusive), confidence, and similar cases.
Semantic search
curl -X POST https://mcp.phenomainon.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: YOUR_KEY" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "tools/call",
"params": {
"name": "semantic_search",
"arguments": {
"query": "triangular silent low altitude",
"k": 20
}
}
}'Get a case
curl -X POST https://mcp.phenomainon.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: YOUR_KEY" \
-d '{
"jsonrpc": "2.0", "id": 1,
"method": "tools/call",
"params": {
"name": "get_case",
"arguments": { "pcf": "PCF-103868" }
}
}'Aggregate stats
curl -X POST https://mcp.phenomainon.com/mcp \
-H "Content-Type: application/json" \
-H "Accept: application/json, text/event-stream" \
-H "X-API-Key: YOUR_KEY" \
-d '{
"jsonrpc": "2.0", "id": 1,
"method": "tools/call",
"params": {
"name": "stats",
"arguments": { "group_by": "decade" }
}
}'UAP CV analyze
curl -X POST https://api.phenomainon.com/analyze \
-H "Content-Type: application/json" \
-H "X-API-Key: YOUR_KEY" \
-d '{
"imageUrl": "https://example.com/sighting.jpg",
"mode": "thorough"
}'Health checks
curl https://mcp.phenomainon.com/healthz
# → {"status":"ok","events":252001}
curl https://api.phenomainon.com/healthz
# → {"status":"ok"}Rate limits
Anonymous: 1 call per capability per day (search, semantic, MCP, CV). Researcher tier (free, vetted): 10,000/day for query tools, 200/day for UAP CV. Press and paid API tiers available — email joe.schurman@gmail.com.
Errors
401— missing or invalidX-API-Key403— key not authorized for this capability429— daily limit reached; wait 24h or upgrade your tier500— server error; please report at joe.schurman@gmail.com
Prefer MCP?
For language-model integration use the MCP client setup — it carries the same tools with native tool-use semantics.