Skip to content
Coritan Docs

Client API: SSL

Certificate inventory and issuance, plus HTTP-01 / DNS challenge workflows for domain validation.

View as Markdown

Certificate inventory and issuance, plus HTTP-01 / DNS challenge workflows for domain validation.

Base URL: https://api.coritan.com/api/v1. Paths below are complete.

To try these requests in the browser, open the interactive Client API reference.

Method Path Summary
GET /api/v1/ssl/certificates List SSL certificates for the authenticated user
POST /api/v1/ssl/certificates Order a certificate for names this account holds
DELETE /api/v1/ssl/certificates/{domain} Revoke/deactivate an SSL certificate for a domain
POST /api/v1/ssl/certificates/{domain}/renew Request certificate renewal for a domain
GET /api/v1/ssl/certificates/{domain}/status Get SSL certificate status for a domain
POST /api/v1/ssl/challenges/start Start an SSL challenge for a domain
POST /api/v1/ssl/challenges/{domain}/complete Finalize verification and trigger certificate issuance
GET /api/v1/ssl/challenges/{domain}/status Check the current verification status for a domain

List SSL certificates for the authenticated user

Section titled List SSL certificates for the authenticated user

GET /api/v1/ssl/certificates

List SSL certificates for the authenticated user.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required Description
page query integer no Default: 1.
per_page query integer no Default: 25.
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
certificates array of SSLCertificateResponse
certificates[].id integer
certificates[].domain string
certificates[].route_id integer or null
certificates[].zone_id integer or null
certificates[].status string
certificates[].issuer string or null
certificates[].challenge_method string or null
certificates[].issued_at string (date-time) or null
certificates[].expires_at string (date-time) or null
certificates[].last_renewal_at string (date-time) or null
certificates[].renewal_attempts integer
certificates[].error_message string or null
certificates[].created_at string (date-time) or null
certificates[].san_domains array of string
certificates[].serial string or null
certificates[].fingerprint_sha256 string or null
certificates[].requested_provider string or null
certificates[].failover_from array of string
total integer

Order a certificate for names this account holds

Section titled Order a certificate for names this account holds

POST /api/v1/ssl/certificates

Order a certificate for names this account holds.

One name without a wildcard is checked the way challenge_method says, or the way the job picks. A wildcard (*.example.com) or any extra_domains is checked through Coritan DNS, so challenge_method may only be dns01 and every name must be in one active DNS zone of this account; 422 says which name is not. A wildcard needs a plan with wildcard certificates while plans apply to the account (402 otherwise).

route_id installs the certificate on that website: the account's own website, or one with no owner under the account's zone or domain (404 otherwise). On a certificate with more than one name, the website's own name must be one of them and becomes the first; a name that is another account's website is refused. 409 while an order for the same first name is queued, 429 when its registered domain has used its weekly issuance limit.

Authentication: an access token, sent as Authorization: Bearer <token>.

application/json (required)

Field Type Required
domain string yes
extra_domains array of string no
route_id integer or null no
challenge_method string or null no
Status Meaning
202 Success.
422 The request is not valid. detail lists each problem.

Revoke/deactivate an SSL certificate for a domain

Section titled Revoke/deactivate an SSL certificate for a domain

DELETE /api/v1/ssl/certificates/{domain}

Revoke/deactivate an SSL certificate for a domain.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
domain path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Request certificate renewal for a domain

Section titled Request certificate renewal for a domain

POST /api/v1/ssl/certificates/{domain}/renew

Request certificate renewal for a domain.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
domain path string yes
Status Meaning
202 Success.
422 The request is not valid. detail lists each problem.

Get SSL certificate status for a domain

Section titled Get SSL certificate status for a domain

GET /api/v1/ssl/certificates/{domain}/status

Get SSL certificate status for a domain.

The certificate is the newest for the name itself, else for the parent's wildcard (every claimed platform name carries one), else for the zone's own wildcard, which carries the apex as a SAN (certificate_lookup).

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
domain path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.

Fields of a 200 response:

Field Type
domain string
has_certificate boolean
certificate SSLCertificateResponse or null
certificate.id integer
certificate.domain string
certificate.route_id integer or null
certificate.zone_id integer or null
certificate.status string
certificate.issuer string or null
certificate.challenge_method string or null
certificate.issued_at string (date-time) or null
certificate.expires_at string (date-time) or null
certificate.last_renewal_at string (date-time) or null
certificate.renewal_attempts integer
certificate.error_message string or null
certificate.created_at string (date-time) or null
certificate.san_domains array of string
certificate.serial string or null
certificate.fingerprint_sha256 string or null
certificate.requested_provider string or null
certificate.failover_from array of string
rate_limit SSLRateLimitResponse or null
rate_limit.registered_domain string
rate_limit.issued_last_7_days integer
rate_limit.limit integer
rate_limit.remaining integer
rate_limit.allowed boolean
wildcard boolean

Start an SSL challenge for a domain

Section titled Start an SSL challenge for a domain

POST /api/v1/ssl/challenges/start

Start an SSL challenge for a domain. Returns method-specific instructions.

Methods:

  • auto: automatically selects the best method
  • dns_automatic: uses platform-managed DNS (requires DNS zone)
  • dns_manual: returns TXT record for user to add to their external DNS
  • http: verifies domain is pointed to this server, issues via HTTP-01

Authentication: an access token, sent as Authorization: Bearer <token>.

application/json (required)

Field Type Required
domain string yes
method string no
Status Meaning
201 Success.
422 The request is not valid. detail lists each problem.

Finalize verification and trigger certificate issuance

Section titled Finalize verification and trigger certificate issuance

POST /api/v1/ssl/challenges/{domain}/complete

Finalize verification and trigger certificate issuance. For HTTP method: verifies domain points to server, then issues via HTTP-01. For dns_manual: verifies TXT record exists, then issues via DNS-01.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
domain path string yes
Status Meaning
202 Success.
422 The request is not valid. detail lists each problem.

Check the current verification status for a domain

Section titled Check the current verification status for a domain

GET /api/v1/ssl/challenges/{domain}/status

Check the current verification status for a domain. Performs real-time DNS/IP resolution checks.

Authentication: an access token, sent as Authorization: Bearer <token>.

Name In Type Required
domain path string yes
Status Meaning
200 Success.
422 The request is not valid. detail lists each problem.