## Create Custom CSR `client.customCsrs.create(CustomCsrCreateParamsparams, RequestOptionsoptions?): 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 - `params: CustomCsrCreateParams` - `common_name: string` Body param: The common name (domain) for the CSR. Must be at most 64 characters. - `country: string` Body param: Two-letter ISO 3166-1 alpha-2 country code. - `locality: string` Body param: City or locality name. - `organization: string` Body param: Organization name. - `sans: Array` Body param: Subject Alternative Names for the CSR. At least one SAN is required. - `state: string` Body param: State or province name. - `account_id?: string` Path param: The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id?: string` Path param: The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. - `description?: string` Body param: Optional description for the CSR. - `key_type?: "rsa2048" | "p256v1"` Body param: Key algorithm to use for the CSR. Defaults to rsa2048 if not specified. - `"rsa2048"` - `"p256v1"` - `name?: string` Body param: Human-readable name for the CSR. - `organizational_unit?: string` Body param: Organizational unit name. ### Returns - `CustomCsrCreateResponse` A custom Certificate Signing Request (CSR). - `id: string` Custom CSR identifier tag. - `created_at: string` When the CSR was created. - `key_type: "rsa2048" | "p256v1"` The key algorithm used to generate the CSR. - `"rsa2048"` - `"p256v1"` - `account_tag?: string` Account identifier associated with this CSR. - `common_name?: string` The common name (domain) for the CSR. - `country?: string` Two-letter ISO 3166-1 alpha-2 country code. - `csr?: string` The PEM-encoded Certificate Signing Request. - `description?: string` Optional description for the CSR. - `locality?: string` City or locality name. - `name?: string` Human-readable name for the CSR. - `organization?: string` Organization name. - `organizational_unit?: string` Organizational unit name. - `sans?: Array` Subject Alternative Names included in the CSR. - `state?: string` State or province name. ### Example ```node import Cloudflare from 'cloudflare'; const client = new Cloudflare({ apiToken: process.env['CLOUDFLARE_API_TOKEN'], // This is the default and can be omitted }); const customCsr = await client.customCsrs.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', }); console.log(customCsr.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" } } ```