Research a question with cited sources
Research a question about a package, GitHub repository, or documentation site and receive a Markdown answer with links to its sources. Continue the conversation with follow-up questions in the same thread. Answer generation can take up to 210 seconds.
Use this experimental endpoint when you want an explanation based on project documentation and code.
curl --request POST \
--url https://api.githits.dev/v1/experimental/research \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"question": "What about async handlers?",
"thread_id": "01900000-0000-7000-8000-000000000002"
}
'{
"answer_markdown": "Express forwards synchronous errors to error middleware. [Source 1]",
"sources": [
{
"url": "https://github.com/expressjs/express/blob/abc123/lib/router/index.js#L1-L20"
}
],
"thread_id": "01900000-0000-7000-8000-000000000002",
"tool_call_id": "01900000-0000-7000-8000-000000000001"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
Optional client attribution: trimmed printable ASCII, at most 80 bytes. Invalid optional values are dropped.
Optional client-version attribution: trimmed printable ASCII, at most 80 bytes. Invalid optional values are dropped.
Optional agent attribution: trimmed printable ASCII, at most 160 bytes. Invalid optional values are dropped.
Optional caller-defined session ID: one to 64 ASCII letters, digits, underscores or hyphens, preserved exactly. Supply the header at most once. Invalid supplied IDs return 400 INVALID_SESSION_ID; no session is created.
1 - 64^[A-Za-z0-9_-]{1,64}$Body
- Option 1
- Option 2
Start a research thread or continue it with a follow-up question.
Response
Generated Markdown, ordered source URLs, and execution and thread identifiers
Generated answer, cited source URLs, and identifiers for diagnostics and follow-up questions.
Generated Markdown; citations and source order are preserved.
Source URLs in their original order. Citation numbers are not array indices; entries without URLs are omitted.
Show child attributes
Show child attributes
Thread identifier (UUIDv7) to reuse for follow-up questions.
Execution identifier (UUIDv7) for diagnostics.
curl --request POST \
--url https://api.githits.dev/v1/experimental/research \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"question": "What about async handlers?",
"thread_id": "01900000-0000-7000-8000-000000000002"
}
'{
"answer_markdown": "Express forwards synchronous errors to error middleware. [Source 1]",
"sources": [
{
"url": "https://github.com/expressjs/express/blob/abc123/lib/router/index.js#L1-L20"
}
],
"thread_id": "01900000-0000-7000-8000-000000000002",
"tool_call_id": "01900000-0000-7000-8000-000000000001"
}