# Generate dynamic connections Choose where requests exit and how long an IP is kept. ## Check available options Read `GET /dynamic/config` with `dynamic:read`. It returns the countries, protocols, session options and traffic packs available to your workspace. Use a country value from this response. Select `"*"` for all available countries only when the configuration supports it. ## Choose a session - **Rotating:** use rotating IP selection for requests. - **Sticky:** keep a session for a supported duration. Set `duration_minutes` to one of the available values. Standard connections use standard traffic. Optimized connections use both standard and optimization traffic. Buy a traffic pack before using the connection. ## Generate a connection Call `POST /dynamic/profiles` with `COUNTRY` set to a supported value and save one request key. This example creates a direct, rotating HTTP connection: ```sh CONNECTION_REQUEST_KEY=$(uuidgen) curl --fail-with-body "$MIGO_API_BASE/dynamic/profiles" \ -H "Authorization: Bearer $MIGO_API_KEY" \ -H 'Content-Type: application/json' \ -H "Idempotency-Key: $CONNECTION_REQUEST_KEY" \ -d "{\"country\":\"$COUNTRY\",\"protocol\":\"http\",\"mode\":\"rotating\",\"access_optimized\":false}" ``` Use the API base and key from [getting started](/docs/guides/getting-started). This action needs write access, `dynamic:write` and `credentials:read`. Matching configurations reuse a saved connection. For sticky sessions, set `mode` to `"sticky"` and include `duration_minutes`. Set `access_optimized` to `true` to request optimized access when it is available. ## Read and manage connections `GET /dynamic/profiles` lists saved connection summaries. Read `GET /dynamic/profiles/{id}` for a ready connection's details, then follow the [connection guide](/docs/guides/connections). Use `DELETE /dynamic/profiles/{id}` to remove a saved connection. To check balances or buy more traffic, see [traffic and billing](/docs/guides/traffic-and-billing).