---
title: "Join the proactive-agents waitlist"
method: POST
path: "/api/v1/proactive_agent_waitlist_entries"
tags: ["proactive_agent_waitlist_entries"]
---

# Join the proactive-agents waitlist

`POST /api/v1/proactive_agent_waitlist_entries`

## Request

- Base URL: `https://composal.com` (the document declares no server; this is the origin it was published from)
- URL: `https://composal.com/api/v1/proactive_agent_waitlist_entries`
- Auth: none required

Unauthenticated and CSRF-exempt: composal.com/proactive-agents posts this straight from a browser. Rate limited per IP (5 per minute). One entry per mailbox: a returning email gets its existing place back with a 200, and an invite code only credits a new entry. `website` is a honeypot; when it is filled in the reply is an ordinary 201 and nothing is stored.

## Request body

- ProactiveAgentWaitlistJoinRequest
  - `email` string, required
  - `first_task` string, nullable: The first job they would hand an agent. Optional.
  - `invite_code` string, nullable: The referral code of the invite link they arrived through.
  - `website` string, nullable: Honeypot. Render it hidden and leave it empty; any value discards the request.

## Response `200`

The email was already on the waitlist; its current place.

- ProactiveAgentWaitlistStatus
  - `referral_code` string, required: Shared in this entry's invite link.
  - `position` integer, required: 1-based place in the queue.
  - `position_after_next_referral` integer, required: The place one more referral would give this entry, as Rails would assign it.
  - `total` integer, required: Display total including a random increment per signup; not the actual number of entries.
  - `referral_count` integer, required: People who joined through this entry's link.
  - `places_per_referral` integer, required: Most places one referral moves the entry up; fewer when boosted entries are ahead.

## Other responses

- `201`: Joined (or silently discarded as spam).
- `400`: The email was missing from the request body.
- `422`: A field failed validation.
- `429`: Too many requests from this IP.

---

[API](https://skmtc.dev/composal/apis/vex-api.md) - [All operations](https://skmtc.dev/composal/apis/vex-api/llms.txt) - [OpenAPI document](https://skmtc.dev/composal/apis/vex-api/revisions/74298a24e040?raw)
