# Backflow Base > Software that runs a backflow testing company: customers book online, the office schedules the day, testers file the test from the field app, and the report goes to the water district. Built for companies in Washington and Idaho. An AI assistant can sign a company up and set it up end to end. Signing up is free and needs no card. A new company starts in **test mode**: every email it would send — to customers and to water districts — goes to the company's own inbox instead, marked as a test. The subscription ($50/month or $500/year, 45 days free) starts only when the owner turns test mode off. An assistant can never turn it off; that is the owner's decision. ## Sign a company up (no key needed) `POST https://app.backflowbase.com/api/agent/signup` with JSON: ```json { "owner": { "email": "owner@example.com", "name": "Pat Owner" }, "company": { "name": "Example Backflow", "timezone": "America/Los_Angeles", "legalName": "Example Backflow LLC", "phone": "(509) 555-0100", "state": "WA", "priceFirstCents": 7500 }, "keyName": "Claude" } ``` The response has `apiKey` (shown once), the company's `organization.slug`, and the app URL. The owner gets an email with a sign-in link to claim the account; until they use it, only the key can act for the company. An email that already has an account is refused — its owner makes a key in the app instead (Settings → Company → AI assistants and API keys). ## Use the key Send `Authorization: Bearer ` on every request. The key acts as the owner, for that one company only. - **MCP** (recommended for assistants): `https://app.backflowbase.com/api/mcp` — Streamable HTTP. Tools: get_company, update_company, get_team, set_tester, search_water_districts, list_customers, get_customer, set_customer_district, get_schedule, create_job, schedule_job, cancel_job, list_filings, send_filing, report_link, and signup_company (no key needed). - Claude Code: `claude mcp add --transport http backflow-base https://app.backflowbase.com/api/mcp --header "Authorization: Bearer "` - **REST**: OpenAPI spec at `https://app.backflowbase.com/api/openapi.json`. Paths are under `https://app.backflowbase.com/api`. ## A sensible setup order 1. `get_company` — check what signup recorded. 2. `update_company` — license number, address, prices (cents), early-bird and rush rules, working day, then the booking page: `bookingSlug`, `bookingEnabled: true`, `tagline`, `brandColor`. The hosted page is `https://app.backflowbase.com/book/`. 3. Testers: the owner invites the team from the app; then `set_tester` records each tester's certification number, expiry and test kit. 4. `search_water_districts` and `set_customer_district` — every household's reports are filed with its water district. 5. Take a test booking on the booking page, then `get_schedule` and `schedule_job` to put it on a tester's day. ## Bookings from the company's own website A company that keeps its own booking form posts each booking to `POST https://app.backflowbase.com/api/booking/request` with the company's `slug` (its booking slug), a unique `requestId` (retries with the same id file once), the customer's name, phone, optional email, the address (`addressLine`, `city`, `state`, `zip`, optional `lat`/`lng`), `assemblyType` (`rp`, `dc`, `pvb`, `svb` or `unsure`), and an `origin` such as `"examplebackflow.com"`. ## Rules - Never turn test mode off; tell the owner it's theirs to do when they're ready, and that it starts the plan. - Prices are in cents. Dates are `YYYY-MM-DD` in the company's timezone; arrival windows are minutes after midnight. - Water district contacts are researched, not guaranteed: a filing to a district nobody has confirmed is held for the office to release. ## Contact hello@backflowbase.com