> ## Documentation Index
> Fetch the complete documentation index at: https://docs.archal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Stateful environments

> Choose from 22 provider-shaped environments and 110 versioned starting states.

A stateful environment is the provider your software talks to inside an Archal sandbox. It keeps data across calls, applies provider-specific behavior, and can return to a known starting state.

Each sandbox can contain one environment or several. For example, one sandbox can hold GitHub, Slack, and Datadog so an agent can run a cross-service workflow without touching real accounts.

## Environment catalog

| Environment                                        | Channel | Transport    | Starting state |
| -------------------------------------------------- | ------- | ------------ | -------------- |
| [Apify](/environments/apify)                       | Preview | REST         | JSON           |
| [Cal.com](/environments/calcom)                    | Preview | REST and MCP | JSON           |
| [ClickUp](/environments/clickup)                   | Preview | REST and MCP | JSON           |
| [Customer.io](/environments/customerio)            | Preview | REST         | JSON           |
| [Datadog](/environments/datadog)                   | Preview | REST         | JSON           |
| [Discord](/environments/discord)                   | Preview | REST and MCP | JSON           |
| [GitHub](/environments/github)                     | Public  | REST and MCP | JSON           |
| [GitLab](/environments/gitlab)                     | Preview | REST and MCP | JSON           |
| [Google Workspace](/environments/google-workspace) | Preview | REST and MCP | JSON           |
| [HubSpot](/environments/hubspot)                   | Preview | REST         | JSON           |
| [Jira](/environments/jira)                         | Preview | REST and MCP | JSON           |
| [Linear](/environments/linear)                     | Public  | REST and MCP | JSON           |
| [OwnerRez](/environments/ownerrez)                 | Preview | REST         | JSON           |
| [PriceLabs](/environments/pricelabs)               | Preview | REST         | JSON           |
| [Ramp](/environments/ramp)                         | Preview | MCP          | JSON           |
| [Sentry](/environments/sentry)                     | Preview | REST         | JSON           |
| [Slack](/environments/slack)                       | Public  | REST and MCP | JSON           |
| [Stripe](/environments/stripe)                     | Preview | REST and MCP | JSON           |
| [Supabase](/environments/supabase)                 | Public  | REST and MCP | JSON or SQL    |
| [Tavily](/environments/tavily)                     | Preview | REST         | JSON           |
| [Unipile](/environments/unipile)                   | Preview | REST         | JSON           |
| [Webflow](/environments/webflow)                   | Preview | REST and MCP | JSON           |

Every row is included in Archal's environment catalog. That does not prove the hosted lifecycle is available. **Public** is the intended GA channel. **Preview** means upstream coverage is incomplete. Local catalog validation: **110 passed**. Archal checks current hosted certification before admitting new sandboxes.

## Five starting states per environment

The catalog includes exactly 110 versioned samples, five for each environment. The set spans small baselines, team-shaped state, larger corpora, edge cases, and multi-step workflows.

Every environment page shows what each sample is for, the first read, a representative mutation, the expected changed paths, reset expectations, limits, and the verified state artifact.

```bash theme={null}
archal sample list
archal sample list github
archal sample show github.small-project.v1
```

## What provider-shaped means

Archal does not turn every provider into one generic API. GitHub requests remain GitHub-shaped. Linear keeps its GraphQL surface. Supabase accepts database-shaped operations. Your existing provider client should need a different base URL and scoped test credentials, not a rewrite around an Archal data model.

<Note>
  After launch, the authenticated catalog is authoritative. Run `archal environment list` or call `GET /api/environments` before relying on an environment in automation.
</Note>
