# Upload custom certificate (/tls-certificates/App_Certificates_custom_create)

`POST /apps/{app_name}/certificates/custom`

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `app_name` | path | `string` | Yes | Fly App Name |

## Request Body

Type: `createCustomCertificateRequest`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `fullchain` | `string` | No |  |
| `hostname` | `string` | No |  |
| `private_key` | `string` | No |  |

## Responses

| Status | Description | Schema |
| --- | --- | --- |
| `201` | Created | `CertificateDetail` |
| `422` | Unprocessable Entity | `ErrorResponse` |

The full machine-readable OpenAPI spec is available at /openapi.json.