# Laundryheap > On-demand laundry and dry cleaning with 24-hour collection and delivery, founded in London and > operating across the UK, US, Ireland, the Netherlands, Sweden, Denmark, the UAE, Qatar, Kuwait, > Bahrain and Singapore. Laundryheap runs a real production API — a GraphQL endpoint plus a > standards-clean OAuth 2.0 / OpenID Connect authorization server — but publishes no developer > portal and no documentation for any of it. This file is generated by API Evangelist from independently probed public evidence. Laundryheap does not publish an llms.txt of its own; /llms.txt on every Laundryheap host returns the HTML site shell, not a document. ## What is actually callable - [GraphQL endpoint](https://www.laundryheap.com/graphql): the product API. 36 query fields and 33 mutation fields covering orders, recurring orders, addresses, timeslots, services, hotels, subscriptions, bundles, credits, promotions, Stripe payment methods and reviews. Introspection is disabled; most fields require authentication and return `errors[0].extensions.short_code = "authentication"` without it. - [Service catalogue](https://www.laundryheap.com/api/v1/services?address=London): the one endpoint that answers usefully with no credentials. Returns the services available at an address, each with a short code, description, minimum service duration and turnaround time. - [OAuth 2.0 / OIDC discovery](https://www.laundryheap.com/.well-known/openid-configuration): live authorization server metadata. Grants `authorization_code` (PKCE, S256) and `client_credentials`; scopes `openid` and `orders.create`; RS256 ID tokens; introspection, revocation and open dynamic client registration all live. ## Specs and artifacts - [GraphQL field inventory](graphql/laundryheap-graphql.yml): all 69 fields with their argument names and types, read out of Laundryheap's own production client bundle and cross-checked against the live endpoint. Not an SDL — no schema is published. - [Authentication profile](authentication/laundryheap-authentication.yml) - [OAuth scopes](scopes/laundryheap-scopes.yml) - [Data model](data-model/laundryheap-data-model.yml): 17 entities, 23 relationships. - [Error envelopes](errors/laundryheap-problem-types.yml): four different envelopes on one hostname. - [API conventions and reversibility](conventions/laundryheap-conventions.yml) - [Conformance](conformance/laundryheap-conformance.yml) - [Lifecycle](lifecycle/laundryheap-lifecycle.yml) - [Rate limits](rate-limits/laundryheap-rate-limits.yml): none published, no headers emitted. - [Well-known discovery](well-known/laundryheap-well-known.yml) - [Pricing](plans/laundryheap-plans-pricing.yml): no API plans; full consumer pricelists. - [Candidate MCP tools](mcp/laundryheap-mcp.yml): derived only — Laundryheap ships no MCP server. ## Things an agent should know before acting - **Cancellation is reversible on a stated clock.** `cancelOrder(uuid, reasons)` cancels free of charge up to 2 hours before the scheduled collection or delivery. Inside 2 hours it still succeeds but a fee is added to the invoice. See . - **There is no idempotency mechanism.** No Idempotency-Key header, no idempotency argument on any of the 33 mutations — including `createOrder`, `buyCredits` and `purchaseBundle`. Retrying a failed write is not safe. - **There is no rate-limit signal.** No `RateLimit-*`, no `X-RateLimit-*`, no `Retry-After` on any response. An agent cannot know its remaining budget or how long to back off. - **Credits, bundles and subscriptions are not reversible.** `buyCredits` and `purchaseBundle` have no reversal mutation, and no refund window is published. `createSubscription` has no cancel field. - **Country is the partition key.** `ServiceCountryEnum` appears on 14 separate fields; almost nothing resolves without it. - **No credentials process is published.** Dynamic client registration is open at `/oauth/registration`, but nothing states who may register or on what terms. Business enquiries go to collaborate@laundryheap.com. ## Human docs - [Website](https://www.laundryheap.com/) - [Pricing](https://www.laundryheap.com/en-gb/pricing) - [Help Centre](https://help.laundryheap.com/en/) - [Blog](https://www.laundryheap.com/blog/) - [Terms of Service](https://www.laundryheap.com/en-us/terms) - [Privacy Policy](https://www.laundryheap.com/privacy) - [Hotel partnerships](https://www.laundryheap.com/en-us/hotels) - [Commercial laundry](https://www.laundryheap.com/en-us/commercial-laundry) ## Not published No OpenAPI. No AsyncAPI, webhooks or event surface. No SDK in any registry. No CLI. No sandbox or test environment. No status page. No changelog. No deprecation policy or SLA. No security.txt, trust centre, bug bounty or named certification. No MCP server. No A2A agent card. No Postman collection.