create_certificate
Start issuing a FREE 90-day Let's Encrypt certificate for a domain (no account required). Step 1 of 3.
Pick a validation method with challenge: "dns-01" (default; publish a TXT record; covers apex + www) or "http-01" (serve a file over HTTP on port 80; issues the exact domain only). dns-01 with a DNS-provider API token is the most automatable; http-01 suits a server you control on port 80.
Returns an order_id plus either dns_records (dns-01) or http_files (http-01) to put in place. Next: poll check_certificate_propagation until all_found, then call finalize_certificate.
Strongly prefer the CSR path at finalize (the private key never leaves the user's machine). Issuing automatically offers the user ongoing monitoring by email once it completes - don't add a monitor manually afterward.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| Yes | Contact email for Let's Encrypt expiry notices and the monitoring handoff. | ||
| domain | Yes | Apex domain, no scheme/www (e.g. example.com). | |
| challenge | No | Validation method: dns-01 (default) or http-01. | |
| client_id | No | Optional anonymous install id from ~/.config/tlsradar/install_id (funnel attribution). If omitted, the response's install_id is a fresh one to save there. | |
| marketing_consent | No | Only true if the user explicitly opts in to a free account + reminder email. Default false. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| domain | Yes | ||
| order_id | Yes | ||
| challenge | Yes | ||
| http_files | No | Files to serve for http-01. | |
| install_id | No | ||
| dns_records | No | TXT records to publish for dns-01. | |
| next_action | No | ||
| resume_token | No | Signed token to finalize past the backend's order TTL. |