API v2
Full programmatic access to research, extraction, publications, and workspace management
https://api.webhound.ai/api/v2·57 endpoints·Bearer auth·JSON responses
Authentication
All requests require an API key in the Authorization header:
Authorization: Bearer wh_your_api_key_here
Get your API key from the Account page. Keys start with wh_
Response format
All endpoints return structured JSON. Every response follows this envelope:
Success
{ "success": true, "data": { ... } }
Error
{ "success": false, "error": "message" }
The data field contains the endpoint-specific payload — an object, array, or nested structure depending on the endpoint.
HTTP status codes
200 Success\n400 Bad request\n401 Invalid/missing key\n402 Insufficient credits\n403 Access denied\n404 Not found\n409 Conflict (wrong state)\n500 Server error
Workspace
Endpoints
- GET
/workspaceBrowse folder tree - GET
/workspace/folders/:folderIdList folder contents - POST
/workspace/foldersCreate folder - PATCH
/workspace/folders/:folderIdRename folder - DELETE
/workspace/folders/:folderIdDelete folder - POST
/workspace/sessions/:sessionId/moveMove session to folder
Session Discovery
Endpoints
- GET
/sessionsList sessions - GET
/sessions/searchSemantic search sessions - GET
/sessions/findFind by metadata - GET
/sessions/search-documentsText search across documents - GET
/sessions/search-knowledgeSearch knowledge bases - GET
/sessions/search-claimsSearch claims
Session Reading
Endpoints
- GET
/sessions/:sessionIdSession overview - GET
/sessions/:sessionId/documentRead document - GET
/sessions/:sessionId/datasetRead dataset rows - GET
/sessions/:sessionId/claimsGet claims - GET
/sessions/:sessionId/tasksWork log - GET
/sessions/:sessionId/sourcesCited sources - GET
/sessions/:sessionId/knowledge-baseKnowledge base - GET
/sessions/:sessionId/notepadAgent notepad - GET
/sessions/:sessionId/messagesMessage history - POST
/sessions/:sessionId/messagesSend a message - GET
/sessions/:sessionId/extraction-planExtraction plan - GET
/sessions/:sessionId/statusJob status
Session Management
Endpoints
- PATCH
/sessions/:sessionIdRename session - DELETE
/sessions/:sessionIdDelete session
Research
Endpoints
- POST
/researchStart research - POST
/research/:sessionId/budgetAdd research budget - POST
/research/:sessionId/auditAdd audit budget - POST
/research/:sessionId/stopStop research - POST
/research/:sessionId/resumeResume session
Extraction
Endpoints
- POST
/extractionsStart extraction - POST
/extractions/:sessionId/stopStop extraction - GET
/extractions/:sessionId/itemsGet dataset items - POST
/extractions/importImport spreadsheet - POST
/extractions/forkFork dataset
Pipelines
Endpoints
- POST
/chainsStart pipeline - POST
/chains/:chainId/pausePause pipeline - POST
/chains/:chainId/resumeResume pipeline
Files
Endpoints
- GET
/filesList files - GET
/files/:fileIdRead file - POST
/files/uploadUpload file - POST
/files/attachAttach files to session
Publications
Endpoints
- POST
/publicationsPublish research - GET
/publicationsList publications - GET
/publications/feedPersonal feed - GET
/publications/:idOrSlugGet publication - GET
/publications/:id/versionsVersion history - GET
/publications/:id/attributionAttribution chain - POST
/publications/:id/copyCopy to workspace - POST
/publications/:id/watchToggle watch - PATCH
/publications/:idUpdate publication - DELETE
/publications/:idDelete publication
Authors
Endpoints
- POST
/authors/:authorId/followToggle follow - GET
/authors/:authorIdAuthor profile
Account
Endpoints
- GET
/account/creditsCredit balance - GET
/account/usageSpending history
Workflows
Common multi-step patterns using the API.
Research, Read, Publish
- Start research
curl -X POST https://api.webhound.ai/api/v2/research \
-H "Authorization: Bearer wh_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "AI Governance", "query": "Research AI governance frameworks in 2026", "budget": 15 }'
- Poll status until completed
curl https://api.webhound.ai/api/v2/sessions/{session_id}/status \
-H "Authorization: Bearer wh_YOUR_KEY"
# Repeat every 10s until status = "completed"
- Read the output document
curl https://api.webhound.ai/api/v2/sessions/{session_id}/document \
-H "Authorization: Bearer wh_YOUR_KEY"
- Read verified claims
curl https://api.webhound.ai/api/v2/sessions/{session_id}/claims \
-H "Authorization: Bearer wh_YOUR_KEY"
- Publish to community
curl -X POST https://api.webhound.ai/api/v2/publications \
-H "Authorization: Bearer wh_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "folder_id": "...", "title": "AI Governance Report", "license": "open" }'
Extraction Pipeline
- Start a multi-step pipeline
curl -X POST https://api.webhound.ai/api/v2/chains \
-H "Authorization: Bearer wh_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Competitor Intel", "steps": [{ "type": "research", "query": "Map competitor landscape", "budget": 10 }, { "type": "extraction", "query": "Extract company data", "budget": 5 }] }'
- Poll status of each step
curl https://api.webhound.ai/api/v2/sessions/{session_id}/status \
-H "Authorization: Bearer wh_YOUR_KEY"
- Get the extracted dataset
curl https://api.webhound.ai/api/v2/extractions/{session_id}/items \
-H "Authorization: Bearer wh_YOUR_KEY"
Research with Audit
- Start research
curl -X POST https://api.webhound.ai/api/v2/research \
-H "Authorization: Bearer wh_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "title": "Drug Policy Analysis", "query": "Analyze drug decriminalization outcomes", "budget": 20 }'
- Wait for completion
# Poll /sessions/{session_id}/status until status = "completed"
- Add audit to verify claims
curl -X POST https://api.webhound.ai/api/v2/research/{session_id}/audit \
-H "Authorization: Bearer wh_YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{ "amount": 10, "focus": "Fact-check all statistics and check source reliability" }'
- Read audited claims with confidence scores
curl https://api.webhound.ai/api/v2/sessions/{session_id}/claims \
-H "Authorization: Bearer wh_YOUR_KEY"