Upload Client CA
Add a trusted root CA used to validate incoming client certificates on mTLS-enabled endpoints. Once uploaded, attach the CA to one or more endpoints via PUT /v1/endpoints/{uuid}/mtls.
The platform parses the PEM, verifies it's actually a CA cert (basicConstraints CA:TRUE), extracts subject/issuer/fingerprint metadata, and stores the original PEM bytes for chain validation at TLS-handshake time. Exactly one certificate per upload — bundles (more than one CERTIFICATE block) are rejected; split them and upload each CA separately.
An account holds each CA once (one per fingerprint), whichever member uploaded it. Uploading a CA the account already has creates nothing and uses none of your plan's client CA limit: it answers 200 OK with that CA and "existing": true, so the call is safe to repeat. Plan-gated: requires the mtls_attachment entitlement on your plan.
Request body
-----BEGIN CERTIFICATE----- headers and parse as a valid X.509 cert with basicConstraints: CA:TRUE.Response (201 Created; 200 OK when the account already has the CA)
ca_uuids.false with 201: the CA was added. true with 200: the account already had this CA (same fingerprint); nothing was added, and name is the existing CA's.Deprecated: until the sunset this response also carries the legacy integer id. Don't use it; read uuid.
Errors
name, name > 128 chars, description > 512 chars, malformed PEM, more than one certificate in the PEM (bundles rejected), cert isn't a CA, the CA has expired or isn't valid yet, or it isn't allowed to sign certificates. The message says what is wrong; upload a current CA certificate.cert:write permission, or the plan doesn't include the mtls_attachment entitlement.