Your privacy choices

We use necessary storage to keep you signed in and save your preferences. Optional analytics helps us understand product use. It stays off unless you allow it.

Details and settings
Skip to content
API reference

DoneHat API reference

DoneHat has two API surfaces: public audit endpoints for free reports and a Pro/Enterprise brand-account API for programmatic access to brand accounts, visibility scans, answer checks, issues, and analysis outputs.

Public base: https://api.donehat.com/apiAuthenticated base: https://api.donehat.com/api/v1Content-Type: application/json

Spreadsheets and BI tools

Paste a CSV endpoint URL with ?key=… into Google Sheets (IMPORTDATA) or your BI tool's URL connector, then build Looker Studio reports from that sheet. Treat the key like a password: anyone who can open the sheet can read it, and you can revoke it under API keys. Two trailing columns, window_days and window_n, are filled on daily and twice-daily plans (a 7-day pooled window) and empty on weekly plans.

Authentication

Public audit endpoints are rate-limited and do not require an API key. Brand-account endpoints requireAuthorization: Bearer dk_live_...and API access is limited to Pro and Enterprise plans. Create keys inside the app from Developer API Keys.

curl https://api.donehat.com/api/v1/workspaces \
  -H "Authorization: Bearer dk_live_your_key"

Public audit endpoints

Used by the free audit, share links, badges, generated content, and public benchmark data.

POST/api/auditApp session

Run a public AI visibility audit

Starts an audit for a signed-in user with verified email and a completed business profile. Free access also requires a business email and an unused one-time trial. Paid entitlements govern ongoing AI work; existing report links remain public.

Parameters

  • url(string, required)- Website or domain to audit.
  • brandContext.tagline(string, optional)- Optional positioning line.
  • brandContext.pricingModel(string, optional)- Optional pricing model context.
  • brandContext.targetMarket(string, optional)- Optional target customer context.
GET/api/audit/:refPublic

Fetch a public audit report

Resolves a cached audit by id or slug and returns the same report object shown in the public audit UI.

GET/api/audit/s/:slugPublic

Fetch a public audit by share slug

Returns a public audit report by its share-friendly slug.

GET/api/audit/:ref/pdfPublic

Download audit PDF

Returns a PDF version of a public audit. A brand-account query parameter can apply configured agency branding.

POST/api/audit/:ref/sharePublic

Email a public audit

Sends an audit share email to one or more recipients.

Parameters

  • emails(string[], required)- One to twenty recipient email addresses.
  • senderNote(string, optional)- Optional note included in the email.
GET/api/audit/:ref/badge.svgPublic

Embed score badge

Returns an SVG badge with the audit score and grade for use on a website or report.

POST/api/audit/:ref/generate/comparisonPublic

Generate a comparison outline

Returns an evidence-backed comparison page outline for the audited brand and a named competitor.

Parameters

  • competitor(string, required)- Competitor brand name.
POST/api/audit/:ref/generate/faqPublic

Generate FAQ content

Returns FAQ copy and FAQPage JSON-LD based on missed buyer questions in the audit.

POST/api/audit/:ref/generate/schemaPublic

Generate schema markup

Returns Organization and SoftwareApplication-oriented JSON-LD when the audit has enough brand context.

GET/api/audit/:ref/generate/llms-txtPublic

Generate llms.txt

Returns a tailored llms.txt response. Add ?download=1 to download the text file.

GET/api/indexPublic

List visibility index categories

Returns public AI Visibility Index category summaries.

GET/api/index/:verticalIdPublic

Fetch a vertical leaderboard

Returns ranked brands for one vertical. Supports ?limit=50, capped at 100.

GET/api/index/:verticalId/rank?brand=NamePublic

Look up a brand rank

Returns rank, total, and percentile for a brand in a vertical.

GET/api/benchmarks/:categoryPublic

Fetch benchmark score

Matches a category string to the benchmark library and returns the current benchmark score when available.

Authenticated brand-account API

Available to Pro and Enterprise users with API keys.

GET/api/v1/workspacesBearer API key

List accessible brand accounts

Returns brand-account summaries for the API key owner.

GET/api/v1/workspaces/:idBearer API key

Fetch brand-account payload

Returns the full brand-account payload used by the app dashboard.

POST/api/v1/workspaces/:id/baselinesBearer API key

Queue a visibility scan

Queues a visibility scan. The API key owner must have owner or editor access to the brand account.

GET/api/v1/workspaces/:id/issuesBearer API key

List brand-account issues

Returns issue type, priority, status, summary, buyer-question group, and recommendation fields.

GET/api/v1/workspaces/:id/observationsBearer API key

List observations

Returns answer checks for a brand account. Add ?baselineId=... to filter to one scan.

GET/api/v1/workspaces/:id/share-of-voiceBearer API key

Compute share of voice

Computes brand share of voice against configured competitors using the latest visibility scan.

GET/api/v1/workspaces/:id/observations.csvBearer API key

Export observations as CSV

The observations list as RFC 4180 CSV for spreadsheets and BI tools. Also accepts ?key=dk_live_… for importers that cannot set headers; ?baselineId=... filters to one scan.

GET/api/v1/workspaces/:id/share-of-voice.csvBearer API key

Export share of voice as CSV

Competitor rankings from the latest usable scan, one row per brand, with the 95% range and the measurement status repeated on every row. Two trailing columns, window_days and window_n, are filled on daily and twice-daily plans (a 7-day pooled window) and empty on weekly plans.

GET/api/v1/workspaces/:id/citeabilityBearer API key

Run citeability analysis

Analyzes the brand-account website for answer-friendly content, schema, proof density, freshness, and llms.txt signals.

GET/api/v1/workspaces/:id/fact-checkBearer API key

Check claims against brand facts

Compares latest observations against configured brand facts and returns accuracy metrics.

POST/api/v1/keysApp session

Create API key

Session-authenticated app endpoint. API key creation is available on Pro and Enterprise.

GET/api/v1/keysApp session

List API keys

Session-authenticated app endpoint that returns key metadata, not secret values.

DELETE/api/v1/keys/:idApp session

Delete API key

Session-authenticated app endpoint that deletes one key owned by the current user.

Limits and errors

API key requests are limited to 100 requests per minute per key. Public audit endpoints use stricter anti-abuse limits by IP and user agent. Error responses use JSON with an error field. For higher-volume use, contact us.