# Custom Csrs ## List Custom CSRs `client.customCsrs.list(CustomCsrListParamsparams?, RequestOptionsoptions?): V4PagePaginationArray` **get** `/{accounts_or_zones}/{account_or_zone_id}/custom_csrs` List all custom Certificate Signing Requests (CSRs) for an account or zone. ### Parameters - `params: CustomCsrListParams` - `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. - `page?: number` Query param: Page number of paginated results. - `per_page?: number` Query param: Number of custom CSRs per page. ### Returns - `CustomCsrListResponse` 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 }); // Automatically fetches more pages as needed. for await (const customCsrListResponse of client.customCsrs.list({ account_id: 'account_id' })) { console.log(customCsrListResponse.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" } ], "result_info": { "count": 1, "page": 1, "per_page": 20, "total_count": 2000, "total_pages": 100 } } ``` ## 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" } } ``` ## Custom CSR Details `client.customCsrs.get(stringcustomCsrId, CustomCsrGetParamsparams?, RequestOptionsoptions?): CustomCsrGetResponse` **get** `/{accounts_or_zones}/{account_or_zone_id}/custom_csrs/{custom_csr_id}` Retrieve details for a specific custom Certificate Signing Request (CSR). ### Parameters - `customCsrId: string` Custom CSR identifier tag. - `params: CustomCsrGetParams` - `account_id?: string` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id?: string` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. ### Returns - `CustomCsrGetResponse` 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.get('7b163417-1d2b-4c84-a38a-2fb7a0cd7752', { 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" } } ``` ## Delete Custom CSR `client.customCsrs.delete(stringcustomCsrId, CustomCsrDeleteParamsparams?, RequestOptionsoptions?): CustomCsrDeleteResponse` **delete** `/{accounts_or_zones}/{account_or_zone_id}/custom_csrs/{custom_csr_id}` Delete a custom Certificate Signing Request (CSR) and its associated private key. ### Parameters - `customCsrId: string` Custom CSR identifier tag. - `params: CustomCsrDeleteParams` - `account_id?: string` The Account ID to use for this endpoint. Mutually exclusive with the Zone ID. - `zone_id?: string` The Zone ID to use for this endpoint. Mutually exclusive with the Account ID. ### Returns - `CustomCsrDeleteResponse` - `id?: string` Custom CSR identifier tag. ### 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.delete('7b163417-1d2b-4c84-a38a-2fb7a0cd7752', { 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" } } ``` ## Domain Types ### Custom Csr - `CustomCsr` 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"` - `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. - `locality?: string` City or locality name. - `organization?: string` Organization name. - `organizational_unit?: string` Organizational unit for the CSR subject. - `sans?: Array` Subject Alternative Names included in the CSR. - `state?: string` State or province name. ### Custom Csr List Response - `CustomCsrListResponse` 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. ### Custom Csr Create Response - `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. ### Custom Csr Get Response - `CustomCsrGetResponse` 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. ### Custom Csr Delete Response - `CustomCsrDeleteResponse` - `id?: string` Custom CSR identifier tag.