---
title: "Create Form Domain"
method: POST
path: "/form-domain"
tags: ["Form Domain"]
---

# Create Form Domain

`POST /form-domain`

## Request

- Base URL: `https://oneuptime.com/api`
- URL: `https://oneuptime.com/api/form-domain`
- Auth: API key in header `APIKey`
- TypeScript: <https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/docs/form-domain/post.ts> (a function with typed inputs; its response is checked against the schema)

Endpoint to create a new Form Domain

## Request body

- object
  - `data` FormDomainCreateSchema, required: Create schema for FormDomain model. Create
    - `projectId` string, uuid: ID of your OneUptime Project in which this object belongs. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `domainId` string, uuid, required: ID of the verified domain this one is a subdomain of. The domain must be verified in Project Settings > Advanced > Domains. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `formId` string, uuid, required: ID of the form this domain answers with. Fixed once the domain is added: to put the domain on another form, delete it and add it there. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `subdomain` string: Subdomain label for your form such as 'report'. Leave blank or enter @ to use the root domain. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `customCertificate` string: The certificate, in PEM format, to serve the domain with instead of the free one. Used while isCustomCertificate is on. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]
    - `customCertificateKey` string: The custom certificate's private key, in PEM format. Used while isCustomCertificate is on. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]
    - `isCustomCertificate` boolean: Serve the domain with the certificate you upload rather than the free SSL certificate OneUptime issues and renews. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]

## Response `201`

Created successfully

- object
  - `data` FormDomainReadSchema: Read schema for FormDomain model. Read
    - `_id` string, uuid: ID of this object. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]
    - `createdAt` object: Date and Time when the object was created. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]
    - `updatedAt` object: Date and Time when the object was updated. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]
    - `deletedAt` object: Date and Time when the object was deleted. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]
    - `projectId` string, uuid: ID of your OneUptime Project in which this object belongs. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `domainId` string, uuid, required: ID of the verified domain this one is a subdomain of. The domain must be verified in Project Settings > Advanced > Domains. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `formId` string, uuid, required: ID of the form this domain answers with. Fixed once the domain is added: to put the domain on another form, delete it and add it there. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `subdomain` string: Subdomain label for your form such as 'report'. Leave blank or enter @ to use the root domain. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `fullDomain` string: Full domain of your form (like report.acmeinc.com). This is autogenerated and is derived from subdomain and domain. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `createdByUserId` string, uuid: User ID who created this object (if this object was created by a User). Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `isCnameVerified` boolean: Whether the domain's CNAME record has been found pointing to this installation. Checked every 15 minutes, or on Check now. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `isSslOrdered` boolean: Whether a free SSL certificate has been ordered for the domain. Ordered on its own once the CNAME record is verified. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `isSslProvisioned` boolean: Whether the domain serves its free SSL certificate yet. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]
    - `customCertificate` string: The certificate, in PEM format, to serve the domain with instead of the free one. Used while isCustomCertificate is on. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]
    - `customCertificateKey` string: The custom certificate's private key, in PEM format. Used while isCustomCertificate is on. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]
    - `isCustomCertificate` boolean: Serve the domain with the certificate you upload rather than the free SSL certificate OneUptime issues and renews. Permissions - Create: [Project Owner, Project Admin, Edit Form, Create Form Domain], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [Project Owner, Project Admin, Edit Form, Edit Form Domain]
    - `certificateReissueRequestedAt` object: When a reissue of the SSL certificate for this domain was last requested. Used to rate limit how often a certificate can be reissued. Permissions - Create: [No access - you don't have permission for this operation], Read: [Project Owner, Project Admin, Project Member, Viewer, Incident Admin, Incident Member, Incident Viewer, Scheduled Maintenance Admin, Scheduled Maintenance Member, Scheduled Maintenance Viewer, Read Form, Read Form Domain], Update: [No access - you don't have permission for this operation]

## Other responses

- `400`: Bad request. This response indicates that the request was malformed or contained invalid data.
- `401`: Unauthorized. This response indicates that the request requires user authentication.
- `402`: Payment Required. This response indicates that the request requires payment or a valid subscription.
- `403`: Forbidden. This response indicates that the server understood the request, but refuses to authorize it.
- `405`: Project not found. This response indicates that the requested project does not exist or is not accessible.
- `408`: Request Timeout. This response indicates that the server timed out waiting for the request.
- `415`: Unable to reach server. This response indicates that the server is currently unreachable or down.
- `422`: Not authorized. This response indicates that the user does not have permission to access the requested resource.
- `500`: Internal Server Error. This response indicates that the server encountered an unexpected condition that prevented it from fulfilling the request.

---

[API](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification.md) - [All operations](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/llms.txt) - [OpenAPI document](https://skmtc.dev/oneuptime/apis/oneuptime-openapi-specification/revisions/ba3307d00304?raw)
