OyeChats
FeaturesSolutionsIntegrationsPricingDocsBlogContact us

Endpoint reference

The endpoints most integrations use, grouped by what they are for. The [OpenAPI specification](/docs/api/overview) is the exhaustive list.

Chatbots

  • GET/botsList every chatbot in the workspace.
  • POST/botsCreate a chatbot. Subject to your plan's chatbot limit.
  • GET/bots/{bot_id}Full configuration for one chatbot.
  • PATCH/bots/{bot_id}Update configuration. Prompt, appearance, copy, live chat, qualification.
  • DELETE/bots/{bot_id}Delete a chatbot and everything it owns.
  • GET/bots/{bot_id}/framework-presetsThe qualification framework presets and their default weights.
  • GET/bots/{bot_id}/recrawlRead automatic re-crawl settings.
  • PATCH/bots/{bot_id}/recrawlEnable or disable automatic re-crawl.

Knowledge base

  • GET/documentsList indexed documents and pages.
  • GET/documents/knowledge-stateWhether a chatbot is trained, and on how much.
  • POST/ingest/preview-costCredit cost for an upload, before you commit to it.
  • POST/ingestUpload files (multipart). Returns a job id.
  • GET/ingest/status/{job_id}Poll ingestion progress.
  • DELETE/documents/{document_name}Remove a document and its indexed passages.
  • POST/crawl/discoverDiscover crawlable pages for a URL without indexing them.
  • POST/crawlStart a crawl. Returns 202; poll progress.
  • GET/crawl/progressLive crawl progress.
  • POST/crawl/cancelCancel a running crawl. Pages already indexed are kept.
Two-step ingestion is the point. Call the cost preview before the upload or crawl. It is the only way to know what you are about to spend, and it rejects unsupported or oversized files without charging.

Leads

  • GET/leadsList leads. Filter by bot_id, tier, min_score; paginate with page and limit (max 200).
  • GET/leads/{session_id}One lead with its full transcript and dimension breakdown.
  • GET/leads/statsLead counts by tier.
  • GET/leads/exportCSV export. Starter and above.
  • POST/leads/{session_id}/follow-upSend a follow-up email. Costs 1 credit.
curl. Today's sales-qualified leads
curl -G https://api.oyechats.com/leads \
  -H "X-API-Key: $OYECHATS_API_KEY" \
  --data-urlencode "tier=sql" \
  --data-urlencode "limit=100"

Analytics

  • GET/analytics/dashboardAggregate counts for a window.
  • GET/analytics/qualification-funnelTier distribution and stage conversion.
  • GET/analytics/top-questionsWhat visitors ask most.
  • GET/analytics/unanswered-questionsWhat the chatbot could not answer.
  • GET/analytics/ratings-summaryVisitor rating average and distribution.
  • GET/analytics/resolution-summaryResolution outcomes.
  • GET/analytics/journey/summaryVisitor journey overview. Standard and above.

Webhooks

  • GET/webhooksList endpoints for a chatbot (bot_id required). Secrets come back masked.
  • POST/webhooksCreate an endpoint. The response contains the signing secret in full. This is the only time it is returned.
  • PATCH/webhooks/{webhook_id}Change the URL, the subscribed events, or the active flag.
  • DELETE/webhooks/{webhook_id}Delete an endpoint.
  • POST/webhooks/{webhook_id}/testSend a test delivery.
  • GET/webhooks/{webhook_id}/deliveriesPer-attempt delivery log with status codes and bodies.

Account and billing

  • GET/auth/meThe authenticated account.
  • GET/auth/me/entitlementsResolved plan limits, features and current usage. The right way to check a gate before acting.
  • GET/credits/balanceCurrent credit balance.
  • GET/credits/historyCredit ledger entries.
  • GET/subscriptions/currentActive subscription and status.
  • GET/subscriptions/usageUsage against plan limits for the period.
  • GET/subscriptions/invoicesInvoice history with PDF links.
  • GET/client/api-keyRead the workspace API key.
  • POST/client/api-key/regenerateRotate it. The previous key stops working immediately.
Check entitlements, do not hardcode plan names. GET /auth/me/entitlements returns the resolved limits and feature flags for the account. Branching on that is stable; branching on a plan slug breaks the moment plans change.

Widget endpoints

These authenticate with X-Bot-Key and exist so the widget can work. They are documented because they are visible in any browser's network tab, not because you are expected to call them. Build on the widget or on webhooks instead.

  • GET/bots/settings/publicPublic appearance and behaviour configuration for a chatbot.
  • POST/chat/streamAsk a question and stream the reply. 30 per minute per bot key.
  • POST/chat/lead-captureSubmit the lead form.
  • GET/chat/history/{session_id}Rehydrate a conversation on reload.
  • POST/operators/handoffRequest a human.
Not a public chat API. A general-purpose conversation API is on the roadmap and marked as such in the dashboard. Until it ships, these endpoints exist to serve the widget and their contracts can change without a deprecation window.

Something here wrong or missing? Tell us and name this page. We will fix it.