# Custom Csrs ## List Custom CSRs `custom_csrs.list(CustomCsrListParams**kwargs) -> SyncV4PagePaginationArray[CustomCsrListResponse]` **get** `/{accounts_or_zones}/{account_or_zone_id}/custom_csrs` List all custom Certificate Signing Requests (CSRs) for an account or zone. ### Parameters - `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. - `page: Optional[float]` Page number of paginated results. - `per_page: Optional[float]` Number of custom CSRs per page. ### Returns - `class CustomCsrListResponse: …` 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 ) page = client.custom_csrs.list( account_id="account_id", ) page = page.result[0] print(page.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 `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" } } ``` ## Custom CSR Details `custom_csrs.get(strcustom_csr_id, CustomCsrGetParams**kwargs) -> 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 - `custom_csr_id: str` Custom CSR identifier tag. - `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. ### Returns - `class CustomCsrGetResponse: …` 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.get( custom_csr_id="7b163417-1d2b-4c84-a38a-2fb7a0cd7752", 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" } } ``` ## Delete Custom CSR `custom_csrs.delete(strcustom_csr_id, CustomCsrDeleteParams**kwargs) -> 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 - `custom_csr_id: str` Custom CSR identifier tag. - `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. ### Returns - `class CustomCsrDeleteResponse: …` - `id: Optional[str]` Custom CSR identifier tag. ### 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.delete( custom_csr_id="7b163417-1d2b-4c84-a38a-2fb7a0cd7752", 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" } } ``` ## Domain Types ### Custom Csr - `class CustomCsr: …` 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"` - `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. - `locality: Optional[str]` City or locality name. - `organization: Optional[str]` Organization name. - `organizational_unit: Optional[str]` Organizational unit for the CSR subject. - `sans: Optional[List[str]]` Subject Alternative Names included in the CSR. - `state: Optional[str]` State or province name. ### Custom Csr List Response - `class CustomCsrListResponse: …` 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. ### Custom Csr Create Response - `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. ### Custom Csr Get Response - `class CustomCsrGetResponse: …` 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. ### Custom Csr Delete Response - `class CustomCsrDeleteResponse: …` - `id: Optional[str]` Custom CSR identifier tag.