Does GraphQL `allocateIpAddress` create a shared or dedicated IPv4 address?

I am creating Fly apps via the REST API and then allocating an IP address to them using them.

	// Allocate an new IP address via the Fly.io GraphQL API
	// This is not possible through the REST API see
	// https://fly.io/docs/machines/api/apps-resource/#allocate-an-ip-address-for-global-request-routing
	const allocateIpResponse = await ky
		.post('https://api.fly.io/graphql', {
			headers,
			json: {
				query: `
				mutation($appId: ID!) {
					allocateIpAddress(input: { appId: $appId, type: v4 }) {
						ipAddress {
							address
							type
							region
						}
					}
				}`,
				variables: { appId: appName },
			},
		})
		.json<any>();

My question is whether this creates a shared or dedicated IPv4 address? I do not need a dedicated address and do not want to pay for that. The allocateIpAddress does not seem to have an argument for setting whether the IP is shared or dedicated.

you can specify shared_v4 in type: flyctl/internal/command/ips/allocate.go at master · superfly/flyctl · GitHub

1 Like