# info.description
Public support endpoints exposed by the THORChain Swap web interface. All error responses are JSON objects with a machine-readable code, a human-readable message, and a resolution hint.

Versioning: the API is versioned in the URL path (/api/v1/). The unversioned /api/* paths are stable aliases of the newest major version. Breaking changes ship as a new /api/vN prefix with at least six months of overlap; deprecated endpoints signal retirement with Deprecation and Sunset response headers and are documented on the developer portal.

# paths./api/v1/newsletter.post.summary
Subscribe an email address to THORChain Swap updates.

# paths./api/v1/newsletter.post.parameters[].description
Unique client-generated key making the request idempotent: a retry with the same key within one hour replays the original JSON response (marked with an Idempotency-Replayed: true response header) instead of re-executing the operation. 429 and 5xx outcomes are not stored, so retries after those can succeed.

# paths./api/v1/newsletter.post.responses.400.description
Invalid JSON body or invalid email address.

# paths./api/v1/newsletter.post.responses.405.description
Method not allowed; only POST is supported.

# paths./api/v1/newsletter.post.responses.429.description
Rate limit exceeded. Retry after the number of seconds in the Retry-After header.

# paths./api/v1/newsletter.post.responses.500.description
Server misconfiguration or upstream provider error.

# paths./api/v1/report-bug.post.parameters[].description
Unique client-generated key making the request idempotent: a retry with the same key within one hour replays the original JSON response (marked with an Idempotency-Replayed: true response header) instead of re-executing the operation. 429 and 5xx outcomes are not stored, so retries after those can succeed.

# paths./api/v1/report-bug.post.responses.400.description
Invalid JSON body or missing description.

# paths./api/v1/report-bug.post.responses.405.description
Method not allowed; only POST is supported.

# paths./api/v1/report-bug.post.responses.429.description
Rate limit exceeded. Retry after the number of seconds in the Retry-After header.

# paths./api/v1/report-bug.post.responses.500.description
Server misconfiguration or upstream provider error.

# components.securitySchemes.agentOAuth.description
Scoped OAuth 2.0 access for agents. Anonymous access is currently permitted on all public endpoints, so credentials are optional; the scopes below define the least-privilege access an agent should request once self-service issuance is enabled. See /auth.md and /.well-known/oauth-authorization-server.

# components.securitySchemes.agentOAuth.flows.authorizationCode.scopes.read:public
Read public discovery documents, quotes, pools, and network data.

# components.securitySchemes.agentOAuth.flows.authorizationCode.scopes.submit:feedback
Submit newsletter subscriptions and bug reports.

# components.schemas.Error.description
Structured error returned by every non-2xx API response.