Using the QuoteCrest API
QuoteCrest

Using the QuoteCrest API

Connect your own application or ERP to QuoteCrest with the REST API — quotes, clients, payments, AI generation, and accounting sync.

Overview

On the Business plan, QuoteCrest exposes a full REST API so your own software — an ERP, a CRM, a field-service app — can drive quoting directly. Everything the app can do is available: quotes and line items, clients, the item library, tax rates, terms templates, payments, PDF rendering, the AI quote builder, and accounting sync triggers.

The complete, always-current endpoint reference lives at quotecrest.com/api-docs.

Getting access

  1. Make sure your team is on the Business plan (Settings → Billing). API calls from Free or Pro teams return 403 plan_required.
  2. Go to Settings → Developers and click Register application.
  3. Give it a name, your redirect URI (HTTPS, or localhost during development), and the scopes you need: read for read access, write to create and update.
  4. Copy the Client Secret when it's shown — it appears exactly once. The Client ID stays visible on the application page.

Authenticating

The API uses OAuth 2.0 Authorization Code with PKCE — no API keys. Your app sends a user to /oauth/authorize, they approve the requested scopes, and you exchange the returned code (plus your PKCE verifier) at /oauth/token for an access token.

  • Access tokens last 2 hours; use the refresh token to get a new pair.
  • Refresh tokens rotate on every use — always store the newest pair.
  • Each token is bound to one team: the team of the user who authorized it.

Send the token on every request:

Authorization: Bearer YOUR_ACCESS_TOKEN

Start with GET /api/v1/me — it returns the authorized team, its quote defaults, and your token's scopes.

What you can build

  • Quote automation — create clients and quotes (POST /api/v1/quotes), add line items in bulk, send or publish, and download the PDF. Team defaults (terms, expiry, payment terms, pricing mode) apply automatically.
  • AI quotingPOST /api/v1/ai_quotes turns a plain-language job description into a complete draft quote using your item library.
  • Payment tracking — poll quote status / payment_status or list /api/v1/payments for amounts, fees, and net payouts.
  • Accounting — check connection status at GET /api/v1/integrations and trigger a QuickBooks or Xero catalog pull with POST /api/v1/integrations/{provider}/sync.

For a full walkthrough with example requests, read our two-part guide: setting up your workspace and connecting your app to the API.

Limits and errors

  • General API traffic is rate-limited per IP; AI generation is limited to 10 requests per minute per team. A 429 response means back off and retry.
  • 401 — expired or revoked token (refresh and retry). 402 insufficient_credits — the team's AI credit balance is used up. 422 — validation errors, with details in the body.

Revoke a connected application anytime from Settings → Developers, or as an end user from your authorized-applications page — its tokens stop working immediately.