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

# List IPs

> List all Management and Additional IP Addresses.
 • Management IPs are IPs that are used for the management IP of a device.
   This is a public IP address that a device is born and dies with. It never changes during the lifecycle of the device.
 • Additional IPs are individual IPs that can be added to a device as an additional IP that can be used.




## OpenAPI

````yaml https://spec.speakeasy.com/latitude/latitude/latitude-sh-api-with-code-samples get /ips
openapi: 3.0.1
info:
  title: Latitude.sh API
  version: '2023-06-01'
  description: >-
    The Latitude.sh API is a RESTful API to manage your Latitude.sh account. It
    allows you to perform the same actions as the Latitude.sh dashboard.
servers:
  - url: https://api.latitude.sh
    variables:
      latitude_api_key:
        default: <insert your api key here>
  - url: http://api.latitude.sh
    variables:
      latitude_api_key:
        default: <insert your api key here>
security: []
tags:
  - name: API keys
  - name: Baselines (Preview)
    description: >-
      Preview. Available to teams with the `baselines_api` feature flag. The
      shape of these endpoints may change before general availability.
  - name: Billing
  - name: Elastic Ips
  - name: Events
  - name: Firewalls
  - name: IP Addresses
  - name: Kubernetes Clusters
  - name: Marketplace apps
  - name: Operating Systems
  - name: Plans
  - name: Public Networks
  - name: Private Networks
  - name: Projects
  - name: Regions
  - name: Roles
  - name: SSH Keys
  - name: Servers
  - name: Block Storage
  - name: Filesystem Storage
  - name: Object Storage
  - name: Tags
  - name: Teams
  - name: Team members
  - name: Traffic
  - name: User data
  - name: User profile
  - name: VPN Sessions
  - name: Virtual machines
  - name: Virtual machine backups
  - name: Virtual machine restores
paths:
  /ips:
    get:
      tags:
        - IP Addresses
      summary: List IPs
      description: |
        List all Management and Additional IP Addresses.
         • Management IPs are IPs that are used for the management IP of a device.
           This is a public IP address that a device is born and dies with. It never changes during the lifecycle of the device.
         • Additional IPs are individual IPs that can be added to a device as an additional IP that can be used.
      operationId: get-ips
      parameters:
        - name: filter[server]
          in: query
          required: false
          description: The server ID to filter by
          schema:
            type: string
        - name: filter[project]
          in: query
          required: false
          description: The project ID or Slug to filter by
          schema:
            type: string
        - name: filter[family]
          in: query
          schema:
            type: string
            enum:
              - IPv4
              - IPv6
          required: false
          description: The protocol family to filter by
        - name: filter[type]
          in: query
          schema:
            type: string
            enum:
              - private
              - public
              - elastic
          required: false
          description: The protocol type to filter by
        - name: filter[location]
          in: query
          required: false
          description: The site slug to filter by
          schema:
            type: string
        - name: filter[address]
          in: query
          required: false
          description: The address of IP to filter by starts_with
          schema:
            type: string
        - name: filter[additional]
          in: query
          schema:
            type: boolean
          required: false
          description: Filter by additional IPs (true) or management IPs (false)
        - name: filter[available]
          in: query
          schema:
            type: boolean
          required: false
          description: Filter by unassigned IPs (true) or assigned IPs (false)
        - name: filter[management]
          in: query
          schema:
            type: boolean
          required: false
          description: Filter by management IPs (true) or additional/elastic IPs (false)
        - name: extra_fields[ip_addresses]
          in: query
          required: false
          description: >-
            The `region` and `server` are provided as extra attributes that are
            lazy loaded. To request it, just set
            `extra_fields[ip_addresses]=region,server` in the query string.
          schema:
            type: string
        - name: page[size]
          in: query
          schema:
            type: integer
            minimum: 1
            default: 20
          required: false
          description: Number of items to return per page
        - name: page[number]
          in: query
          schema:
            type: integer
            minimum: 1
            default: 1
          required: false
          description: Page number to return (starts at 1)
        - name: stats[total]
          in: query
          schema:
            type: string
          required: false
          description: >-
            Request aggregate stats in the response `meta`. Use `count` to get
            the total number of records, returned as `meta.stats.total.count`.
        - name: sort
          in: query
          required: false
          description: >-
            Comma-separated sort fields. Prefix a field with `-` for descending
            order. Supported fields: address, family, type, created_at. Example:
            `sort=type,-created_at` sorts by type ascending, then by creation
            date descending.
          schema:
            type: string
      responses:
        '200':
          description: Success
          content:
            application/vnd.api+json:
              examples:
                Success:
                  value:
                    data:
                      - id: ip_5AEmq7wXqBkWX
                        type: ip_addresses
                        attributes:
                          address: 110.190.5.254
                          cidr: null
                          family: IPv4
                          gateway: null
                          netmask: 255.255.255.255
                          type: Public
                          public: true
                          management: true
                          additional: false
                          project:
                            id: proj_lkg1DeVgOvZE5
                            name: Incredible Silk Keyboard
                          region: {}
                          available: true
                          assignment: {}
                      - id: ip_Gr47qleMDAg0m
                        type: ip_addresses
                        attributes:
                          address: 180.228.210.136
                          cidr: null
                          family: IPv4
                          gateway: null
                          netmask: 255.255.255.255
                          type: Public
                          public: true
                          management: true
                          additional: false
                          project:
                            id: proj_lkg1DeVgOvZE5
                            name: Incredible Silk Keyboard
                          region: {}
                          available: true
                          assignment: {}
                    meta: {}
              schema:
                $ref: '#/components/schemas/ip_addresses'
      security:
        - Bearer: []
      x-codeSamples:
        - lang: python
          label: Python (SDK)
          source: |-
            from latitudesh_python_sdk import Latitudesh
            import os


            with Latitudesh(
                bearer=os.getenv("LATITUDESH_BEARER", ""),
            ) as latitudesh:

                res = latitudesh.ip_addresses.list(filter_server="46", filter_project="64", page_size=20, page_number=1)

                while res is not None:
                    # Handle items

                    res = res.next()
        - lang: go
          label: Go (SDK)
          source: "package main\n\nimport(\n\t\"context\"\n\t\"os\"\n\tlatitudeshgosdk \"github.com/latitudesh/latitudesh-go-sdk\"\n\t\"github.com/latitudesh/latitudesh-go-sdk/models/operations\"\n\t\"log\"\n)\n\nfunc main() {\n    ctx := context.Background()\n\n    s := latitudeshgosdk.New(\n        latitudeshgosdk.WithSecurity(os.Getenv(\"LATITUDESH_BEARER\")),\n    )\n\n    res, err := s.IPAddresses.List(ctx, operations.GetIpsRequest{\n        FilterServer: latitudeshgosdk.Pointer(\"46\"),\n        FilterProject: latitudeshgosdk.Pointer(\"64\"),\n    })\n    if err != nil {\n        log.Fatal(err)\n    }\n    if res.IPAddresses != nil {\n        for {\n            // handle items\n\n            res, err = res.Next()\n\n            if err != nil {\n                // handle error\n            }\n\n            if res == nil {\n                break\n            }\n        }\n    }\n}"
        - lang: typescript
          label: Typescript (SDK)
          source: |-
            import { Latitudesh } from "latitudesh-typescript-sdk";

            const latitudesh = new Latitudesh({
              bearer: process.env["LATITUDESH_BEARER"] ?? "",
            });

            async function run() {
              const result = await latitudesh.ipAddresses.list({});

              for await (const page of result) {
                console.log(page);
              }
            }

            run();
components:
  schemas:
    ip_addresses:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ip_address_data'
        meta:
          $ref: '#/components/schemas/pagination_meta'
    ip_address_data:
      type: object
      properties:
        id:
          type: string
        type:
          type: string
          enum:
            - ip_addresses
        attributes:
          type: object
          properties:
            address:
              type: string
            cidr:
              type: string
              nullable: true
            family:
              type: string
              enum:
                - IPv4
                - IPv6
            gateway:
              type: string
              nullable: true
            netmask:
              type: string
            type:
              type: string
              enum:
                - Public
                - Private
                - Elastic
            public:
              type: boolean
            management:
              type: boolean
            additional:
              type: boolean
            project:
              type: object
              properties:
                id:
                  type: string
                name:
                  type: string
            region:
              type: object
              properties:
                id:
                  type: string
                name:
                  type: string
                location:
                  type: object
                  properties:
                    id:
                      type: string
                    name:
                      type: string
                    slug:
                      type: string
            available:
              type: boolean
            assignment:
              type: object
              description: >-
                Server assignment information. Returns an empty object when the
                IP is not assigned to an active server (e.g., when the server is
                decommissioning or deleted). The hostname is null when the
                assigned server has no hostname set.
              properties:
                server_id:
                  type: string
                hostname:
                  type: string
                  nullable: true
                assigned_at:
                  type: string
                  nullable: true
            elastic:
              type: object
              description: >-
                Elastic IP details. Returns an empty object when the IP is not
                an Elastic IP.
              properties:
                id:
                  type: string
                mode:
                  type: string
                status:
                  type: string
            created_at:
              type: string
              format: date-time
              nullable: true
    pagination_meta:
      type: object
      properties:
        stats:
          type: object
          properties:
            total:
              type: object
              properties:
                count:
                  type: integer
                  description: >-
                    Total number of records, returned when `stats[total]=count`
                    is requested
  securitySchemes:
    Bearer:
      type: apiKey
      name: Authorization
      in: header

````