HTTP API

API reference

HTTP endpoints for building apps, running audits and sending contact requests. Every request and response is JSON.

The machine-readable spec is at /openapi.json. The app and audit endpoints are for the Origami team and need the team password (HTTP Basic auth); the contact endpoint is open. Endpoints may change during early access. Agent tools for AI assistants are served over MCP, not this API.

POST /api/apps

Build a company's AI app from its website. Crawls the public site, extracts plans, prices and cited sections, and publishes an MCP app at /mcp/{id}. Calling it again for the same site refreshes the app. Takes up to 45 seconds.

FieldTypeNotes
urlrequiredstringCompany website. A scheme is optional. Example: "acme.com"

Responses

  • 200 App ready
  • 400 Missing or invalid address
  • 422 The site couldn't be read

Example

curl -X POST https://origami.example/api/apps -u team:$ORIGAMI_TEAM_PASSWORD \
  -H "content-type: application/json" \
  -d '{"url": "acme.com"}'

POST /api/audit

Audit a company's website for AI readiness. Crawls the public site (sitemap first, then links; up to 80 pages, about 30 seconds at most), labels each page, and scores how well an AI agent can explain, price, prove and sell the company. Only public websites are allowed.

FieldTypeNotes
urlrequiredstringCompany website. A scheme is optional. Example: "acme.com"

Responses

  • 200 Audit result
  • 400 Missing or invalid address
  • 422 The site couldn't be read (blocked, too slow or unreachable)

Example

curl -X POST https://origami.example/api/audit -u team:$ORIGAMI_TEAM_PASSWORD \
  -H "content-type: application/json" \
  -d '{"url": "acme.com"}'

POST /api/contact

Send a message to the Origami team.

FieldTypeNotes
namerequiredstringUp to 120 characters.
emailrequiredstring (email)
websiterequiredstringUp to 200 characters.
industrystringUp to 60 characters. Example: "Software"
assistantsarrayExample: ["ChatGPT","Claude"]
topic"demo" | "enterprise" | "partnership" | "other"
messagestringUp to 4000 characters.

Responses

  • 200 Message received
  • 400 Invalid fields

Example

curl -X POST https://origami.example/api/contact \
  -H "content-type: application/json" \
  -d '{"name": "Jo Lee", "email": "jo@acme.com", "website": "acme.com", "topic": "demo"}'