# Create Machine (/machines/Machines_create)

Create a Machine within a specific app using the details provided in the request body.

**Important**: This request can fail, and you’re responsible for handling that failure. If you ask for a large Machine, or a Machine in a region we happen to be at capacity for, you might need to retry the request, or to fall back to another region. If you’re working directly with the Machines API, you’re taking some responsibility for your own orchestration!


`POST /apps/{app_name}/machines`

## Parameters

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

## Request Body

Type: `CreateMachineRequest`

| Property | Type | Required | Description |
| --- | --- | --- | --- |
| `config` | `fly.MachineConfig` | No | An object defining the Machine configuration |
| `lease_ttl` | `integer` | No |  |
| `min_secrets_version` | `integer` | No |  |
| `name` | `string` | No | Unique name for this Machine. If omitted, one is generated for you |
| `region` | `string` | No | The target region. Omitting this param launches in the same region as your WireGuard peer connection (somewhere near you). |
| `skip_launch` | `boolean` | No |  |
| `skip_secrets` | `boolean` | No |  |
| `skip_service_registration` | `boolean` | No |  |

## Responses

| Status | Description | Schema |
| --- | --- | --- |
| `200` | OK | `Machine` |

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