# doola Developers ## Docs - [doola Partner API](https://docs.doola.com/api/introduction.md): Form US companies for your customers and track them to completion, programmatically. - [Authentication](https://docs.doola.com/api/authentication.md): How to authenticate requests to the doola Partner API. - [Company formation](https://docs.doola.com/api/formation.md): The formation flow, the statuses a company moves through, and where to read progress. - [Non-US founders](https://docs.doola.com/api/non-us-formation.md): Form US companies for founders outside the US, where the IRS requires a signed SS-4 — and, for an expedited EIN, a signed Form 8821 — before issuing the EIN. - [Expedited EIN](https://docs.doola.com/api/expedited-ein.md): Request prioritized EIN processing at company creation for non-US founders. - [Choosing a NAICS industry](https://docs.doola.com/api/naics-industry.md): Classify a company on create with the precise industry label, how it relates to the deprecated naicsCode, and the validation rules. - [Company services](https://docs.doola.com/api/company-services.md): The services attached to every company, how they are structured, and how they progress through their lifecycle. - [Compliance Calendar](https://docs.doola.com/api/compliance/calendar.md): Read a company's tracked compliance obligations and their due dates. - [Webhooks](https://docs.doola.com/api/webhooks.md): Receive formation and document events, and verify their signatures. - [Required actions](https://docs.doola.com/api/required-actions.md): Respond when doola needs something from you before a company's formation can continue. - [New company names needed](https://docs.doola.com/api/required-actions/name-options.md): Handle FORMATION_NAME_OPTIONS_EXHAUSTED by submitting replacement company names after the state rejects every option. - [SS-4 signature needed again](https://docs.doola.com/api/required-actions/ss4-reset.md): Handle FORMATION_SIGNATURE_SS4_RESET by re-presenting the SS-4 after a name change voids an existing signature. - [Sandbox playground](https://docs.doola.com/api/sandbox-playground.md): Complete formation and EIN issuance on demand in sandbox, and receive every webhook without waiting on the state or the IRS. - [Errors](https://docs.doola.com/api/errors.md): The error envelope and the global error codes returned by the doola Partner API. - [Domain objects](https://docs.doola.com/api/domain-objects.md): The shapes and business rules behind customer and company formation requests. - [OpenAPI specification](https://docs.doola.com/api/openapi-spec.md): Download the machine-readable OpenAPI document for the doola Partner API. - [Complete Formation (sandbox)](https://docs.doola.com/api/api-reference/playground-sandbox-only/complete-formation-sandbox.md): Simulates the State confirming formation: records the filing date, adds a test admin note, and uploads the Articles of Organization. Fires `company_formation_completed` and `document_aoo_uploaded`, and advances the Formation service to Completed. Processing the Articles also generates the entity typ… - [Complete EIN creation (sandbox)](https://docs.doola.com/api/api-reference/playground-sandbox-only/complete-ein-creation-sandbox.md): Simulates the IRS issuing the EIN: sets the company's EIN and uploads the EIN letter. Fires `company_ein_issued` (first issuance only) and `document_einletter_uploaded`, and advances the EinCreation service to Completed. `triggeredEvents` reflects what this call actually fired, so a repeat call list… - [List customers](https://docs.doola.com/api/api-reference/customers/list-customers.md): Lists customers for the authenticated partner tenant. Supports free-text search and pagination (page size capped at 100). - [Create a customer](https://docs.doola.com/api/api-reference/customers/create-a-customer.md): Creates a customer under the authenticated partner tenant. Returns `201 Created` for a new customer, or `200 OK` when a customer with the same email already exists and is returned instead of duplicated (`created: false`). Idempotent on the `Idempotency-Key` header: replaying the same key returns the… - [Get a customer](https://docs.doola.com/api/api-reference/customers/get-a-customer.md): Returns a single customer by doola customer ID, including the companies that customer owns. - [List companies](https://docs.doola.com/api/api-reference/companies/list-companies.md): Lists companies for the authenticated partner tenant. Supports free-text search, filtering by customer, and pagination (page size capped at 100). - [Create a company](https://docs.doola.com/api/api-reference/companies/create-a-company.md): Starts a company formation for one of your customers. Set `entityType` to `LLC` (the default) or `CCorp`: an LLC takes `members`, while a CCorp takes `executiveMembers` and `ccorpValuation`. Idempotent on the `Idempotency-Key` header: a successful create is replayed for the same key, so retries neve… - [Get a company](https://docs.doola.com/api/api-reference/companies/get-a-company.md): Returns a single company by doola company ID, including formation status, EIN (once issued), members, addresses, and services. - [Create a signature session](https://docs.doola.com/api/api-reference/signatures/create-a-signature-session.md): Generates an embedded signing URL for the specified document type. Always mints a fresh URL — prior unsigned sessions for the same document are voided afterwards on a best-effort basis. Returns 409 if the document has already been signed, or 422 if the company is not eligible (e.g., a member has an… - [Resolve a required action](https://docs.doola.com/api/api-reference/required-actions/resolve-a-required-action.md): Submit what doola asked for. The action moves to `submitted` and doola takes it from there; you will receive further webhooks if anything else is needed. Actions resolved by another flow, such as an SS4 re-signature, are not accepted here. - [List open required actions across your companies](https://docs.doola.com/api/api-reference/required-actions/list-open-required-actions-across-your-companies.md): Every open required action across all of your companies, most recently changed first. Closed actions are excluded — use the per-company listing to reconcile those. `total` carries the tenant-wide open count whatever the page size. Histories are omitted; read a single action for those. - [List a company's required actions](https://docs.doola.com/api/api-reference/required-actions/list-a-companys-required-actions.md): Every required action for the company, most recently changed first, including ones already resolved or rejected. Use this to reconcile after missing webhooks. Histories are omitted here; read a single action for those. - [Retrieve a required action](https://docs.doola.com/api/api-reference/required-actions/retrieve-a-required-action.md): One required action with its full history, so you can see when it was raised, whether doola reached your endpoint, and how many rounds it has taken. - [List states](https://docs.doola.com/api/api-reference/reference-data/list-states.md): Returns supported US states with abbreviations. - [List state filing fees](https://docs.doola.com/api/api-reference/reference-data/list-state-filing-fees.md): Returns the formation filing fee per state, in cents, for the requested entity type (LLC or CCorp). Defaults to LLC when omitted. - [List NAICS codes](https://docs.doola.com/api/api-reference/reference-data/list-naics-codes.md): Returns the NAICS industry codes accepted by the create-company endpoint. - [List countries](https://docs.doola.com/api/api-reference/reference-data/list-countries.md): Returns supported countries with ISO codes. - [List company documents](https://docs.doola.com/api/api-reference/documents/list-company-documents.md): Returns the documents available for a company (metadata only). - [Get a document download URL](https://docs.doola.com/api/api-reference/documents/get-a-document-download-url.md): Returns document metadata plus a short-lived, pre-signed `downloadUrl` for the file. - [Get a company's compliance calendar](https://docs.doola.com/api/api-reference/compliance/get-a-companys-compliance-calendar.md): Returns the company's compliance obligations. Today this is the single annual report, with its next due date and a derived status (UPCOMING, OVERDUE, NOT_YET_DUE, or UNSUPPORTED_STATE). Read-only — never triggers filing or recomputation. Returns 404 when the company does not exist or is not owned by… - [FAQ](https://docs.doola.com/api/faq.md): Common questions about the doola Partner API and Partner Portal, in plain language. - [Changelog](https://docs.doola.com/api/changelog.md): Updates and changes to the doola Partner API. - [doola Formation MCP Server](https://docs.doola.com/mcp/introduction.md): Let AI agents form a US LLC end to end through doola, over the Model Context Protocol. - [Connect a client](https://docs.doola.com/mcp/connect.md): Add the doola MCP server to Claude, ChatGPT, Perplexity, Cursor, Replit, Lovable, Vercel v0, or any MCP client. - [Authentication](https://docs.doola.com/mcp/authentication.md): OAuth 2.0 Bearer auth, discovery endpoints, and the MCP session lifecycle. - [Tools reference](https://docs.doola.com/mcp/tools.md): The 6 MCP tools and the 15 formation actions driven by advance_company_onboarding. - [End-to-end flow](https://docs.doola.com/mcp/flow.md): A full solo-founder formation, call by call. - [Errors](https://docs.doola.com/mcp/errors.md): JSON-RPC errors, auth challenges, tool-level failures, and how to recover. - [Limitations](https://docs.doola.com/mcp/limitations.md): What the doola Formation MCP server does and doesn't do today. ## OpenAPI Specs - [openapi](https://docs.doola.com/api-reference/openapi.json)