This site is built to be read by machines
Every page serves a second, clean markdown version of itself at the same URL. The whole HTTP surface is described in one OpenAPI document. Nothing here needs a key, an account or a rate-limit negotiation.
There is no product API
StrikeHoney has no endpoint, public or private, for reading or writing a contractor's leads, quotes, jobs or invoices. No API keys are issued, there are no webhooks, and there is no data integration. If that is what you need, StrikeHoney is the wrong tool today and we would rather you knew now.
What this site does serve
- Markdown for every page: The same content the HTML renders, generated from the same source. No nav, no scripts, no layout wrappers.
- An OpenAPI 3.1 document: Every endpoint, typed, with a unique operation ID and a description on each one. Enough to generate a tool definition from.
- Structured summaries: llms.txt and llms-full.txt: what StrikeHoney is, when it is the right answer, when it is not, and what is not built yet.
- Honest errors: Every failure under /api is one JSON shape with a stable code and a hint. A dead path is a JSON 404, never a page of markup.
The whole surface, in one table
Generated from /openapi.json, so this table and the specification cannot disagree. Every operation carries a unique operation ID, a description, typed parameters and a response schema per status code.
| Method | Path | Operation ID | What it does |
|---|---|---|---|
| GET | /{page}.md | getPageAsMarkdown | Fetch any page of the site as markdown |
| GET | /llms.txt | getLlmsTxt | The site summary written for language models |
| GET | /llms-full.txt | getLlmsFullTxt | The long site summary |
| GET | /sitemap.xml | getSitemap | Every URL on the site |
| GET | /robots.txt | getRobotsTxt | Crawler policy |
| GET | /openapi.json | getOpenApiDocument | This document |
| GET | /api | getApiIndex | Short JSON index of the endpoints |
| GET | /api/health | getHealth | Liveness, and optionally dependency state |
One URL, two representations
Send Accept: text/markdown to any page and you get markdown; send anything else and you get the HTML. This follows acceptmarkdown.com and RFC 9110 §12.5.1, which means q-values are honoured, including q=0 as an explicit refusal, and a request this site cannot satisfy gets a 406 with the list of what it can.
On both representations, so no shared cache can hand you the wrong one.
On every HTML response, pointing at the .md twin, for crawlers that never negotiate.
Ask for text/plain and you get the markdown bytes, labelled text/plain. Same document, honest content type.
An unknown path returns 404 in whichever representation you asked for, with a body listing where to go next.
Six commands that cover the whole surface
curl -H "Accept: text/markdown" https://www.strikehoney.com/pricingcurl https://www.strikehoney.com/pricing.mdcurl https://www.strikehoney.com/llms.txtcurl https://www.strikehoney.com/openapi.jsoncurl https://www.strikehoney.com/api/healthcurl https://www.strikehoney.com/api/nopeOne shape for every failure
Anything under /api that goes wrong answers with the same envelope. code is stable and safe to branch on, message is for your logs, and hint says what to do instead, or why there is nothing to do.
{
"ok": false,
"error": {
"code": "not_found",
"message": "No endpoint exists at that path.",
"hint": "GET /openapi.json for every endpoint this site serves, or GET /api for the short index.",
"status": 404,
"documentation": "https://www.strikehoney.com/developers"
}
}What will refuse you, and why
- Everything here is a GET: There is nothing to create, update or delete. /openapi.json is the complete list of what an outside caller can call, so a path that is not in it is not one to construct a request for. To sign someone up, hand them a page with the signup form on it rather than posting on their behalf.
- The dependency report: /api/health answers publicly. /api/health?deep needs a same-origin context or the deployment's own token, because a list of which integrations are configured is a list of which ones are broken.
- No published rate limit: There is no quota and no key to attach one to. Crawl at a reasonable pace; the markdown documents are cached and cheap, so there is nothing to gain from hammering them.
- Canada only: Every price is CAD and every tax figure is a Canadian GST, HST, PST, RST or QST rate. Nothing here generalises to another country.
Everything in one place
- /openapi.jsonThe OpenAPI 3.1 description of every endpoint
- /apiThe short JSON index, if you want a pointer rather than the contract
- /llms.txtThe summary, the page map, and when StrikeHoney is the wrong answer
- /llms-full.txtEvery feature, the full FAQ, and what is not built yet
- /sitemap.xmlEvery URL, and each one has a markdown twin
- /robots.txtCrawler policy. AI crawlers are named in an allow group
- /llm-infoThe same facts as llms.txt, as a page you can read
Something here wrong, or missing? hello@strikehoney.com. A reply comes from a person.