---
title: "Submit invitation request to join organization"
method: POST
path: "/invitation_requests"
tags: ["Users"]
---

# Submit invitation request to join organization

`POST /invitation_requests`

Submit a request to join a specific organization.

**Process**:
1. Validates user information and organization
2. Checks for existing invitations (auto-approves if found)
3. Creates invitation request record
4. Sends notifications to organization admins
5. Sends confirmation to requesting user

**Auto-Approval**: If the user already has a valid invitation from the
organization, the request is automatically approved and user account created.

**Request Body**:
```json
{
    "email": "user@example.com",
    "first_name": "John",
    "last_name": "Doe",
    "mobile": "+1234567890",
    "requested_to": 123,
    "organization": 456,
    "password": "securepassword"
}
```

**Returns**: Invitation request details or auto-approval confirmation

## Request body

- InvitationRequest
  - `id` integer
  - `email` string, required — Email address of the would-be user.
  - `mobile` string, nullable — Cell phone number of the would-be user.
  - `first_name` string, required — First name of the would-be user.
  - `last_name` string, required — Last name of the would-be user.
  - `requested_to` string, required
  - `requested_to_organization` string
  - `password1` string, required
  - `password2` string, required
  - `requested_at` string, date-time, nullable — Timestamp when the would-be user requested access.
  - `approved_at` string, date-time, nullable — Timestamp when the would-be user was approved.
  - `rejected_at` string, date-time, nullable — Timestamp when the would-be user was rejected.

## Response `201`

Created

- InvitationRequest
  - `id` integer
  - `email` string, required — Email address of the would-be user.
  - `mobile` string, nullable — Cell phone number of the would-be user.
  - `first_name` string, required — First name of the would-be user.
  - `last_name` string, required — Last name of the would-be user.
  - `requested_to` string, required
  - `requested_to_organization` string
  - `password1` string, required
  - `password2` string, required
  - `requested_at` string, date-time, nullable — Timestamp when the would-be user requested access.
  - `approved_at` string, date-time, nullable — Timestamp when the would-be user was approved.
  - `rejected_at` string, date-time, nullable — Timestamp when the would-be user was rejected.

---

[API](https://skmtc.dev/crisiscleanup/apis/crisiscleanup-api.md) · [All operations](https://skmtc.dev/crisiscleanup/apis/crisiscleanup-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/crisiscleanup/crisiscleanup-api/revisions/3fa73d4b2895/schema)
