> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobilerun.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a proxy

> Provisions a proxy of the requested type for the caller in the selected country.



## OpenAPI

````yaml /api-reference/mobilerun-proxy.yaml post /connect/proxies
openapi: 3.1.0
info:
  title: Mobilerun Proxy
  version: v1
servers:
  - url: https://api.mobilerun.ai
    description: Droidrun Cloud API
security:
  - bearerAuth: []
paths:
  /connect/proxies:
    post:
      tags:
        - Proxies
      summary: Create a proxy
      description: >-
        Provisions a proxy of the requested type for the caller in the selected
        country.
      operationId: CreateProxy
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProxyRequest'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProxyWithSecret'
          description: The created proxy, including its password.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '409':
          $ref: '#/components/responses/Conflict'
      security:
        - UserIDHeader: []
        - OwnerIDHeader: []
          UserIDHeader: []
      x-codeSamples:
        - lang: JavaScript
          source: |-
            import Mobilerun from '@mobilerun/sdk';

            const client = new Mobilerun();

            const response = await client.connect.proxies.buy({
              country: 'country',
              type: 'dedicated_residential',
            });

            console.log(response.id);
        - lang: Python
          source: |-
            from mobilerun_sdk import Mobilerun

            client = Mobilerun()
            response = client.connect.proxies.buy(
                country="country",
                type="dedicated_residential",
            )
            print(response.id)
        - lang: Go
          source: "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\n\t\"github.com/stainless-sdks/droidrun-cloud-go\"\n)\n\nfunc main() {\n\tclient := mobileruncloud.NewClient()\n\tresponse, err := client.Connect.Proxies.Buy(context.TODO(), mobileruncloud.ConnectProxyBuyParams{\n\t\tCountry: \"country\",\n\t\tType:    mobileruncloud.ConnectProxyBuyParamsTypeDedicatedResidential,\n\t})\n\tif err != nil {\n\t\tpanic(err.Error())\n\t}\n\tfmt.Printf(\"%+v\\n\", response.ID)\n}\n"
        - lang: CLI
          source: |-
            mobilerun-cloud connect:proxies buy \
              --country country \
              --type dedicated_residential
components:
  schemas:
    CreateProxyRequest:
      properties:
        country:
          description: ISO 3166-1 alpha-2 country code to provision the proxy in.
          format: country-code
          type: string
        type:
          $ref: '#/components/schemas/ProxyType'
      required:
        - country
        - type
      type: object
    ProxyWithSecret:
      allOf:
        - $ref: '#/components/schemas/Proxy'
        - properties:
            password:
              type: string
            paymentUrl:
              description: >-
                Checkout URL to complete payment while status is
                `pending_payment`. Null once paid or when no payment was
                required.
              nullable: true
              type: string
          required:
            - password
          type: object
      description: >-
        A proxy including its password. Returned only on create and single-proxy
        reads.
    ProxyType:
      enum:
        - dedicated_residential
        - residential
        - mobile
      type: string
    Proxy:
      description: A provisioned proxy without its credentials.
      properties:
        country:
          description: ISO 3166-1 alpha-2 country code (lowercase).
          type: string
        createdAt:
          format: date-time
          type: string
        host:
          type: string
        id:
          format: uuid
          type: string
        port:
          format: int32
          type: integer
        status:
          $ref: '#/components/schemas/ProxyStatus'
        type:
          $ref: '#/components/schemas/ProxyType'
        username:
          type: string
      required:
        - id
        - country
        - type
        - status
        - host
        - port
        - username
        - createdAt
      type: object
    ErrorResponse1:
      description: A Problem Details (RFC 7807-style) error response.
      properties:
        detail:
          description: Human-readable explanation of this occurrence.
          type: string
        errors:
          description: Per-input errors, when applicable.
          items:
            $ref: '#/components/schemas/ErrorDetail1'
          type: array
        status:
          description: HTTP status code.
          type: integer
        title:
          description: Short, human-readable summary of the error type.
          type: string
      required:
        - title
        - status
        - detail
        - errors
      type: object
    ProxyStatus:
      description: >-
        Lifecycle of a proxy. A freshly created proxy is `provisioning` — or
        `pending_payment` until the customer completes checkout — and becomes
        `active` once its upstream is assigned. `cancelling` retains full access
        through the paid period; when the subscription expires the proxy is
        `ended`. `error` marks a failed provisioning attempt.
      enum:
        - pending_payment
        - provisioning
        - active
        - cancelling
        - ended
        - error
      type: string
    ErrorDetail1:
      description: A single error, locating an offending input where applicable.
      properties:
        location:
          description: Path to the offending input, e.g. "body.proxyId".
          type: string
        message:
          description: Human-readable description of this error.
          type: string
        value:
          description: The offending value, when available.
      required:
        - location
        - message
      type: object
  responses:
    BadRequest:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse1'
      description: The request was invalid.
    Unauthorized:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse1'
      description: >-
        The X-User-ID header was missing or invalid, or a present X-Owner-Id
        header was not a uuid.
    Conflict:
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ErrorResponse1'
      description: >-
        The request cannot be fulfilled in the current state (e.g. the provider
        has no capacity for the requested country/type).
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: Opaque
      description: Bearer token via Authorization header

````