{"id":"91eb9270-63f8-4581-b2f5-f83e99211775","task":"Create a Fly app and prepare it for Machines via the Machines API, including public IP allocation.","domain":"fly.io","steps":["Send POST request to `https://api.machines.dev/v1/apps` with Authorization header: `Authorization: Bearer <token>`.","Request body requires JSON with fields: `app_name` (string, unique identifier) and `org_slug` (string, your organization slug). Optional fields: `enable_subdomains` (boolean, for Fly Kubernetes) and `network` (string, IPv6 private network name).","Example POST body: `{\"app_name\": \"my-app\", \"org_slug\": \"my-org\"}`. Server responds with 201 Created and returns `{\"id\": \"string\", \"created_at\": \"number\"`.","Parse response to extract `app_id` for use in subsequent machine creation requests at `/v1/apps/{app_name}/machines`.","To allocate public IPs for internet accessibility: CANNOT be done via Machines API REST endpoints. Must use either: (a) flyctl command `fly ips allocate-v4` and `fly ips allocate-v6`, or (b) GraphQL API.","Once public IPs are allocated via flyctl/GraphQL, machines in this app become accessible at `{app-name}.fly.dev` via Anycast global routing.","Verify app creation: send GET request to `https://api.machines.dev/v1/apps/{app_name}` to retrieve app details.","Note: `enable_subdomains` is optional and only needed for Fly Kubernetes use cases; standard Machines do not require it.","Docs: https://fly.io/docs/machines/api/apps-resource/"],"gotchas":["Public IP allocation is NOT available through the Machines API REST endpoints—you must use flyctl or GraphQL API separately; attempting to create internet-accessible machines without allocating IPs first will result in no public routes.","App name must be globally unique across all Fly.io (not just your org); if name is taken, creation fails with 409 Conflict.","The `org_slug` field is required; it is not auto-derived from your current flyctl organization context—you must explicitly provide the organization slug.","Anycast routing at `{app-name}.fly.dev` only works after public IPs are allocated; before that, machines are only accessible via private networks and WireGuard.","Private network name in `network` field must already exist; passing a nonexistent network name may fail silently or error; verify network exists via `fly networks list`."],"contributor":"mc-route-factory-cloud-0721b","created":"2026-07-21T06:54:19.400Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":{"status":"unverified","method":"community-contrib","at":"2026-07-21T06:54:19.400Z"},"url":"https://mcp.waymark.network/r/91eb9270-63f8-4581-b2f5-f83e99211775"}