# v1 (https://developer.godaddy.com/en/docs/references/rest/certificates/v1)

---
title: v1
description: ''
full: true
---

## POST /v1/certificates

Create a pending order for certificate

<p>Creating a certificate order can be a long running asynchronous operation in the PKI workflow. The PKI API supports 2 options for getting the completion stateful actions for this asynchronous operations: 1) by polling operations -- see /v1/certificates/{certificateId}/actions 2) via WebHook style callback -- see '/v1/certificates/{certificateId}/callback'.</p>

### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `X-Market-Id` | string | no | Setting locale for communications such as emails and error messages |

### Request body (required)

The certificate order information

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateCreate`

### Responses

**202** — Request was successful

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateIdentifier`

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow renew

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — `email` is not empty<br>`csr` is invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## POST /v1/certificates/validate

Validate a pending order for certificate

### Header parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `X-Market-Id` | string | no | Setting locale for communications such as emails and error messages |

### Request body (required)

The certificate order info

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateCreate`

### Responses

**204** — Request validated successfully

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow renew

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — `email` is not empty <br> `csr` is invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## GET /v1/certificates/{certificateId}

Retrieve certificate details

Once the certificate order has been created, this method can be used to check the status of the certificate. This method can also be used to retrieve details of the certificate.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to lookup |

### Responses

**200** — Certificate details retrieved

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Certificate`

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## GET /v1/certificates/{certificateId}/actions

Retrieve all certificate actions

This method is used to retrieve all stateful actions relating to a certificate lifecycle.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to register for callback |

### Responses

**200** — Action retrieval successful

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/ArrayOfCertificateAction`

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## POST /v1/certificates/{certificateId}/email/{emailId}/resend

Resend an email

This method can be used to resend emails by providing the certificate id and the email id

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to resend email |
| `emailId` | string | yes | Email id for email to resend |

### Responses

**204** — Email sent successfully

**404** — Certificate not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Email Id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## POST /v1/certificates/{certificateId}/email/resend/{emailAddress}

Add alternate email address

This method adds an alternate email address to a certificate order and re-sends all existing request emails to that address.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to resend emails |
| `emailAddress` | string | yes | Specific email address to resend email |

### Responses

**200** — Alternate email address added and emails re-sent

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateEmailHistory`

**404** — Certificate not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow alternate email address

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## POST /v1/certificates/{certificateId}/email/{emailId}/resend/{emailAddress}

Resend email to email address

This method can be used to resend emails by providing the certificate id, the email id, and the recipient email address

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to resend emails |
| `emailId` | string | yes | Email id for email to resend |
| `emailAddress` | string | yes | Specific email address to resend email |

### Responses

**204** — Email sent successfully

**404** — Certificate not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Email Id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## GET /v1/certificates/{certificateId}/email/history

Retrieve email history

This method can be used to retrieve all emails sent for a certificate.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to retrieve email history |

### Responses

**200** — Email history retrieval successful

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateEmailHistory`

**409** — Email history not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## GET /v1/certificates/{certificateId}/callback

Retrieve system stateful action callback url

This method is used to retrieve the registered callback url for a certificate.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to register for stateful action callback |

### Responses

**200** — Callback registered

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateCallback`

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## DELETE /v1/certificates/{certificateId}/callback

Unregister system callback

Unregister the callback for a particular certificate.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to unregister callback |

### Responses

**204** — Callback removed

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## PUT /v1/certificates/{certificateId}/callback

Register of certificate action callback

This method is used to register/replace url for callbacks for stateful actions relating to a certificate lifecycle. The callback url is a Webhook style pattern and will receive POST http requests with json body defined in the CertificateAction model definition for each certificate action.  Only one callback URL is allowed to be registered for each certificateId, so it will replace a previous registration.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to register/replace for callback |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `callbackUrl` | string | yes | Callback url registered/replaced to receive stateful actions |

### Responses

**204** — Callback replaced/registered

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — Callback url is missing <br> Callback url is malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## POST /v1/certificates/{certificateId}/cancel

Cancel a pending certificate

Use the cancel call to cancel a pending certificate order.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to cancel |

### Responses

**204** — Certificate order has been canceled

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow cancel

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## GET /v1/certificates/{certificateId}/download

Download certificate

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to download |

### Responses

**200** — Certificate retrieved

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateBundle`

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow download

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## POST /v1/certificates/{certificateId}/reissue

Reissue active certificate

<p>Rekeying is the process by which the private and public key is changed for a certificate. It is a simplified reissue,where only the CSR is changed. Reissuing is the process by which domain names are added or removed from a certificate.Once a request is validated and approved, the certificate will be reissued with the new common name and sans specified. Unlimited reissues are available during the lifetime of the certificate.New names added to a certificate that do not share the base domain of the common name may take additional time to validate. If this API call is made before a previous pending reissue has been validated and issued, the previous reissue request is automatically rejected and replaced with the current request.</p>

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to reissue |

### Request body (required)

The reissue request info

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateReissue`

### Responses

**202** — Reissue request created

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow reissue

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — `csr` is invalid<br>Delay revocation exceeds maximum

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## POST /v1/certificates/{certificateId}/renew

Renew active certificate

Renewal is the process by which the validity of a certificate is extended. Renewal is only available 60 days prior to expiration of the previous certificate and 30 days after the expiration of the previous certificate. The renewal supports modifying a set of the original certificate order information. Once a request is validated and approved, the certificate will be issued with extended validity. Since subject alternative names can be removed during a renewal, we require that you provide the subject alternative names you expect in the renewed certificate. New names added to a certificate that do not share the base domain of the common name may take additional time to validate. </p>

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to renew |

### Request body (required)

The renew request info

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateRenew`

### Responses

**202** — Renew request created

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow renew

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — `csr` is invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## POST /v1/certificates/{certificateId}/revoke

Revoke active certificate

Use revoke call to revoke an active certificate, if the certificate has not been issued a 404 response will be returned.

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to revoke |

### Request body (required)

The certificate revocation request

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateRevoke`

### Responses

**204** — Certificate Revoked

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow revoke

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## GET /v1/certificates/{certificateId}/siteSeal

Get Site seal

<p>This method is used to obtain the site seal information for an issued certificate. A site seal is a graphic that the certificate purchaser can embed on their web site to show their visitors information about their SSL certificate. If a web site visitor clicks on the site seal image, a pop-up page is displayed that contains detailed information about the SSL certificate. The site seal token is used to link the site seal graphic image to the appropriate certificate details pop-up page display when a user clicks on the site seal. The site seal images are expected to be static images and hosted on the reseller's website, to minimize delays for customer page load times.</p>

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id |

### Query parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `theme` | string | no | This value represents the visual theme of the seal. If seal doesn't exist, default values are used if params not present. If seal does exist, default values will not be used to update unless params present. |
| `locale` | string | no | Determine locale for text displayed in seal image and verification page. If seal doesn't exist, default values are used if params not present. If seal does exist, default values will not be used to update unless params present. |

### Responses

**200** — Site seal retrieved

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/CertificateSiteSeal`

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Certificate state does not allow seal

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**422** — 'locale' is invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

## POST /v1/certificates/{certificateId}/verifyDomainControl

Check Domain Control

Domain control is a means for verifying the domain included in the certificate order. This resource is useful for resellers that control the domains for their customers, and can expedite the verification process. See https://www.godaddy.com/help/verifying-your-domain-ownership-for-ssl-certificate-requests-html-or-dns-7452

### Path parameters

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `certificateId` | string | yes | Certificate id to lookup |

### Responses

**204** — Domain control was successful

**400** — Request was malformed

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**401** — Authentication info not sent or invalid

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**403** — Authenticated user is not allowed access

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**404** — Certificate id not found

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**409** — Domain control was not successful <br> Certificate state does not allow domain control

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`

**500** — Internal server error

Content-Type: `application/json`

Schema:

- schema reference: `#/components/schemas/Error`
