## Create Custom CSR `custom_csrs.create(CustomCsrCreateParams**kwargs) -> CustomCsrCreateResponse` **post** `/{accounts_or_zones}/{account_or_zone_id}/custom_csrs` Generate a new custom Certificate Signing Request (CSR) for an account or zone. Cloudflare generates and securely stores the private key associated with the CSR. ### Parameters - `common_name: str` The common name (domain) for the CSR. Must be at most 64 characters. - `country: str` Two-letter ISO 3166-1 alpha-2 country code. - `locality: str` City or locality name. - `organization: str` Organization name. - `sans: Sequence[str]` Subject Alternative Names for the CSR. At least one SAN is required. - `state: str` State or province name. - `account_id: Optional[str]` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id: Optional[str]` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `description: Optional[str]` Optional description for the CSR. - `key_type: Optional[Literal["rsa2048", "p256v1"]]` Key algorithm to use for the CSR. Defaults to rsa2048 if not specified. - `"rsa2048"` - `"p256v1"` - `name: Optional[str]` Human-readable name for the CSR. - `organizational_unit: Optional[str]` Organizational unit name. ### Returns - `class CustomCsrCreateResponse: …` A custom Certificate Signing Request (CSR). - `id: str` Custom CSR identifier tag. - `created_at: datetime` When the CSR was created. - `key_type: Literal["rsa2048", "p256v1"]` The key algorithm used to generate the CSR. - `"rsa2048"` - `"p256v1"` - `account_tag: Optional[str]` Account identifier associated with this CSR. - `common_name: Optional[str]` The common name (domain) for the CSR. - `country: Optional[str]` Two-letter ISO 3166-1 alpha-2 country code. - `csr: Optional[str]` The PEM-encoded Certificate Signing Request. - `description: Optional[str]` Optional description for the CSR. - `locality: Optional[str]` City or locality name. - `name: Optional[str]` Human-readable name for the CSR. - `organization: Optional[str]` Organization name. - `organizational_unit: Optional[str]` Organizational unit name. - `sans: Optional[List[str]]` Subject Alternative Names included in the CSR. - `state: Optional[str]` State or province name. ### Example ```python import os from cloudflare import Cloudflare client = Cloudflare( api_token=os.environ.get("CLOUDFLARE_API_TOKEN"), # This is the default and can be omitted ) custom_csr = client.custom_csrs.create( common_name="example.com", country="US", locality="San Francisco", organization="Cloudflare, Inc.", sans=["example.com", "www.example.com"], state="California", account_id="account_id", ) print(custom_csr.id) ``` #### Response ```json { "errors": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "messages": [ { "code": 1000, "message": "message", "documentation_url": "documentation_url", "source": { "pointer": "pointer" } } ], "success": true, "result": { "id": "7b163417-1d2b-4c84-a38a-2fb7a0cd7752", "created_at": "2024-01-15T10:30:00Z", "key_type": "rsa2048", "account_tag": "23e087bd19bc1d40ae95b6f297263ceb", "common_name": "example.com", "country": "US", "csr": "-----BEGIN CERTIFICATE REQUEST-----\nMIICYzCCAUsCAQAwHj...", "description": "CSR for example.com wildcard", "locality": "San Francisco", "name": "My Custom CSR", "organization": "Cloudflare, Inc.", "organizational_unit": "Engineering", "sans": [ "example.com", "www.example.com" ], "state": "California" } } ```