# Pandects — Full Documentation > Concatenated guides and API reference for the Pandects API. Base URL: https://api.pandects.org. --- # Part 1: Guides Welcome to the Pandects documentation. Use the **Guides** section for integration patterns and the **API Reference** section for endpoint/schema details generated from OpenAPI. --- # Getting Started Pandects exposes a public, read-only REST API for searching agreements and reading full agreement or section text. ## Base URL ```bash https://api.pandects.org ``` All API routes are versioned under `/v1`. ## First request ```bash curl "https://api.pandects.org/v1/sections?page=1&page_size=10" ``` The API returns JSON and standard HTTP status codes. ## Response conventions - `200`: request succeeded - `422`: invalid request shape or unsupported parameters - `default`: other server-side error envelopes ## Data provenance Every response includes the sha256 hash of the public database dump the data was sourced from. This lets you record exactly which snapshot your queries came from. **Response header** (always present): ``` X-Pandects-Dump-Hash: 3a7f9b2c... ``` **Response body** (present by default on `/v1/sections`, `/v1/agreements`, and `/v1/agreements/search`): ```json { "results": [...], "dump_version": { "hash": "3a7f9b2c...", "dump_ts": "2025-03-01 04:00:00" } } ``` To omit `dump_version` from the JSON body, pass `?include_dump=false`. The header is always set regardless. ## For LLMs and agents Plaintext, machine-readable mirrors of these docs are published for use by coding assistants and agents: - [`/llms.txt`](pathname:///llms.txt) — index of guides and endpoints in the [llms.txt](https://llmstxt.org/) format - [`/llms-full.txt`](pathname:///llms-full.txt) — concatenated full documentation in one file - [`/openapi.yaml`](pathname:///openapi.yaml) — canonical OpenAPI 3 spec - [`/llms/pandects/.md`](pathname:///llms/pandects/searchAgreements.md) — one plain-markdown page per endpoint ## Next step Continue with `Request Patterns` for common query combinations and endpoint workflows. --- # Request Patterns ## Search by year and clause type ```bash curl "https://api.pandects.org/v1/sections?year=2023&standard_id=1.1&page=1&page_size=25" ``` ## Drill into an agreement Use an agreement UUID from search results: ```bash curl "https://api.pandects.org/v1/agreements/{agreement_uuid}" ``` ## Fetch a specific section ```bash curl "https://api.pandects.org/v1/sections/{section_uuid}" ``` ## Track data provenance across requests Every response carries the dump hash in the `X-Pandects-Dump-Hash` header and in the `dump_version` field of the response body. Log it alongside your query results to pin each data point to a specific snapshot. ```bash # Capture the hash alongside results curl -si "https://api.pandects.org/v1/sections?standard_id=1.1&page=1" \ | grep -E "X-Pandects-Dump-Hash|dump_version" ``` To omit `dump_version` from the JSON body (e.g., for strict schema parsers): ```bash curl "https://api.pandects.org/v1/sections?standard_id=1.1&include_dump=false" ``` ## Taxonomy bootstrap ```bash curl "https://api.pandects.org/v1/taxonomy" ``` Use taxonomy IDs to align your downstream classification and analytics pipeline. --- # Error Models Treat non-`2xx` responses as structured errors and log request IDs when available. ## Validation errors (`422`) A `422` means at least one query/path parameter failed validation. Client recommendations: - Validate parameter types before sending requests. - Send repeated list parameters using repeated query keys (form style). - Retry only after correcting input. ## Other errors Default error responses can indicate transient failures. Client recommendations: - Use bounded retries with jitter. - Surface endpoint, status, and high-level error details in logs. - Fail closed for downstream writes if agreement or section payloads are incomplete. --- # Setup The Pandects MCP is available at `https://api.pandects.org/mcp`. ## Before You Start You need only two things: 1. A Pandects account 2. An MCP client that supports a remote HTTP server and browser sign-in ## Server URL Add this server in your MCP client: ```text https://api.pandects.org/mcp ``` ## Quick Setup The normal flow is: 1. Add the Pandects MCP server in your client 2. Start the client's MCP auth flow explicitly 3. When your browser opens, sign in with your Pandects account 4. Return to the client and start using Pandects tools ## Codex Add the server: ```bash codex mcp add pandects --url https://api.pandects.org/mcp ``` Then start the OAuth flow explicitly: ```bash codex mcp login pandects ``` `codex mcp add` only saves the server configuration. It does not itself open the browser sign-in flow. Optional check: ```bash codex mcp list ``` ## Claude Code Add the server: ```bash claude mcp add --transport http pandects https://api.pandects.org/mcp ``` Then open MCP inside Claude Code: ```text /mcp ``` Then authenticate the `pandects` server inside the MCP UI and finish the browser sign-in flow. ## Supported Clients Right Now Pandects currently documents setup for: - Codex - Claude Code Other MCP clients may work if they support remote HTTP MCP servers with browser-based authentication. ## Troubleshooting If setup does not complete cleanly: - Make sure you are signing in with the Pandects account you intend to use - Make sure you are connecting to `https://api.pandects.org/mcp` - In Codex, run `codex mcp login pandects` after `codex mcp add ...` - Use browser sign-in when the client asks for authentication - Do not use a Pandects API key for MCP - If the client already has a stale failed connection saved, remove the server and add it again If authentication succeeds but tool calls still fail, reconnect the server and retry the browser sign-in flow once before investigating anything more exotic. ## Related Links - [OpenAI: Docs MCP quickstart for Codex](https://developers.openai.com/learn/docs-mcp) - [OpenAI: MCP docs](https://platform.openai.com/docs/mcp) - [Anthropic: Connect Claude Code to tools via MCP](https://docs.anthropic.com/en/docs/claude-code/mcp) --- # Using MCP The Pandects MCP is available at `https://api.pandects.org/mcp`. Use it inside MCP clients such as Codex or Claude Code to work with merger agreements in plain language. You can ask your client to find agreements, compare clause language, inspect specific sections, pull tax-related provisions, and use Pandects reference data while you work. ## How to Think About MCP The Pandects MCP is designed for humans using LLM clients. That means: - You ask for the research task in normal language - The client decides which Pandects tools to call - You review the result, refine the request, and keep going - You should not need to manually fetch tokens, API keys, or document IDs from the website just to make the MCP work ## What MCP Is Good For The Pandects MCP is most useful when you want your client to: - Find the right agreement when you know a company name but not the document you need - Compare clause language across many agreements - Open one section or one agreement for closer reading - Pull tax-related language from an agreement - Use Pandects taxonomy, counsel, industry, and summary data while researching ## Example Prompts The Pandects MCP server allows you to interact with Pandects APIs using natural language. Examples: - “Find the merger agreement for Target A and show me the termination and fiduciary-out sections.” - “Compare change-of-recommendation language across 2023 public-target deals.” - “Find agreements where Skadden represented the acquirer.” - “Pull the tax clauses from this agreement and summarize who bears transfer taxes.” - “Show me the section text for this section UUID and explain how it fits into the agreement.” - “What clause taxonomy categories should I use for fiduciary-out and no-shop searches?” - “Give me the valid Pandects filter values for target counsel and target industry.” ## What Your Client Can Reach Through MCP Behind those prompts, the Pandects MCP gives your client access to: - Agreement search and retrieval - Section search and section-level inspection - Tax clause extraction results - Filter catalogs for companies, counsel, and industries - Clause taxonomy and tax-clause taxonomy - Counsel and NAICS reference data - High-level corpus summaries and trend data You generally should not need to think about exact tool names or tool order unless you are debugging or building a more structured workflow on top of the MCP. ## Next Step To connect Pandects in a supported client, continue to [Setup](./setup). If you want the technical tool surface, see [Technical Details](./technical-details). --- # Technical Details The Pandects MCP is a read-only remote MCP server at `https://api.pandects.org/mcp`. It is designed for human users working through LLM clients, but this page describes the technical surface available behind the scenes. ## High-Level Capability Areas The current MCP surface covers: - Agreement discovery and retrieval - Section search and section listing within one agreement - Section-level retrieval - Concept-to-taxonomy mapping and focused snippet extraction - Tax clause retrieval - Filter and taxonomy lookup - Counsel, NAICS, summary, trend, and server-introspection reference data ## Tool Groups ### Agreement Discovery And Retrieval - `search_agreements` - `list_agreements` - `get_agreement` Use these when the client needs to find the right agreement first or fetch one agreement directly. ### Section Research - `search_sections` - `list_agreement_sections` - `list_agreement_sections_batch` - `get_section` - `get_section_snippet` - `get_section_snippets_batch` - `get_sections_batch` Use these when the client needs to search clause language across the corpus, navigate sections inside one agreement, inspect a known section directly, or extract a shorter plain-text excerpt from one section. `list_agreement_sections_batch`, `get_section_snippets_batch`, and `get_sections_batch` accept a list of agreement or section UUIDs and return results in a single call, reducing round-trips for multi-agreement workflows. `get_sections_batch` returns full section XML (capped by default at 10 000 characters per section); `get_section_snippets_batch` returns focused plain-text excerpts and is the right choice when the full XML is not needed. ### Discovery Helpers - `suggest_clause_families` Use this when the client knows the business or legal concept but does not know the right taxonomy `standard_id` yet. The tool returns ranked clause-family candidates with their taxonomy paths and matched terms. Each match also reports whether it is a canonical fit, a proxy, or a broader semantic match. ### Tax Clause Research - `get_agreement_tax_clauses` - `get_section_tax_clauses` Use these when the task is specifically about extracted tax-module clauses rather than the full agreement or section text. ### Research Bootstrap - `list_filter_options` - `get_clause_taxonomy` - `get_tax_clause_taxonomy` Use these when the client needs valid structured inputs before searching. ### Reference And Context - `get_counsel_catalog` - `get_naics_catalog` - `get_agreements_summary` - `get_agreement_trends` - `get_server_capabilities` - `get_server_metrics` Use these when the client needs canonical lookup data, corpus-level context, or MCP introspection metadata. ## Current Tool List The current MCP tools are: - `search_agreements` - `search_sections` - `list_agreements` - `list_agreement_sections` - `list_agreement_sections_batch` - `get_agreement` - `get_section` - `get_section_snippet` - `get_section_snippets_batch` - `get_sections_batch` - `get_agreement_tax_clauses` - `get_section_tax_clauses` - `list_filter_options` - `suggest_clause_families` - `get_server_metrics` - `get_server_capabilities` - `get_clause_taxonomy` - `get_tax_clause_taxonomy` - `get_counsel_catalog` - `get_naics_catalog` - `get_agreements_summary` - `get_agreement_trends` ## Design Notes - The server is read-only - Clients should typically choose the right tools automatically - `search_agreements` is the discovery-oriented agreement search; accepts a `standard_id` list to filter to agreements that contain at least one section tagged with any of the given taxonomy ids - `list_agreements` is the exact-filter, cursor-based agreement listing surface; also accepts `standard_id` for taxonomy-based agreement filtering - `list_agreement_sections` is an MCP convenience tool for within-agreement navigation - `search_sections` is a clause-language retrieval surface, not a normalized document-facts surface - `search_sections` exposes `count_mode` and returns `count_metadata` plus `interpretation` so clients can tell when totals are exact versus estimated and when taxonomy is acting as a proxy - `search_agreements` returns exact totals today and also includes `count_metadata` plus `interpretation` - `suggest_clause_families` exists to bridge plain-English concepts to taxonomy ids and now reports fit/confidence metadata so clients can distinguish canonical matches from broader proxies - `get_section_snippet` is a focused reading aid, not a replacement for `get_section` or a canonical extracted-facts surface - `get_section_snippets_batch` and `list_agreement_sections_batch` accept arrays of UUIDs and collapse multiple single-item calls into one round-trip; use them when a workflow would otherwise fan out across many agreements or sections - `get_sections_batch` fetches full section XML for up to 10 sections in one call; XML is capped at `max_xml_chars` per section (default 10 000, range 500–20 000) to prevent context overload; when a section is truncated the result includes `xml_truncated: true`; pass `max_xml_chars: null` only if uncapped XML is explicitly needed - `search_sections` results include `filing_date` and `transaction_price_total` inline on every result without needing to request them via `metadata` - `get_section_snippet`, `get_section_snippets_batch`, and `get_sections_batch` all include a `monetary_values` list — dollar amounts and value expressions extracted from the section text — so clients can surface deal economics without parsing XML - `search_sections` and `search_agreements` both accept `filed_after` and `filed_before` (ISO 8601 date strings, `YYYY-MM-DD`) for sub-year filing-date precision; `year`/`year_min`/`year_max` filter on the agreement year; `filed_after`/`filed_before` filter on the exact filing date - `get_agreement` preserves the current redaction and full-text access behavior - `get_server_capabilities` is the main machine-readable semantics surface; it includes auth guidance, field inventory, concept notes, and negative guidance about when not to use a tool - The server exposes a small set of MCP resources (`pandects://capabilities`, `pandects://auth-help`) that mirror `get_server_capabilities` for clients that prefer the `resources/read` primitive over calling a tool - The server exposes curated MCP prompts (`compare_agreements`, `clause_family_survey`, `deal_trend_brief`) as research templates; they orchestrate the primitive retrieval tools rather than introducing new functionality ## Transport - `POST /mcp` is the primary JSON-RPC endpoint. It supports content negotiation: clients that advertise `Accept: text/event-stream` receive an SSE-framed response; clients that prefer `application/json` receive a plain JSON body. This matches the Streamable HTTP behaviour required by Claude Code. - `GET /mcp` returns an SSE retry probe for clients that opportunistically open a server-to-client stream. - `DELETE /mcp` is accepted as an authenticated session-termination signal and returns `204`. - `initialize` responses carry an `Mcp-Session-Id` header. The server is stateless, so the id is informational — clients are not required to echo it, but Claude Code does. - Every response carries an `MCP-Protocol-Version` header echoing the negotiated protocol version. - Advertised server capabilities: `tools`, `resources` (listChanged=false, subscribe=false), `prompts` (listChanged=false), and `logging` (`logging/setLevel` is accepted as a no-op). ### Progress notifications When a `tools/call` request includes `params._meta.progressToken` **and** the client advertises `Accept: text/event-stream`, the server returns a multi-event SSE stream: 1. `notifications/progress` with `progress=0`, `total=1`, and a `Starting ` message 2. `notifications/progress` with `progress=1`, `total=1`, and a ` complete` message 3. The final `tools/call` JSON-RPC result (or error) This keeps intermediary proxies and client UIs aware of in-flight work on long calls. Clients that do not set a progress token, or do not accept SSE, receive the usual single-response behaviour. ### OAuth discovery and Dynamic Client Registration The server is protected by an embedded OAuth authorization server whose issuer lives under `/v1/auth/oauth`. To make OAuth discovery work with clients that implement RFC 8414 strictly (including Claude Code), authorization-server metadata is exposed at three locations: - `GET /.well-known/oauth-authorization-server` — host-root fallback - `GET /.well-known/oauth-authorization-server/v1/auth/oauth` — RFC 8414 host-root + issuer-path form - `GET /v1/auth/oauth/.well-known/oauth-authorization-server` — issuer-prefixed form (original) `GET /.well-known/openid-configuration` is also exposed at the host root for OIDC-leaning clients. The metadata document advertises `registration_endpoint` (`/v1/auth/oauth/register`), so compliant clients can self-register via Dynamic Client Registration (RFC 7591) without a manual out-of-band step. Only public, PKCE (S256), authorization-code clients are supported. ## Authentication - MCP uses normal Pandects account login - MCP does not use Pandects API keys - `codex mcp add` only registers the server; in Codex, `codex mcp login ` starts OAuth - Auth failures return structured remediation metadata so clients can distinguish missing-token, expired-token, unverified-account, and unlinked-subject cases ## Related Pages - [Using MCP](./using) - [Setup](./setup) --- # Part 2: API Reference Full OpenAPI spec: https://docs.pandects.org/openapi.yaml # List agreement sections `GET /v1/sections` Operation ID: `listSections` Tags: sections Searches sections using structured filters and taxonomy IDs. For list filters, repeat query keys (for example `year=2023&year=2024`). ## Query parameters - `year` — array; default: [] Agreement year filter. Repeat query key for multiple values. - `year_min` — integer; min: 1900; max: 2100; nullable - `year_max` — integer; min: 1900; max: 2100; nullable - `target` — array; default: [] Exact target company names to include. - `acquirer` — array; default: [] Exact acquirer company names to include. - `standard_id` — array; default: [] Clause type taxonomy standard IDs (Clause Type in the Search UI). Parent IDs expand to include descendant taxonomy nodes. - `transaction_price_total` — array; default: [] - `transaction_price_stock` — array; default: [] - `transaction_price_cash` — array; default: [] - `transaction_price_assets` — array; default: [] - `transaction_consideration` — array; default: [] - `target_type` — array; default: [] - `acquirer_type` — array; default: [] - `target_counsel` — array; default: [] - `acquirer_counsel` — array; default: [] - `target_industry` — array; default: [] - `acquirer_industry` — array; default: [] - `deal_status` — array; default: [] - `attitude` — array; default: [] - `deal_type` — array; default: [] - `purpose` — array; default: [] - `target_pe` — array; default: [] - `acquirer_pe` — array; default: [] - `metadata` — array; default: [] Additional agreement metadata fields to include in each result under `results[].metadata`. Repeat query key for multiple values. - `agreement_uuid` — string; nullable Filter to one agreement UUID. - `section_uuid` — string; nullable Filter to one section UUID. - `count_mode` — string; enum: auto, exact; default: "auto" Count strategy for pagination planning. `auto` may return estimates for broad or paginated searches; `exact` forces an exact total count. - `sort_by` — string; enum: year, target, acquirer; default: "year" Sort key. One of: `year`, `target`, `acquirer`. - `sort_direction` — string; enum: asc, desc; default: "desc" Sort direction. One of: `asc`, `desc`. - `page` — integer; default: 1 1-based page number. - `page_size` — integer; default: 25 Page size. Effective max is 10 for unauthenticated callers and 100 for authenticated callers. - `include_dump` — boolean; default: true When false, omit `dump_version` from the response body. The `X-Pandects-Dump-Hash` response header is always included. - `include_xml` — boolean; default: false Deprecated compatibility parameter. Section search results include section XML for all callers. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/SectionsResponse" } ``` ### 422 ### default --- # List tax clause precedents `GET /v1/tax-clauses` Operation ID: `listTaxClauses` Tags: tax-clauses Searches per-clause tax precedents using structured filters and taxonomy IDs. Defaults to excluding representations & warranties articles; pass `include_rep_warranty=true` to include them. ## Query parameters - `year` — array; default: [] - `target` — array; default: [] - `acquirer` — array; default: [] - `tax_standard_id` — array; default: [] Tax clause taxonomy standard IDs. Parent IDs expand to descendants. - `transaction_price_total` — array; default: [] - `transaction_price_stock` — array; default: [] - `transaction_price_cash` — array; default: [] - `transaction_price_assets` — array; default: [] - `transaction_consideration` — array; default: [] - `target_type` — array; default: [] - `acquirer_type` — array; default: [] - `target_counsel` — array; default: [] - `acquirer_counsel` — array; default: [] - `target_industry` — array; default: [] - `acquirer_industry` — array; default: [] - `deal_status` — array; default: [] - `attitude` — array; default: [] - `deal_type` — array; default: [] - `purpose` — array; default: [] - `target_pe` — array; default: [] - `acquirer_pe` — array; default: [] - `agreement_uuid` — string; nullable - `section_uuid` — string; nullable - `clause_uuid` — string; nullable - `include_rep_warranty` — boolean; default: false Include clauses found inside representations & warranties articles. Defaults to false so that operative drafting precedents are surfaced first. - `count_mode` — string; enum: auto, exact; default: "auto" - `sort_by` — string; enum: year, target, acquirer; default: "year" - `sort_direction` — string; enum: asc, desc; default: "desc" - `page` — integer; default: 1 - `page_size` — integer; default: 25 ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/TaxClausesResponse" } ``` ### 422 ### default --- # List agreements with keyset pagination `GET /v1/agreements` Operation ID: `listAgreements` Tags: agreements Lists eligible agreements using a base64 cursor. Supports the same agreement-level filters as `/v1/sections` except clause-type taxonomy filtering. ## Query parameters - `cursor` — string; nullable Opaque cursor from a previous agreements listing response. - `page_size` — integer; default: 25 Maximum number of agreements to return. - `include_xml` — boolean; default: false When true, include full agreement XML for each result. - `year` — array; default: [] - `target` — array; default: [] - `acquirer` — array; default: [] - `transaction_price_total` — array; default: [] - `transaction_price_stock` — array; default: [] - `transaction_price_cash` — array; default: [] - `transaction_price_assets` — array; default: [] - `transaction_consideration` — array; default: [] - `target_type` — array; default: [] - `acquirer_type` — array; default: [] - `target_counsel` — array; default: [] - `acquirer_counsel` — array; default: [] - `target_industry` — array; default: [] - `acquirer_industry` — array; default: [] - `deal_status` — array; default: [] - `attitude` — array; default: [] - `deal_type` — array; default: [] - `purpose` — array; default: [] - `target_pe` — array; default: [] - `acquirer_pe` — array; default: [] - `agreement_uuid` — string; nullable - `section_uuid` — string; nullable - `include_dump` — boolean; default: true When false, omit `dump_version` from the response body. The `X-Pandects-Dump-Hash` response header is always included. - `standard_id` — array; default: [] Filter to agreements that contain at least one section tagged with any of these taxonomy standard_ids. Accepts the same ids as search_sections. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/AgreementsListResponse" } ``` ### 422 ### default --- # Retrieve agreement text by UUID `GET /v1/agreements/{agreement_uuid}` Operation ID: `getAgreement` Tags: agreements Returns agreement metadata and XML content. For anonymous callers, XML can be redacted based on `focus_section_uuid` and `neighbor_sections`. ## Query parameters - `focus_section_uuid` — string; nullable Optional section UUID used when redacting anonymous responses to keep a focused neighborhood visible. - `neighbor_sections` — integer; default: 1 Number of neighboring sections to include around `focus_section_uuid` when response XML is redacted. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/AgreementResponse" } ``` ### 422 ### default --- # List ordered agreement sections `GET /v1/agreements/{agreement_uuid}/sections` Operation ID: `listAgreementSections` Tags: agreements Returns ordered section metadata for one agreement, including section UUIDs and taxonomy IDs, for in-document navigation. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/AgreementSectionIndexResponse" } ``` ### default --- # Retrieve tax clauses for an agreement `GET /v1/agreements/{agreement_uuid}/tax-clauses` Operation ID: `getAgreementTaxClauses` Tags: agreements Returns extracted tax-module clauses for the latest verified XML of an agreement. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/TaxClauseListResponse" } ``` ### default --- # Retrieve section text by UUID `GET /v1/sections/{section_uuid}` Operation ID: `getSection` Tags: sections Returns one section payload including taxonomy IDs and XML content. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/SectionResponse" } ``` ### default --- # Retrieve tax clauses for a section `GET /v1/sections/{section_uuid}/tax-clauses` Operation ID: `getSectionTaxClauses` Tags: sections Returns extracted tax-module clauses for a specific latest section. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/TaxClauseListResponse" } ``` ### default --- # Search agreements with matched section previews `GET /v1/search/agreements` Operation ID: `searchAgreements` Tags: agreements_search Searches agreements with the same structured filters as `/v1/sections`, including taxonomy IDs, and returns one row per agreement. ## Query parameters - `year` — array; default: [] Agreement year filter. Repeat query key for multiple values. - `year_min` — integer; min: 1900; max: 2100; nullable - `year_max` — integer; min: 1900; max: 2100; nullable - `target` — array; default: [] Exact target company names to include. - `acquirer` — array; default: [] Exact acquirer company names to include. - `standard_id` — array; default: [] Clause type taxonomy standard IDs (Clause Type in the Search UI). Parent IDs expand to include descendant taxonomy nodes. - `transaction_price_total` — array; default: [] - `transaction_price_stock` — array; default: [] - `transaction_price_cash` — array; default: [] - `transaction_price_assets` — array; default: [] - `transaction_consideration` — array; default: [] - `target_type` — array; default: [] - `acquirer_type` — array; default: [] - `target_counsel` — array; default: [] - `acquirer_counsel` — array; default: [] - `target_industry` — array; default: [] - `acquirer_industry` — array; default: [] - `deal_status` — array; default: [] - `attitude` — array; default: [] - `deal_type` — array; default: [] - `purpose` — array; default: [] - `target_pe` — array; default: [] - `acquirer_pe` — array; default: [] - `metadata` — array; default: [] Additional agreement metadata fields to include in each result under `results[].metadata`. Repeat query key for multiple values. - `agreement_uuid` — string; nullable Filter to one agreement UUID. - `section_uuid` — string; nullable Filter to one section UUID. - `count_mode` — string; enum: auto, exact; default: "auto" Count strategy for pagination planning. `auto` may return estimates for broad or paginated searches; `exact` forces an exact total count. - `sort_by` — string; enum: year, target, acquirer; default: "year" Sort key. One of: `year`, `target`, `acquirer`. - `sort_direction` — string; enum: asc, desc; default: "desc" Sort direction. One of: `asc`, `desc`. - `page` — integer; default: 1 1-based page number. - `page_size` — integer; default: 25 Page size. Effective max is 10 for unauthenticated callers and 100 for authenticated callers. - `include_dump` — boolean; default: true When false, omit `dump_version` from the response body. The `X-Pandects-Dump-Hash` response header is always included. - `include_xml` — boolean; default: false Deprecated compatibility parameter. Section search results include section XML for all callers. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/AgreementSearchResponse" } ``` ### 422 ### default --- # Retrieve clause taxonomy `GET /v1/taxonomy` Operation ID: `getTaxonomy` Tags: taxonomy Returns the hierarchical Pandects taxonomy tree keyed by standard ID. ## Responses ### 200 OK Content-Type: `application/json` ```json { "type": "object", "additionalProperties": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" }, "children": { "type": "object", "additionalProperties": { "type": "object" } } } } } ``` ### default --- # Retrieve tax-clause taxonomy `GET /v1/taxonomy/tax-clauses` Operation ID: `getTaxClauseTaxonomy` Tags: tax-clause-taxonomy Returns the hierarchical Pandects tax-clause taxonomy tree. ## Responses ### 200 OK Content-Type: `application/json` ```json { "type": "object", "additionalProperties": { "type": "object", "required": [ "id" ], "properties": { "id": { "type": "string" }, "children": { "type": "object", "additionalProperties": { "type": "object" } } } } } ``` ### default --- # Retrieve NAICS sectors and subsectors `GET /v1/naics` Operation ID: `getNaics` Tags: naics Returns NAICS sectors with nested subsectors. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/NaicsResponse" } ``` ### default --- # Retrieve canonical counsel names `GET /v1/counsel` Operation ID: `getCounsel` Tags: counsel Returns canonical counsel IDs and names for counsel entities referenced across agreements. ## Responses ### 200 OK Content-Type: `application/json` ```json { "$ref": "#/components/schemas/CounselResponse" } ``` ### default --- # List available bulk dumps `GET /v1/dumps` Operation ID: `listDumps` Tags: dumps Returns newest-first metadata for publicly available database dump artifacts. ## Responses ### 200 OK Content-Type: `application/json` ```json { "type": "array", "items": { "$ref": "#/components/schemas/DumpEntry" } } ``` ### default ---