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

  1. Read a page as markdown: append .md to any path (/company-formation.md), or send Accept: text/markdown to the HTML URL.
  2. Query content programmatically: the read-only MCP endpoint at /mcp (server card at /.well-known/mcp/server-card.json).
  3. Reach a human: POST /api/contact with a JSON body and an Origin header of https://nonresident.tax (the endpoint answers 403 without one), or email support@nonresident.tax.
  4. 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.

DocumentPathMedia type
llms.txt
llmstxt.org index of every page on this site, each linking a markdown sibling rather than HTML.
/llms.txttext/plain
OpenAPI description
OpenAPI 3.1 description of every HTTP surface on nonresident.tax, including the public form API and the MCP endpoint.
/openapi.jsonapplication/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-catalogapplication/linkset+json
MCP server card
Model Context Protocol server card for the read-only MCP endpoint at /mcp.
/.well-known/mcp/server-card.jsonapplication/json
Agent skills index
Cloudflare agent-skills-discovery document exposing this site's content as loadable skills.
/.well-known/agent-skills/index.jsonapplication/json
Markdown sitemap
Every route on the site, grouped by locale, linking both the HTML page and its markdown sibling.
/sitemap.mdtext/markdown
XML sitemap
Search-engine sitemap index with per-URL lastmod and hreflang alternates.
/sitemap-index.xmlapplication/xml
Status endpoint
JSON liveness probe for this site's Worker.
/internal/healthapplication/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.

EndpointWhat it does
POST /api/contactOpen a support conversation. JSON body; rate limited per IP; requires an Origin on the nonresident.tax zone.
POST /api/subscribeSubscribe an email address to the newsletter.
GET /api/unsubscribeConfirmation 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/unsubscribeConfirm the unsubscribe. Mutates only with a valid token. No Origin required, because email clients send none.
POST /mcpModel 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.md

A 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.

Building on top of us?

Tell us what you're integrating and what is missing from the machine surface — we would rather add it than have you scrape HTML.

Contact us