# Evictions API > Start an eviction case in any US state or DC, yourself or through your AI agent. A licensed attorney takes it from notice to court. You approve every fee first. You can start a real eviction case with Evictions API for a rental property in any US state or DC. Available today: real cases in all 50 states and DC, each handled by a licensed attorney in the property’s state, engaged for that case, online sign-up and a guided case form, online payment of the platform fee, case tracking: status, documents, messages and deadlines, a REST API and signed webhooks and free test keys for developers that work only with a fictional test state. After you submit a case, we engage a licensed attorney in the property’s state for it and confirm by email. Nothing is served on a tenant or filed in court until that attorney has reviewed the case. We do not promise outcomes or how long a case takes. If no attorney is engaged for your case within 5 business days of submitting it, we refund the platform fee in full. Evictions API is operated by Future Cities LLC. It is not a law firm and does not give legal advice. Fees: The platform fee is $29 when a case starts at the notice, and $70 more if it goes on to filing. A case that starts at filing, because you already served the notice, pays $99 once. Where our pricing page lists a flat fee, the attorney’s legal fee for an uncontested case is that flat fee; elsewhere, and for contested work, it is quoted to you first. Court and service costs are separate, and you approve the attorney’s fee and these costs before any work begins. The attorney’s legal fee is paid to the attorney, and none of it goes to us. Where the fee is flat, we engage only an attorney who accepts it. Court filing fees and service costs are passed through at cost. The API and test keys are free. Accounts: You can invite people from your company to your organization, and one person can belong to several organizations; everyone you invite can see your organization’s cases, and owners decide what each person may do. Notes for a program that calls the API: - The API is at https://api.evictionsapi.com and every path starts with `/v1`. Call it from a server, not from a browser: only `/v1/public/*` answers browser requests from another origin. - Send `Authorization: Bearer ` on every request except the public endpoints. A key has a mode, which is in its prefix: `eak_live_...` for live and `eak_test_...` for test. A key sees only the cases of its own organization and mode. - Live mode is for real cases, for a rental property in any of the 50 states or DC. Submitting a live case serves nothing and files nothing: a licensed attorney in the property’s state is engaged for that case after it is submitted, and the case moves when that attorney acts. A live key can be created only by an owner of the organization, signed in on the site, under "API keys". - Test keys are free. They are a developer feature for building and testing an integration: a test key works only with the fictional test state `ZZ`, and nothing real is served or filed. Create a test key on the site under "API keys", or with `POST /v1/api-keys`. - Every case response has `state` and `nextAction` (`by` and `description`), which say who the case is waiting on and for what. - Every error has the shape `{ "error": { "code", "message", "details" } }` and an HTTP status. Branch on `code`, which is stable. An unknown route is 404 `not_found`. - A POST that needs a credential accepts an `Idempotency-Key` header of 1 to 255 characters; a repeat of the same request returns the stored response with `Idempotent-Replayed: true`. - Rate limits: `POST /v1/public/leads`, 5 requests per address every 10 minutes; `POST /v1/auth/signup, POST /v1/auth/login and POST /v1/auth/google`, 10 requests per address every 10 minutes, counted together; `POST /v1/auth/login, POST /v1/me/password and POST /v1/me/email, per account`, 5 wrong passwords per account every 15 minutes, counting sign-ins and the current password given to change the password or email. Past that, signing in to the account, or changing its password or email, answers 429 whatever the password, until the oldest failure is 15 minutes old. A successful sign-in, or a right current password, clears the count; `POST /v1/auth/password-reset/request and POST /v1/auth/password-reset/confirm`, 10 requests per address every 10 minutes, counted together and apart from sign-up and sign-in; `POST /v1/auth/password-reset/request, per account`, 3 reset emails per account every hour. A request past that is still answered 202, not 429, and sends no email; `POST /v1/auth/email-confirm/request and POST /v1/auth/email-confirm/confirm`, 10 requests per address every 10 minutes, counted together and apart from sign-up, sign-in and password reset; `POST /v1/auth/email-confirm/request, per account`, 3 confirmation emails per account every hour, the one sent at sign-up included. A request past that is still answered 202, not 429, and sends no email; `POST /v1/me/email and POST /v1/me/email/confirm`, 10 requests per address every 10 minutes, counted together and apart from the sign-in, password reset and confirmation limits; `POST /v1/me/email, per account`, 3 email change links per account every hour. A request past that answers 429 and sends nothing; `POST /v1/organization/invitations and POST /v1/organization/invitations/{id}/resend, per organization`, 20 invitations per organization in any 24 hours, resent and replaced ones included. A request past that answers 429 invitation_rate_limited and sends nothing; `POST /v1/organization/invitations and POST /v1/organization/invitations/{id}/resend, per person`, 20 invitations per person in any 24 hours, counted across all their organizations. A request past that answers 429 invitation_rate_limited and sends nothing; `POST /v1/me/organizations, per person`, 5 new organizations per person in any 24 hours, the one made at sign-up included. A request past that answers 429 and creates nothing; `POST /v1/cases/{id}/advance`, 60 requests per organization every minute; `POST /v1/cases/{id}/notes`, 20 requests per organization every 10 minutes; `POST /v1/geo/county`, 60 requests per organization every hour; `POST /v1/intake/files`, 60 requests per organization every hour; `POST /v1/intake/email, the email Worker's delivery route, per organization`, 60 accepted messages per organization every hour. The route is internal: our email Worker calls it for mail sent to an intake address, not with an API key; it exists only when email intake is set up, and it is not in the API document. A message past the limit is answered 200, not 429, and nothing is stored or emailed; `POST /v1/integrations/{system}/connect and POST /v1/integrations/{system}/leases`, 60 requests per organization every hour, counted together; `POST /v1/integrations/{system}/pull`, 10 requests per organization every hour; `POST /v1/extract`, 20 requests per organization every hour (one lease, one ledger PDF, or one set of up to 10 messages; a refused request counts too). Over a limit the answer is 429 `rate_limited` with a `Retry-After` header in seconds. Three limits answer without a 429: past their limits, password-reset and confirmation emails are simply not sent (the request is still answered 202, so the answer never shows whether an address has an account), and the email Worker's deliveries are answered 200 with nothing stored. No other endpoint is rate limited today. ## For AI agents - [MCP server](https://evictionsapi.com/mcp): Streamable HTTP; the tools that describe the service, its pricing and each state need no key, and the tools that work with cases need the person to sign in (OAuth, in Claude and ChatGPT) or an API key. With them an agent can also send the person’s files: `evictions_add_case_document` adds a document to a case before it is submitted, and `evictions_send_intake_file` sends a file to the person’s inbox before any case exists (live keys only); through the tools a file can be about 700 KB, and up to 4 MB through the API routes `POST /v1/cases/{id}/documents` and `POST /v1/intake/files`. For a property manager, `evictions_list_landlords` lists the owners the organization acts for, as saved in the app; an owner’s `landlordId` passed to `evictions_create_case` opens the case for that owner with its saved management agreement attached, and passed to `evictions_list_cases` lists that owner’s cases. Owners are real people and companies, so this needs live access: with a test key the list is empty and a test case cannot take an owner - [For AI agents](https://evictionsapi.com/docs/agents): the setup for each MCP client, the list of tools, and what acting for a person means - [MCP discovery file](https://evictionsapi.com/.well-known/mcp.json): the server’s address, transport and tools as JSON - [Get an API key](https://evictionsapi.com/signup?next=/app/get-started): sign up, then create a free test key on the API keys page ## Docs - [Quickstart](https://evictionsapi.com/docs): a test case from a test key to closed, with webhooks, in curl, then what changes for a real case with a live key - [API reference](https://evictionsapi.com/docs/api): every endpoint, the conventions, test and live keys, the error codes and the rate limits - [API reference: customer endpoints](https://evictionsapi.com/docs/api/customer): Called with an organization API key (or, from the website, a signed-in session). Everything you need to create, check, submit and follow a case. - [API reference: public endpoints](https://evictionsapi.com/docs/api/public): No credential. Health, the OpenAPI document, the endpoint behind the website’s forms, and account sign-up and sign-in. - [API reference: attorney endpoints](https://evictionsapi.com/docs/api/attorney): Called with an attorney token to review a case and record its steps. An API key cannot call them. Customers integrating the API do not need them. - [Webhooks](https://evictionsapi.com/docs/webhooks): the payload, the signature check and the retry schedule ## Markdown copies - [Quickstart (Markdown)](https://evictionsapi.com/docs.md): the Quickstart page as Markdown - [API reference (Markdown)](https://evictionsapi.com/docs/api.md): the API reference page as Markdown - [API reference: customer endpoints (Markdown)](https://evictionsapi.com/docs/api/customer.md): the API reference: customer endpoints page as Markdown - [API reference: public endpoints (Markdown)](https://evictionsapi.com/docs/api/public.md): the API reference: public endpoints page as Markdown - [API reference: attorney endpoints (Markdown)](https://evictionsapi.com/docs/api/attorney.md): the API reference: attorney endpoints page as Markdown - [Webhooks (Markdown)](https://evictionsapi.com/docs/webhooks.md): the Webhooks page as Markdown - [For AI agents (Markdown)](https://evictionsapi.com/docs/agents.md): the For AI agents page as Markdown - [Pricing (Markdown)](https://evictionsapi.com/pricing.md): the Pricing page as Markdown - [How it works (Markdown)](https://evictionsapi.com/how-it-works.md): the How it works page as Markdown - [FAQ (Markdown)](https://evictionsapi.com/faq.md): the FAQ page as Markdown - [Comparison with other eviction services (Markdown)](https://evictionsapi.com/compare.md): the Comparison with other eviction services page as Markdown - [State pages (Markdown)](https://evictionsapi.com/eviction): the page of each state and DC has a copy at its own address with `.md` added - [Everything in one file](https://evictionsapi.com/llms-full.txt): this file, the instructions for an AI agent, and the Markdown copies of the docs, pricing, how it works and the FAQ ## OpenAPI - [OpenAPI 3.1 document](https://api.evictionsapi.com/v1/openapi.json): served by the API itself, no key needed - [Copy on this site](https://evictionsapi.com/openapi.json): the same document, as of the last build of the site ## Product - [How it works](https://evictionsapi.com/how-it-works): the steps of a real case, from sign-up to the attorney’s review, service and filing - [Pricing](https://evictionsapi.com/pricing): the platform fee and what is charged separately - [Coverage](https://evictionsapi.com/coverage): all 50 states and DC - [FAQ](https://evictionsapi.com/faq): common questions - [Comparison with other eviction services](https://evictionsapi.com/compare): prices, states, who files and developer access, from each company’s own pages, dated - [Contact](https://evictionsapi.com/contact): write to us ## Legal - [Terms of service](https://evictionsapi.com/legal/terms): the agreement for using the service - [Privacy policy](https://evictionsapi.com/legal/privacy): what data is collected and how it is used