API
Templates
Read-only registry of Matter-authored document templates, the Cover Page model, the deprecation lifecycle, and the picker flow that drives every Matter-generated document.
Last updated
TL;DR. GET /v1/templates lists the document templates Matter can
produce; GET /v1/templates/{template_id} returns full metadata
including the Cover Page field schema. Every template is
Matter-authored — there is no third-party ingestion. The v1 catalog
ships 22 governance-category templates covering the
board-and-stockholder consent surface; other categories ingest through
separate workstreams.
What templates are
A Template is a versioned, reusable definition for generating a
Document. Each template carries:
- A
kind— theDocument.typevalue the template produces. The join key from Template → Document; multiple templates can share the same kind (variants). - A
category—formation,financing,commercial,governance,tax. - A
version— semver or date-coded; templates are immutable per version. - An
availability—preview,ga,deprecated, orretired(see Versioning and deprecation). - A
successor_template_id— set ondeprecatedandretiredrows; pointer to the rollover replacement. - An optional
cover_page_field_schema— JSON Schema for the negotiable fields on the Cover Page (null for templates that derive every variable from entity state, like bylaws and charters). - An
attachable_to[]array — parent template_ids this template can be attached to as a child Document.
template_id is conventionally formatted matter:<kind>[:<variant>]:<version>
(e.g. matter:safe:postmoney_cap_only:2018-09,
matter:bylaws:de_c_corp:2026-04-26). The format is descriptive —
clients should treat the full string as opaque and filter on the
structured fields.
The Cover Page model
Matter's commercial templates follow the Cover Page model: an immutable Standard Terms body plus a small editable Cover Page populated with the deal-specific fields. Both parties sign the Cover Page; it incorporates the Standard Terms by reference. The combined artifact is the executed Agreement.
The negotiation surface is the Cover Page — typically just parties, fees, and term. By constraining what's negotiable to a small, well-defined surface, the Cover Page model avoids the redline-everything pattern that makes traditional contracting slow.
On the Document resource, the Cover Page model
is expressed via three fields:
| Field | Purpose |
|---|---|
template_id | Identifies the Cover Page format. |
cover_page_fields | Populated negotiable values, validated against Template.cover_page_field_schema. |
standard_terms_template_id | Pointer to the immutable Standard Terms version this Cover Page incorporates. |
For non-Cover-Page templates (formation packet, SAFE, bylaws),
cover_page_fields and standard_terms_template_id are null — the
template renders against entity state, not against caller-supplied
negotiation values.
Variants
Multiple templates may share the same kind. SAFE alone has variants
spanning post-money × {cap-only, discount-only, cap-and-discount, MFN};
each variant is its own row with its own template_id and Cover Page
field schema, all carrying kind: safe.
The picker is the natural shape that follows: the client lists templates
filtered by kind, the user picks a row, and the client renders a form
from that row's cover_page_field_schema.
GET /v1/templates?kind=safe&availability=gareturns the variant rows; the user picks
matter:safe:postmoney_cap_only:2018-09; the client renders the field
form from the schema and POSTs the values back as cover_page_fields on
generateDocument.
Common operations
| Operation | Use |
|---|---|
listTemplates | Discover what templates exist by kind, category, availability, or attachable_to. |
retrieveTemplate | Get full metadata for one template, including the Cover Page field schema. |
Workflow — using a template
GET /v1/templates?kind=safe&availability=ga
GET /v1/templates/matter:safe:postmoney_cap_only:2018-09
POST /v1/documents
entity_id: ent_...
template_id: matter:safe:postmoney_cap_only:2018-09
cover_page_fields: { investor_name: "...", investment_amount_usd: 50000, valuation_cap_usd: 5000000 }Matter renders the document from the supplied fields against the entity
state, attaches the immutable Standard Terms by reference, and creates
the Document with
provenance: matter_generated and execution_status: draft. Send via
createSigningEnvelope
to collect signatures.
Picker — board consents
The v1 governance catalog supports the board-and-stockholder consent
surface. Filter by kind to scope the picker:
GET /v1/templates?kind=board_consent&availability=gareturns 12 rows (11 substance-specialized + 1 general):
template_id | Authorizes |
|---|---|
matter:board_consent:bank_account_authorisation:2026-04-26 | bank_account_authorisation |
matter:board_consent:share_issuance_authorisation:2026-04-26 | share_issuance_authorisation, amend_founder_grants |
matter:board_consent:option_plan_adoption:2026-04-26 | option_plan_adoption |
matter:board_consent:safe_issuance:2026-04-26 | safe_issuance |
matter:board_consent:priced_round_authorisation:2026-04-26 | priced_round_authorisation |
matter:board_consent:charter_amendment:2026-04-26 | transaction_authorisation (charter scope) |
matter:board_consent:indemnification_form_approval:2026-04-26 | indemnification_form_approval |
matter:board_consent:share_repurchase_authorisation:2026-04-26 | authorize_share_repurchase |
matter:board_consent:plan_of_dissolution:2026-04-26 | plan_of_dissolution |
matter:board_consent:merger_approval:2026-04-26 | merger_approval |
matter:board_consent:transaction_authorisation:2026-04-26 | asset_sale_approval, stock_sale_approval, acquihire_authorisation |
matter:board_consent:general:2026-04-26 | Caller-supplied recitals + resolved clauses (catch-all) |
The Day-0 organizational consent (?kind=initial_board_resolution),
the officer-change cascade (?kind=officer_change_consent), the
director-change cascade (?kind=director_change_consent), and the
seven stockholder-side parallels (?kind=written_consent) carry their
own dedicated rows.
Specialized rows have cover_page_field_schema: null — substance is
derived from the linked resource (Round, EquityPlan,
CorporateTransaction, etc.) and entity state. The two :general: rows
are the only consent templates with a non-null Cover Page schema, which
accepts caller-supplied recitals[], resolved_clauses[], and
effective_date for any Resolution.kind not covered by a specialized
template.
Status today
The registry surface ships in the spec. The v1 catalog ships 22 governance-category templates (see picker above). Other categories ingest via separate workstreams. Until those land:
?category=formation,?category=financing,?category=commercial,?category=taxreturn zero rows.generateDocumentcalls that pass atemplate_idoutside the v1 governance catalog are rejected.- Documents with
provenance: counterpart_received(state certificate filings, EIN acknowledgements, mail scans) andprovenance: user_uploaded(custom-typed contracts) work today via the upload path withtemplate_id: null. - The
Document.typeenum carries the commercial and hiring categories (csa,mnda,psa,pilot_agreement,independent_contractor_agreement,advisor_agreement,employment_agreement, etc.) so callers can categorize ad-hoc uploads correctly today.
See conventions: templates for the deeper architectural commitments — provenance classification, Cover Page model, versioning, and deprecation.
What Matter does and does not do
Matter is the standardized-template tier. The product makes baseline legal artifacts trivial to generate, sign, and track — formation packets, SAFEs, mutual NDAs, SaaS subscription agreements, and the like — by constraining each artifact to a small Cover Page negotiation surface sitting on top of an immutable Standard Terms body.
Matter is not a custom-legal AI platform. Heavily-negotiated commercial deals, M&A definitive agreements, and complex licensing structures where the Standard Terms themselves need redlining are out of scope. For that work, founders should use a custom-legal AI platform or outside counsel.