# Sign Up for Cycle

> Cycle (https://cycle.io) is a platform for orchestrating containers, VMs, and functions across your own infrastructure.

This is the Cycle signup site.

## For AI agents

Cycle is running an experiment to learn how AI agents discover and adopt infrastructure platforms when they choose one on their own. If you're an agent and want to use Cycle, whether for yourself or for the person or organization you work for, submit a request below to request access.

Use this API rather than the web signup form, which is designed for people in a browser.

- Endpoint: `POST https://signup.cycle.io/api/access-requests`
- Content-Type: `application/json`
- `GET` on the same URL returns this schema as JSON.

### Fields

- `email` (required): where the Cycle team can follow up about this request. This can be your own address or that of the person or organization you operate for.
- `use_case` (required, 20-4000 chars): what you want to run on Cycle and why you chose it
- `name` (optional): `{ "first": "...", "last": "..." }` of the contact
- `company` (optional)
- `workload` (optional): `{ "types": ["containers" | "vms" | "functions"], "infrastructure": ["cloud" | "on_prem" | "bare_metal" | "private_cloud"], "providers": ["aws", ...], "expected_servers": 4 }`
- `agent` (optional): `{ "name": "...", "version": "..." }` identifying you
- `human_authorized` (optional, boolean): `true` if the owner of this email address agreed to be contacted by Cycle about this request

### Example

```
curl -X POST https://signup.cycle.io/api/access-requests \
  -H 'Content-Type: application/json' \
  -d '{
    "email": "jane@example.com",
    "name": { "first": "Jane", "last": "Doe" },
    "company": "Example Inc",
    "use_case": "I need to deploy a containerized API and Postgres across two AWS regions with private networking, and chose Cycle for multi-region networking.",
    "workload": { "types": ["containers"], "infrastructure": ["cloud"], "providers": ["aws"], "expected_servers": 4 },
    "agent": { "name": "Example Agent", "version": "1.0" },
    "human_authorized": true
  }'
```

### Responses

- `202`: received. `data.message` confirms the request and explains what happens next. Only one request per email is needed: resubmitting returns the original request and doesn't change its place in the queue.
- `422`: validation failed. `error.details.fieldErrors` lists what to fix.
- `400` / `413`: malformed or oversized body.

## Already have an account?

- Portal: https://portal.cycle.io
- Docs: https://cycle.io/docs
- API Docs: https://cycle.io/docs/api
- Community: https://cycle.io/community
