# Exayard Developers > Build on Exayard, the AI construction takeoff and estimating platform: the REST API, the MCP server, webhooks, the TypeScript SDK and the CLI. Each page below is plain Markdown. Any docs page is also Markdown at its address with .md added, and the home page is https://developers.exayard.com/index.md. ## Get started - [Introduction](https://developers.exayard.com/index.md): Exayard is an AI-powered construction takeoff and estimation platform. This developer center is the place to start for anyone building on it: a backend that posts line items, an IDE agent that plan... - [Quickstart](https://developers.exayard.com/quickstart.md): Make a key in a sandbox, install the SDK, make a first call without naming a company, then go live by swapping the key. - [Authentication](https://developers.exayard.com/authentication.md): The credentials Exayard accepts, how a call finds its company, letting other companies install your app, GET /v1/me, personal connections and OAuth for MCP. - [Apps and keys](https://developers.exayard.com/apps-and-keys.md): Keys live in apps. Key format, which company a key works in, 25 keys per app, expiry, revoking, rate limits per key, older keys, and what happens when a key leaks. - [Environments and sandboxes](https://developers.exayard.com/environments.md): Test in a sandbox: a company linked to yours that follows your plan, bills to your company and holds outgoing bids and texts. Go live by swapping the key. - [Pricing](https://developers.exayard.com/pricing.md): The API, keys, webhooks and integrations are free on every plan. AI work is paid from the company AI usage: 1 credit is $1, and charged REST resources say what they cost. - [Changelog](https://developers.exayard.com/changelog.md): What changed in the Exayard API, MCP server, webhooks, SDK, CLI and these docs. Newest first. ## Concepts - [Webhook events](https://developers.exayard.com/concepts/webhooks.md): Every webhook event type Exayard sends, with when it is sent and the fields of its data, plus the envelope every delivery shares. - [End users](https://developers.exayard.com/concepts/end-users.md): Tag each REST call with your own customer id in the Exayard-End-User header, then find their calls in the Developer page Logs and read their AI usage with GET /v1/usage. - [Accounts for your customers](https://developers.exayard.com/concepts/customer-accounts.md): Your app can create Exayard companies for customers who use Exayard only through your product. Your company pays for their AI work. - [Errors (RFC 9457)](https://developers.exayard.com/concepts/errors.md): Every non-2xx response from /v1 returns Content-Type: application/problem+json per RFC 9457 Problem Details: - [Rate limits](https://developers.exayard.com/concepts/rate-limits.md): Every authenticated /v1 response carries the rate-limit headers in two forms. The IETF draft structured fields: - [Idempotency](https://developers.exayard.com/concepts/idempotency.md): Send an Idempotency-Key on a write so a retry never does the work twice: what is cached, for how long, and what is never cached. - [Pagination](https://developers.exayard.com/concepts/pagination.md): Most list endpoints return a plain JSON array of every matching record, with no paging: - [Scopes](https://developers.exayard.com/concepts/scopes.md): A scope names one kind of access. API keys and registered apps carry scope lists, and every endpoint that reads or changes data needs one. A call without the scope gets 403 insufficient_scope; deta... - [Document sharing](https://developers.exayard.com/concepts/document-sharing.md): Documents are private by default. A document you create through /v1 or through an MCP tool is readable by your company and nobody else until someone turns sharing on. - [Agent rate limits & observability](https://developers.exayard.com/concepts/ai-gateway.md): Agents reach Exayard two ways: the REST API at https://api.exayard.com/v1 and the MCP server at https://api.exayard.com/mcp. Each has its own limits, so agent traffic on MCP does not use up REST al... ## Guides - [Run a takeoff](https://developers.exayard.com/guides/run-a-takeoff.md): From start to finish: plan upload, then the AI assessment, then symbols on the canvas. The same sequence ships as an MCP prompt (takeoff_from_plans) and as an Arazzo workflow. - [Subscribe to webhooks](https://developers.exayard.com/guides/subscribe-to-webhooks.md): Register an endpoint, verify signatures, handle retries, send test events, read deliveries, resend one, and forward events to your laptop with exayard listen. - [Use the CLI](https://developers.exayard.com/guides/use-the-cli.md): Install the exayard CLI, sign in in the browser or with a key, run every API operation as a command, forward webhooks with exayard listen, and branch on exit codes. ## Agents - [MCP overview](https://developers.exayard.com/mcp/overview.md): Exayard exposes the Model Context Protocol at https://api.exayard.com/mcp. It uses the Streamable HTTP transport and is protected by OAuth. Most REST API operations are also tools, named by their o... - [Install in your client](https://developers.exayard.com/mcp/install.md): Open the MCP panel from the account menu (or go to exayard.com/?mcp=1) for ready-to-copy install blocks for each client. What follows is the raw shape for reference. - [Prompts](https://developers.exayard.com/mcp/prompts.md): MCP prompts are named workflow playbooks that show up as slash-commands in Claude Desktop and Cursor. Each encodes the correct sequence of tool calls so an agent doesn't have to re-derive it every... - [Dynamic Client Registration](https://developers.exayard.com/mcp/dcr.md): Third-party MCP clients can register themselves without a person creating an OAuth app. Exayard's authorization server is Clerk, and Clerk hosts the registration endpoint. We don't run our own, and... ## API reference - [API operations](https://api.exayard.com/llms.txt): one Markdown page per REST operation, built from the OpenAPI spec - [OpenAPI spec](https://api.exayard.com/v1/openapi.json): the whole API as OpenAPI 3.1 JSON