1.8 KiB
1.8 KiB
Create User
POST /api/v1/users
Create a new user within a tenant.
Authentication: Required (JWT Bearer token)
Tenant Context: Required
Headers:
Content-Type: application/jsonAuthorization: JWT {access_token}X-Tenant-ID: {tenant_id}(required in development mode)
Request Body:
| Field | Type | Required | Description |
|---|---|---|---|
| string | Yes | User's email address | |
| name | string | Yes | User's full name |
Example Request:
curl -X POST http://localhost:8000/api/v1/users \
-H "Content-Type: application/json" \
-H "Authorization: JWT eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
-H "X-Tenant-ID: 850e8400-e29b-41d4-a716-446655440000" \
-d '{
"email": "jane@techstart.com",
"name": "Jane Smith"
}'
Example Response (201 Created):
{
"id": "950e8400-e29b-41d4-a716-446655440000",
"email": "jane@techstart.com",
"name": "Jane Smith",
"created_at": "2024-10-24T00:00:00Z"
}
Error Responses:
This endpoint returns errors in RFC 9457 (Problem Details for HTTP APIs) format.
Content-Type: application/problem+json
400 Bad Request - Invalid input:
{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "Invalid request body format"
}
401 Unauthorized:
{
"type": "about:blank",
"title": "Unauthorized",
"status": 401,
"detail": "Authentication required"
}
409 Conflict - Email already exists:
{
"type": "about:blank",
"title": "Conflict",
"status": 409,
"detail": "User email already exists in this tenant"
}
500 Internal Server Error:
{
"type": "about:blank",
"title": "Internal Server Error",
"status": 500,
"detail": "Failed to create user"
}