Skip to content

Hosts

There are three, and they do not overlap.

Host Serves Authenticates with
api.tileward.com /v1 — chat completions, models, the guard API key
app.tileward.com /auth/* and /api/* — the account surface console session
context.tileward.com Tileward Context and Documents, over MCP API key

api.tileward.com serves /v1 only. Anything else answers 404 wrong_host — it is not a routing accident you can work around, and a 404 from it does not mean the endpoint is gone.

You do not route this by hand

The client picks the host from what a call needs: a call that carries an API key goes to the API host, a call that carries a session goes to the console host, and Context has its own connection. One client owns all three.

tw = Tileward()
tw.chat.say("...")        # api.tileward.com/v1/chat/completions
tw.account.get()          # app.tileward.com/api/account
tw.context.recall("...")  # context.tileward.com

The one thing to get right is not collapsing them. A configuration that points TILEWARD_BASE_URL at the console host, or the reverse, produces 404s that read like a missing feature.

Overriding them

Setting Environment CLI flag twcli config set
API host TILEWARD_BASE_URL --base-url base_url
Console host TILEWARD_CONSOLE_URL console_url
Context host TILEWARD_CONTEXT_URL --context-url context_url
tw = Tileward(
    base_url="https://api.internal.example",
    console_url="https://app.internal.example",
    context_url="https://context.internal.example",
)

Set all three when you point at a self-hosted deployment. Setting one and leaving the others at their defaults sends part of your traffic to the hosted service.

There is no global --console-url flag; use the environment variable or store it on the profile.

The Context address

https://context.tileward.com is the canonical one. It is a whole address with nothing to append — the MCP endpoint is the host root, not a path under it.

https://api.tileward.com/mcp is the legacy address and still serves, so an older configured value keeps working. New configuration should use the canonical host.