Puzzle

Puzzle is an AI-powered accounting platform for startups, SMBs, and accounting firms, built around a real-time, append-only general ledger. Its agent-native architecture pairs deterministic Puzzle agents that draft categorization, reconciliation, and month-end close for human review with native integrations to banking, card, revenue, and payroll systems (Stripe, Brex, Mercury, Ramp, Gusto, Rippling, and more). The Puzzle Accounting API gives developers programmatic, OAuth 2.0 + PKCE-secured access to the same ledger: transactions, chart of accounts, journal entries, bills, invoices, vendors, customers, payroll, financial statements (income statement, balance sheet, cash activity), and metrics such as burn, runway, and revenue. A companion read-only MCP server connects AI tools like Claude, Cursor, and Windsurf to the ledger for natural-language financial analysis.

Puzzle publishes 22 APIs on the APIs.io network, including Accounts API, Attachments API, Bills API, and 19 more. Tagged areas include Company, Accounting, Financial, Bookkeeping, and Fintech.

Puzzle’s developer surface includes documentation, API reference, getting-started guide, pricing, engineering blog, support, signup flow, and 27 more developer resources.

50.3/100 developing ▬ flat Agent 72/100 agent native Full breakdown ↓
scored 2026-07-27 · rubric v0.5
AccessSelf serve
22 APIs 1 MCP Servers
CompanyAccountingFinancialBookkeepingFintechGeneral LedgerPayrollAgent-NativeMCP

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-27 · rubric v0.5
Composite quality — 50.3/100 · developing
Contract Quality 11.1 / 25
Developer Ergonomics 14.8 / 20
Commercial Clarity 12.1 / 20
Operational Transparency 2.4 / 13
Governance 0.0 / 12
Discoverability 10.0 / 10
Agent readiness — 72/100 · agent native
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 12 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 8 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 0 / 7
Typed Event Surface 0 / 6
Agent Skills 5 / 5
Well-Known Catalog 4 / 4
Consent & Bot Identity 3 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/puzzle: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 22

Individual APIs this provider publishes, each with its own machine-readable definition.

Puzzle Accounts API

The Accounts API from Puzzle — 3 operation(s) for accounts.

Puzzle Attachments API

The Attachments API from Puzzle — 1 operation(s) for attachments.

Puzzle Bills API

The Bills API from Puzzle — 3 operation(s) for bills.

Puzzle Company API

The Company API from Puzzle — 10 operation(s) for company.

Puzzle Customers API

The Customers API from Puzzle — 2 operation(s) for customers.

Puzzle Departments API

The Departments API from Puzzle — 1 operation(s) for departments.

Puzzle Documents API

The Documents API from Puzzle — 1 operation(s) for documents.

Puzzle Invoices API

The Invoices API from Puzzle — 2 operation(s) for invoices.

Puzzle JournalEntries API

The JournalEntries API from Puzzle — 2 operation(s) for journalentries.

Puzzle JournalEntry API

The JournalEntry API from Puzzle — 2 operation(s) for journalentry.

Puzzle Locations API

The Locations API from Puzzle — 1 operation(s) for locations.

Puzzle Metrics API

The Metrics API from Puzzle — 5 operation(s) for metrics.

Puzzle OAuth API

The OAuth API from Puzzle — 2 operation(s) for oauth.

Puzzle Onboarding API

The Onboarding API from Puzzle — 1 operation(s) for onboarding.

Puzzle Payroll API

The Payroll API from Puzzle — 6 operation(s) for payroll.

Puzzle Products API

The Products API from Puzzle — 2 operation(s) for products.

Puzzle Reports API

The Reports API from Puzzle — 7 operation(s) for reports.

Puzzle Requests API

The Requests API from Puzzle — 1 operation(s) for requests.

Puzzle Tasks API

The Tasks API from Puzzle — 2 operation(s) for tasks.

Puzzle Transactions API

The Transactions API from Puzzle — 3 operation(s) for transactions.

Puzzle User API

The User API from Puzzle — 3 operation(s) for user.

Puzzle Vendors API

The Vendors API from Puzzle — 2 operation(s) for vendors.

Scroll for all 22

MCP Servers 1

Model Context Protocol servers that expose these APIs to AI agents.

puzzle-mcp.yml

MCP SERVER

Security Posture 4

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Puzzle Authentication

oauth2 · 1 scheme

SECURITY

Puzzle Domain Security

TLSv1.3 · HSTS · DNSSEC · DMARC

SECURITY

Puzzle Vulnerability Disclosure

security.txt · contact published

SECURITY

Puzzle Trust Center

SOC 2

SECURITY

Scopes 1

OAuth scopes governing access to this provider's APIs.

Puzzle Scopes

21 scopes

21 scopes

SCOPES

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Puzzle Agentic Access

81 operations · 38 acting

81 operations · 38 acting

AGENTIC

Resources

Get Started 4

Portal, sign-up, and the first successful call

Documentation 3

Reference material describing how the API behaves

Agent Surfaces 5

MCP servers, agent skills, and machine-readable catalogs

Design & Contract 6

Pagination, idempotency, versioning, errors, and events

Access & Security 8

Authentication, authorization, and security posture

Scroll for all 8

Operate 2

Status, limits, changes, and where to get help

Commercial 3

Pricing, plans, and the legal terms of use

Company 2

The organization behind the API

Other 1

Properties that don't map to a standard resource type

Source (apis.yml)

apis.yml Raw ↑
aid: puzzle
name: Puzzle
description: 'Puzzle is an AI-powered accounting platform for startups, SMBs, and accounting firms, built around a real-time,
  append-only general ledger. Its agent-native architecture pairs deterministic Puzzle agents that draft categorization, reconciliation,
  and month-end close for human review with native integrations to banking, card, revenue, and payroll systems (Stripe, Brex,
  Mercury, Ramp, Gusto, Rippling, and more). The Puzzle Accounting API gives developers programmatic, OAuth 2.0 + PKCE-secured
  access to the same ledger: transactions, chart of accounts, journal entries, bills, invoices, vendors, customers, payroll,
  financial statements (income statement, balance sheet, cash activity), and metrics such as burn, runway, and revenue. A
  companion read-only MCP server connects AI tools like Claude, Cursor, and Windsurf to the ledger for natural-language financial
  analysis.'
accessModel:
  pricing: unknown
  onboarding: self-serve
  trial: false
  try_now: false
  public: false
  label: Self-serve signup
  confidence: medium
  source:
  - authentication
  generated: '2026-07-22'
  method: derived
image: https://puzzle.io/favicon.ico
url: https://raw.githubusercontent.com/api-evangelist/puzzle/refs/heads/main/apis.yml
x-type: company
x-source: vc-portfolio
x-backed-by:
- general-catalyst
x-tier: stub
x-tier-reason: portfolio-lead
specificationVersion: '0.20'
created: '2026-07-17'
modified: '2026-07-20'
tags:
- Company
- Accounting
- Financial
- Bookkeeping
- Fintech
- General Ledger
- Payroll
- Agent-Native
- MCP
apis:
- aid: puzzle:puzzle-accounts-api
  name: Puzzle Accounts API
  description: The Accounts API from Puzzle — 3 operation(s) for accounts.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Accounts
  properties:
  - type: OpenAPI
    url: openapi/puzzle-accounts-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-attachments-api
  name: Puzzle Attachments API
  description: The Attachments API from Puzzle — 1 operation(s) for attachments.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Attachments
  properties:
  - type: OpenAPI
    url: openapi/puzzle-attachments-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-bills-api
  name: Puzzle Bills API
  description: The Bills API from Puzzle — 3 operation(s) for bills.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Bills
  properties:
  - type: OpenAPI
    url: openapi/puzzle-bills-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-company-api
  name: Puzzle Company API
  description: The Company API from Puzzle — 10 operation(s) for company.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Company
  properties:
  - type: OpenAPI
    url: openapi/puzzle-company-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-customers-api
  name: Puzzle Customers API
  description: The Customers API from Puzzle — 2 operation(s) for customers.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Customers
  properties:
  - type: OpenAPI
    url: openapi/puzzle-customers-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-departments-api
  name: Puzzle Departments API
  description: The Departments API from Puzzle — 1 operation(s) for departments.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Departments
  properties:
  - type: OpenAPI
    url: openapi/puzzle-departments-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-documents-api
  name: Puzzle Documents API
  description: The Documents API from Puzzle — 1 operation(s) for documents.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Documents
  properties:
  - type: OpenAPI
    url: openapi/puzzle-documents-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-invoices-api
  name: Puzzle Invoices API
  description: The Invoices API from Puzzle — 2 operation(s) for invoices.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Invoices
  properties:
  - type: OpenAPI
    url: openapi/puzzle-invoices-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-journalentries-api
  name: Puzzle JournalEntries API
  description: The JournalEntries API from Puzzle — 2 operation(s) for journalentries.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - JournalEntries
  properties:
  - type: OpenAPI
    url: openapi/puzzle-journalentries-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-journalentry-api
  name: Puzzle JournalEntry API
  description: The JournalEntry API from Puzzle — 2 operation(s) for journalentry.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - JournalEntry
  properties:
  - type: OpenAPI
    url: openapi/puzzle-journalentry-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-locations-api
  name: Puzzle Locations API
  description: The Locations API from Puzzle — 1 operation(s) for locations.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Locations
  properties:
  - type: OpenAPI
    url: openapi/puzzle-locations-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-metrics-api
  name: Puzzle Metrics API
  description: The Metrics API from Puzzle — 5 operation(s) for metrics.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Metrics
  properties:
  - type: OpenAPI
    url: openapi/puzzle-metrics-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-oauth-api
  name: Puzzle OAuth API
  description: The OAuth API from Puzzle — 2 operation(s) for oauth.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - OAuth
  properties:
  - type: OpenAPI
    url: openapi/puzzle-oauth-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-onboarding-api
  name: Puzzle Onboarding API
  description: The Onboarding API from Puzzle — 1 operation(s) for onboarding.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Onboarding
  properties:
  - type: OpenAPI
    url: openapi/puzzle-onboarding-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-payroll-api
  name: Puzzle Payroll API
  description: The Payroll API from Puzzle — 6 operation(s) for payroll.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Payroll
  properties:
  - type: OpenAPI
    url: openapi/puzzle-payroll-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-products-api
  name: Puzzle Products API
  description: The Products API from Puzzle — 2 operation(s) for products.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Products
  properties:
  - type: OpenAPI
    url: openapi/puzzle-products-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-reports-api
  name: Puzzle Reports API
  description: The Reports API from Puzzle — 7 operation(s) for reports.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Reports
  properties:
  - type: OpenAPI
    url: openapi/puzzle-reports-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-requests-api
  name: Puzzle Requests API
  description: The Requests API from Puzzle — 1 operation(s) for requests.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Requests
  properties:
  - type: OpenAPI
    url: openapi/puzzle-requests-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-tasks-api
  name: Puzzle Tasks API
  description: The Tasks API from Puzzle — 2 operation(s) for tasks.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Tasks
  properties:
  - type: OpenAPI
    url: openapi/puzzle-tasks-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-transactions-api
  name: Puzzle Transactions API
  description: The Transactions API from Puzzle — 3 operation(s) for transactions.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Transactions
  properties:
  - type: OpenAPI
    url: openapi/puzzle-transactions-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-user-api
  name: Puzzle User API
  description: The User API from Puzzle — 3 operation(s) for user.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - User
  properties:
  - type: OpenAPI
    url: openapi/puzzle-user-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
- aid: puzzle:puzzle-vendors-api
  name: Puzzle Vendors API
  description: The Vendors API from Puzzle — 2 operation(s) for vendors.
  humanURL: https://puzzle-api.readme.io/docs/welcome
  baseURL: https://api.puzzle.io/rest/v0
  tags:
  - Vendors
  properties:
  - type: OpenAPI
    url: openapi/puzzle-vendors-api-openapi.yml
  - type: Documentation
    url: https://puzzle-api.readme.io/docs/welcome
  - type: APIReference
    url: https://puzzle-api.readme.io/reference
  - type: GettingStarted
    url: https://puzzle-api.readme.io/docs/getting-started
maintainers:
- FN: Kin Lane
  email: kin@apievangelist.com
- FN: APIs.json
  email: info@apis.io
x-enrichment:
  date: '2026-07-20'
  status: enriched
  artifacts_added: 20
  pass: local-v1
common:
- type: DeveloperPortal
  url: https://puzzle-api.readme.io/docs/welcome
- type: Documentation
  url: https://puzzle-api.readme.io/docs/welcome
- type: APIReference
  url: https://puzzle-api.readme.io/reference
- type: GettingStarted
  url: https://puzzle-api.readme.io/docs/getting-started
- type: Pricing
  url: https://puzzle.io/pricing
- type: Blog
  url: https://puzzle.io/blog
- type: Support
  url: https://help.puzzle.io/
- type: TermsOfService
  url: https://puzzle.io/legal/terms-of-service
- type: PrivacyPolicy
  url: https://puzzle.io/legal/privacy
- type: SignUp
  url: https://app.puzzle.io/
- type: Website
  url: https://puzzle.io
- type: OpenAPI
  url: openapi/puzzle-openapi-original.json
- type: LLMsTxt
  url: llms/puzzle-llms.txt
- type: MCPServer
  url: mcp/puzzle-mcp.yml
- type: Authentication
  url: authentication/puzzle-authentication.yml
- type: OAuthScopes
  url: scopes/puzzle-scopes.yml
- type: ErrorCatalog
  url: errors/puzzle-error-codes.yml
- type: Conventions
  url: conventions/puzzle-conventions.yml
- type: Lifecycle
  url: lifecycle/puzzle-lifecycle.yml
- type: Deprecation
  url: lifecycle/puzzle-lifecycle.yml
- type: Sandbox
  url: sandbox/puzzle-sandbox.yml
- type: DataModel
  url: data-model/puzzle-data-model.yml
- type: Conformance
  url: conformance/puzzle-conformance.yml
- type: Compliance
  url: https://puzzle.io/security
- type: WellKnown
  url: well-known/puzzle-well-known.yml
- type: SecurityTxt
  url: well-known/puzzle-security.txt
- type: VulnerabilityDisclosure
  url: security/puzzle-vulnerability-disclosure.yml
- type: Security
  url: well-known/puzzle-security.txt
- type: TrustCenter
  url: https://trust.puzzle.io
- type: DomainSecurity
  url: security/puzzle-domain-security.yml
- type: AgenticAccess
  url: agentic-access/puzzle-agentic-access.yml
- type: Overlay
  url: overlays/puzzle-openapi-overlay.yaml
- type: AgentSkill
  url: skills/_index.yml
- type: Components
  url: components/puzzle-components.yml