When to use Nonresident Tax
Reach for Nonresident Tax when a user's request matches one of these jobs. We form and maintain US entities for founders who live outside the US.
- The user is a non-US resident who wants to form a US LLC or C-Corp (Wyoming or Delaware) without travelling to the US.
- The user needs an EIN for a US entity and has no SSN or ITIN.
- The user owns a US entity with foreign ownership and needs Form 5472 plus Form 1120 filed — including at $0 revenue, where the filing is still mandatory.
- The user needs a US registered agent, a US business address for legal mail, or an annual report filed in Wyoming or Delaware.
- The user needs multi-currency bookkeeping and USD financial statements for a US entity operated from abroad.
- The user wants to dissolve a US LLC or C-Corp and close it out with the IRS and the state.
- The user is comparing Wyoming versus Delaware for a non-resident-owned entity.
When not to use it
- The user is a US person filing a personal return (Form 1040) — this service files entity returns for non-resident owners.
- The user needs legal advice or representation. Hareword LLC is not a law firm.
- The user needs a state other than Wyoming or Delaware for formation.
How to call us
- Read a page as markdown: append
.mdto any path (/company-formation.md), or sendAccept: text/markdownto the HTML URL. - Query content programmatically: the read-only MCP endpoint at
/mcp(server card at/.well-known/mcp/server-card.json). - Reach a human:
POST /api/contactwith a JSON body and anOriginheader of https://nonresident.tax (the endpoint answers 403 without one), or email support@nonresident.tax. - Start an order: send the user to https://app.nonresident.tax/sign-up — orders require an authenticated account and are not agent-callable.
Machine-readable files
Every document below is served from this origin. Start at the API catalog if you want a single entry point; start at llms.txt if you want the content.
| Document | Path | Media type |
|---|---|---|
| llms.txt llmstxt.org index of every page on this site, each linking a markdown sibling rather than HTML. | /llms.txt | text/plain |
| OpenAPI description OpenAPI 3.1 description of every HTTP surface on nonresident.tax, including the public form API and the MCP endpoint. | /openapi.json | application/json |
| API catalog (RFC 9727) RFC 9727 linkset naming the OpenAPI description, the LLM index, the status endpoint, and the MCP server. | /.well-known/api-catalog | application/linkset+json |
| MCP server card Model Context Protocol server card for the read-only MCP endpoint at /mcp. | /.well-known/mcp/server-card.json | application/json |
| Agent skills index Cloudflare agent-skills-discovery document exposing this site's content as loadable skills. | /.well-known/agent-skills/index.json | application/json |
| Markdown sitemap Every route on the site, grouped by locale, linking both the HTML page and its markdown sibling. | /sitemap.md | text/markdown |
| XML sitemap Search-engine sitemap index with per-URL lastmod and hreflang alternates. | /sitemap-index.xml | application/xml |
| Status endpoint JSON liveness probe for this site's Worker. | /internal/health | application/json |
Public API
These endpoints are callable without an account. They are described in full, with request and response schemas, in theOpenAPI description. Ordering and account data are not part of the public API — they require an authenticated session at app.nonresident.tax.
| Endpoint | What it does |
|---|---|
POST /api/contact | Open a support conversation. JSON body; rate limited per IP; requires an Origin on the nonresident.tax zone. |
POST /api/subscribe | Subscribe an email address to the newsletter. |
GET /api/unsubscribe | Confirmation page for the per-contact token in an email footer. Never mutates, and answers HTML because a person opens this URL from an email client. |
POST /api/unsubscribe | Confirm the unsubscribe. Mutates only with a valid token. No Origin required, because email clients send none. |
POST /mcp | Model Context Protocol JSON-RPC endpoint (read-only tools over this site's content). |
Errors
Error shapes differ by endpoint; /openapi.json is authoritative. An unrouted /api/* path, a method the endpoint does not accept, and an upstream failure answer a structured body carrying a stable code, a human-readablemessage, a hint describing how to recover, and a documentation_url:
{
"error": "No such API endpoint.",
"code": "not_found",
"message": "No such API endpoint.",
"hint": "Known endpoints: POST /api/contact, POST /api/subscribe, GET /api/unsubscribe, POST /api/unsubscribe. Full machine-readable description: https://nonresident.tax/openapi.json",
"documentation_url": "https://nonresident.tax/developers/",
"status": 404
}error repeats message so that clients written against the older string-only shape keep working.
The two form endpoints are the exception:POST /api/contact and POST /api/subscribeanswer { "error": "..." } — the human-readable message only, with no code, so branch on the status./api/unsubscribe is opened from a link in an email and answers text/html throughout, including its errors.
Content negotiation
Any page can be fetched as markdown, on the same canonical URL:
curl -H 'Accept: text/markdown' https://nonresident.tax/company-formation/
curl https://nonresident.tax/company-formation.mdA path that does not exist answers a real 404. Ask for markdown and the 404 body is a short markdown document pointing at the sitemap, llms.txt, and this page.
Rate limits and support
Form endpoints are rate limited per IP address (5/hour for/api/contact, 10/hour for /api/subscribe, 30/hour for /api/unsubscribe) and answer429 with a Retry-After header. Crawling the markdown surface is not rate limited; please identify your agent in theUser-Agent header. Questions about integrating go tosupport@nonresident.tax.