answers
Copy page
Ask a question in words and get a sourced answer, and the method behind any number.
| Method | Path | Title | Access | Price | MCP tool |
|---|---|---|---|---|---|
| POST | /v1/answers | Ask a question | run:answers | [object Object] | none |
POST /v1/answers
Ask a questionLink to this section
scope run:answers · [object Object] credits, not charged during the beta · status live
Kelly's answer to a question in words, with every figure's source and time. Send Accept: text/event-stream to stream it as server-sent events, one per answer event; otherwise the finished answer comes back as JSON with 201. Needs an API key with run:answers, never the keyless tier. A key answers from public data only: odds maths and payouts, no-vig and hold, lines, games, players, and reviewed terms, house rules, tax and the law; other questions get a polite not-yet. end_user_id (optional, opaque, up to 64 characters) names the caller's own user and grants nothing; it becomes required with league-aware answers, which will need the league owner's OAuth token with read:league and an explicit league_id (trifecta.md F2). Answer IDs are random handles, never minted from natural keys (ARCH-8). The question is never logged or stored.
ParametersLink to this section
Body, application/json (required):
questionstringThe question, in words.
min length 1 · max length 1000
statestringnullableThe person's US state, two letters, for the helpline and the law.
pattern ^[A-Za-z]{2}$
end_user_idstringnullableYour own opaque ID for the person asking (G1-F02). It grants nothing, and the slice reads no league with it; it becomes required when answers read a league.
min length 1 · max length 64
ResponseLink to this section
200 The answer as server-sent events, when Accept: text/event-stream is sent: answer.started, then each sentence's new answer.citations and its answer.delta, then answer.completed (the answer:{id} topic's events in the AsyncAPI document; each id counts from 1). A failure after the stream starts ends it with event: error, whose data is a problem object.
text/event-stream: Server-sent events; each data line is one answer event's data.
ErrorsLink to this section
invalid_request · credential_in_url · unsupported_api_version · unauthenticated · method_not_allowed · rate_limited · internal_error · service_unavailable · quota_exhausted · insufficient_scope · not_entitled · payload_too_large
ExampleLink to this section
POST https://api.askkelly.ai/v1/answers
Authorization: Bearer $KELLY_API_KEY
Content-Type: application/json{
"question": "What's the no-vig on Chiefs -110 and Bills -110?",
"state": "NJ"
}
{
"object": "answer",
"answer_id": "ans_gqpvxwaqdbdxwfndzq7k",
"status": "completed",
"category": 17,
"playbook": null,
"tier": "standard",
"supersedes": null,
"summary": "No-vig probability, Chiefs: 50.0% (Kelly, 17:30 UTC).",
"sentences": [
{
"index": 0,
"text": "Each side is 50.0% with the vig removed.",
"citations": [
"c1"
]
}
],
"citations": [
{
"citation_id": "c1",
"kind": "calculation",
"label": "Kelly remove vig calculation",
"source": "Kelly",
"as_of": "2026-10-04T17:30:00Z",
"ref": null,
"url": null,
"reviewed_at": null,
"formulas": [
"F1.7@1",
"F2.4@1"
]
}
],
"figures": [
{
"figure_id": "f1",
"field": "calculation_result.result.fair_probs",
"label": "No-vig probability, Chiefs",
"value": 0.5000000000000001,
"display": "50.0%",
"unit": "probability",
"as_of": "2026-10-04T17:30:00Z",
"source": "Kelly",
"citation_id": "c1",
"topic": null,
"selection_id": null,
"edge_status": null
},
{
"figure_id": "f2",
"field": "calculation_result.result.fair_probs",
"label": "No-vig probability, Bills",
"value": 0.5000000000000001,
"display": "50.0%",
"unit": "probability",
"as_of": "2026-10-04T17:30:00Z",
"source": "Kelly",
"citation_id": "c1",
"topic": null,
"selection_id": null,
"edge_status": null
}
],
"live_topics": [],
"rg_line": "21+ · Help: 1-800-MY-RESET",
"assumptions": [],
"links": {},
"as_of": "2026-10-04T17:30:00Z",
"source": "Kelly",
"attribution": null,
"created_at": "2026-10-04T17:30:00Z",
"completed_at": "2026-10-04T17:30:00Z"
}- Kelly · as of 2026-10-04T17:30:00Z
- Kelly · as of 2026-10-04T17:30:00Z
- Kelly · as of 2026-10-04T17:30:00Z
- Kelly · as of 2026-10-04T17:30:00Z
POST https://api.askkelly.ai/v1/answers
Authorization: Bearer $KELLY_API_KEY
Content-Type: application/json{
"question": "What's the no-vig on Chiefs -110 and Bills -110?",
"state": "NJ"
}
{
"type": "https://docs.askkelly.ai/problems/insufficient_scope",
"title": "Insufficient scope",
"status": 403,
"code": "insufficient_scope",
"detail": "This needs the run:answers scope.",
"param": "run:answers",
"doc_url": "https://docs.askkelly.ai/problems/insufficient_scope",
"request_id": "req_37db7038a23dd1ab2e0cdbd4",
"retryable": false,
"display_message": "This app needs one more permission to do that."
}POST https://api.askkelly.ai/v1/answers
Authorization: Bearer $KELLY_API_KEY
Content-Type: application/json{
"question": "What's the no-vig on Chiefs -110 and Bills -110?",
"state": "Ohio"
}
{
"type": "https://docs.askkelly.ai/problems/invalid_request",
"title": "Invalid request",
"status": 400,
"code": "invalid_request",
"detail": "state: String should match pattern '^[A-Za-z]{2}$'",
"param": "state",
"doc_url": "https://docs.askkelly.ai/problems/invalid_request",
"request_id": "req_34424fb3e3f0737c228d3168",
"retryable": false,
"display_message": "Something in that request was not understood."
}POST https://api.askkelly.ai/v1/answers
Authorization: Bearer $KELLY_API_KEY
Accept: text/event-stream
Content-Type: application/json{
"question": "What's the no-vig on Chiefs -110 and Bills -110?",
"state": "NJ"
}
"event: answer.started\nid: 1\ndata: {\"answer_id\":\"ans_z2dw1zfpzg0hg9cx1c4b\",\"status\":\"streaming\",\"category\":null,\"playbook\":null,\"tier\":\"standard\",\"supersedes\":null,\"live_topics\":[],\"created_at\":\"2026-10-04T17:30:00Z\"}\n\nevent: answer.citation\nid: 2\ndata: {\"answer_id\":\"ans_z2dw1zfpzg0hg9cx1c4b\",\"citation_id\":\"c1\",\"kind\":\"calculation\",\"label\":\"Kelly remove vig calculation\",\"source\":\"Kelly\",\"as_of\":\"2026-10-04T17:30:00Z\",\"ref\":null,\"url\":null,\"reviewed_at\":null,\"formulas\":[\"F1.7@1\",\"F2.4@1\"]}\n\nevent: answer.delta\nid: 3\ndata: {\"answer_id\":\"ans_z2dw1zfpzg0hg9cx1c4b\",\"index\":0,\"text\":\"Each side is 50.0% with the vig removed.\",\"citations\":[\"c1\"]}\n\nevent: answer.completed\nid: 4\ndata: {\"answer_id\":\"ans_z2dw1zfpzg0hg9cx1c4b\",\"status\":\"completed\",\"summary\":\"No-vig probability, Chiefs: 50.0% (Kelly, 17:30 UTC).\",\"rg_line\":\"21+ · Help: 1-800-MY-RESET\",\"assumptions\":[],\"links\":{},\"sentence_count\":1,\"live_topics\":[],\"as_of\":\"2026-10-04T17:30:00Z\",\"source\":\"Kelly\",\"attribution\":null,\"completed_at\":\"2026-10-04T17:30:00Z\"}\n\n"Generated from Kelly API 2026-10-05.