---
title: "Verify email address, create system domain from template, and authenticate user"
method: POST
path: "/v1/registrations/verify/{email_hash}/"
---

# Verify email address, create system domain from template, and authenticate user

`POST /v1/registrations/verify/{email_hash}/`

## Request

- Base URL: `https://app.iconik.io/API/auth`
- URL: `https://app.iconik.io/API/auth/v1/registrations/verify/{email_hash}/`
- Auth: none declared
- TypeScript: <https://skmtc.dev/iconik/apis/iconik-auth/docs/v1/registrations/verify/:email_hash/post.ts> (a function with typed inputs; its response is checked against the schema)

## Path parameters

- `email_hash` string, required

## Query parameters

- `app_name` string

## Response `201`

Returns a created system domain and login data if auto-login

- VerificationResponseSchema
  - `auto_login` boolean
  - `domain_data` SystemDomainFromTemplateSchema
    - `admin_email` string
    - `admin_first_name` string
    - `admin_id` string, uuid
    - `admin_last_name` string
    - `admin_password` string
    - `base_url` string
    - `billing_tier` 'PAYGO' | 'PRO' | 'ENTERPRISE' | 'ENTERPRISE_LEGACY_2025' | 'PRO_LEGACY_2025'
    - `custom_terms` boolean
    - `date_created` string, date-time
    - `date_modified` string, date-time
    - `description` string
    - `disable_ai_features` boolean: Opt the new domain out of every AI feature.
    - `id` string, uuid
    - `name` string, required
    - `status` 'ACTIVE' | 'WARNING' | 'FROZEN' | 'DEACTIVATED'
    - `type` 'TRIAL' | 'CUSTOMER' | 'PARTNER' | 'INTERNAL'
  - `login_data` AutoLoginSchema
    - `app_id` string, required
    - `token` string, required

## Other responses

- `400`: Bad request
- `401`: Token is invalid
- `425`: Registration is already being processed
- `default`: Error response

---

[API](https://skmtc.dev/iconik/apis/iconik-auth.md) - [All operations](https://skmtc.dev/iconik/apis/iconik-auth/llms.txt) - [OpenAPI document](https://skmtc.dev/iconik/apis/iconik-auth/revisions/5dde985bb742?raw)
