MobileAPI

REST API providing device specifications, base64-encoded product images, and pricing metadata for 31,500+ smartphones, tablets, smartwatches, and laptops across 200+ manufacturers. Endpoints support paginated device listing, fuzzy search by name or model number, autocomplete, browsing by manufacturer/year/type, per-category specification retrieval (battery, display, platform, memory, cameras, network, sound, comms, features, body, misc), high-resolution images, manufacturer directory, account introspection (/me/), and an AI natural-language query endpoint that translates plain-English questions into structured device results.

Documentation

Specifications

Code Examples

Examples

Schemas & Data

📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-battery-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-body-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-comms-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-device-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-devicelist-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-display-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-features-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-image-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-maincamera-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-manufacturer-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-memory-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-misc-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-network-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-platform-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-selfiecamera-schema.json
📊
JSONSchema
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-schema/mobileapi-sound-schema.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-battery-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-body-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-comms-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-device-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-devicelist-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-display-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-features-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-image-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-maincamera-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-manufacturer-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-memory-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-misc-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-network-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-platform-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-selfiecamera-structure.json
📊
JSONStructure
https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/json-structure/mobileapi-sound-structure.json

Other Resources

OpenAPI Specification

mobileapi-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: MobileAPI
  description: >-
    REST API providing structured device specifications, base64-encoded product
    images, and pricing metadata for 31,500+ smartphones, tablets, smartwatches,
    and laptops across 200+ manufacturers. Endpoints support paginated listing,
    fuzzy search by name or model number, autocomplete, browsing by
    manufacturer/year/type, per-category specifications (battery, display,
    platform, memory, cameras, network, sound, comms, features, body, misc),
    high-resolution images, manufacturer directory, account introspection
    (/me/), and an AI natural-language query endpoint.
  termsOfService: https://app.getterms.io/view/AG2Np/terms-of-service/en-us
  contact:
    name: MobileAPI.dev Support
    email: [email protected]
    url: https://mobileapi.dev/
  version: v1
servers:
  - url: https://api.mobileapi.dev
    description: MobileAPI.dev production server
security:
  - ApiKeyHeader: []
  - ApiKeyQuery: []
paths:
  /api-token-auth/:
    post:
      operationId: api-token-auth_create
      description: ""
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/AuthToken"
        required: true
      responses:
        "201":
          description: ""
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/AuthToken"
      tags:
        - api-token-auth
    parameters: []
  /api/firewall/:
    get:
      operationId: api_firewall_list
      summary: A Viewset for Viewing Firewall Log Entries.
      description: |-
        This is a read-only viewset that allows authenticated admin users
        to view the firewall logs via REST API.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/FirewallAPILog"
      tags:
        - api
    parameters: []
  "/api/firewall/{id}/":
    get:
      operationId: api_firewall_read
      summary: A Viewset for Viewing Firewall Log Entries.
      description: |-
        This is a read-only viewset that allows authenticated admin users
        to view the firewall logs via REST API.
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/FirewallAPILog"
      tags:
        - api
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this Firewall API Log.
        required: true
        schema:
          type: integer
  /demo-x7k9m2p4/devices/:
    get:
      operationId: demo-x7k9m2p4_devices_list
      summary: List All Devices
      description: "Retrieve a list of all devices. Results are paginated. **Note**:
        `image_b64` returns a 100x100 thumbnail. For full-resolution images, use
        the `/devices/{id}/images` endpoint."
      parameters:
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (optional for demo)"
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: "Page number (default: 1). Each page contains 50 devices."
          required: false
          schema:
            type: integer
      responses:
        "200":
          description: Paginated list of devices with metadata
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DeviceList"
        "400":
          description: Bad request, invalid page parameter
        "401":
          description: Unauthorized - Authentication required
      tags:
        - demo-x7k9m2p4
    parameters: []
  /demo-x7k9m2p4/devices/ai-query/:
    get:
      operationId: demo-x7k9m2p4_devices_ai_query
      summary: Natural Language Device Query (AI-Powered) - Paid Users Only
      description: "Query devices using natural language. Examples: 'Get top 5 devices
        with the most RAM', 'Show me phones with best camera', 'Find cheapest 5G
        phones'. Powered by AI to understand and execute your query. **Note:
        This endpoint requires a paid subscription plan (Pro or Enterprise).**"
      parameters:
        - name: query
          in: query
          description: Natural language query (e.g., 'top 5 devices with most RAM',
            'phones with best battery')
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'
            (requires paid plan)"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (requires paid plan)"
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Query results with explanation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DeviceList"
        "400":
          description: Bad request - missing query parameter or invalid query
        "401":
          description: Unauthorized - invalid API key
        "403":
          description: Forbidden - paid plan required
        "429":
          description: Rate limit exceeded
        "503":
          description: LLM service unavailable (OpenAI API key not configured)
      tags:
        - demo-x7k9m2p4
    parameters: []
  /demo-x7k9m2p4/devices/autocomplete/:
    get:
      operationId: demo-x7k9m2p4_devices_autocomplete
      summary: Autocomplete Device Names
      description: Get autocomplete suggestions for device names. Returns simplified
        device data for typeahead/autocomplete features. Requires
        authentication.
      parameters:
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (optional for demo)"
          required: false
          schema:
            type: string
        - name: q
          in: query
          description: Query string (minimum 5 characters)
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: "Maximum number of suggestions to return (default: 10, max: 30)."
          required: false
          schema:
            type: integer
      responses:
        "200":
          description: Array of autocomplete suggestions
        "400":
          description: Bad request, invalid limit parameter
        "401":
          description: Unauthorized - Invalid API key
      tags:
        - demo-x7k9m2p4
    parameters: []
  /demo-x7k9m2p4/devices/by-brand/:
    get:
      operationId: demo-x7k9m2p4_devices_by_brand
      summary: "[Deprecated] List Devices by Brand - Use /by-Manufacturer/ Instead"
      description: "DEPRECATED: This endpoint is deprecated. Please use
        /devices/by-manufacturer/ instead. Retrieve all devices from a specific
        brand/manufacturer. Requires authentication."
      parameters:
        - name: brand
          in: query
          description: "Brand/Manufacturer name to filter devices (e.g., 'Apple',
            'Samsung'). DEPRECATED: Use 'manufacturer' parameter with
            /by-manufacturer/ endpoint instead."
          required: true
          schema:
            type: string
        - name: limit
          in: query
          description: "Maximum number of results to return (default: 10, max: 30)."
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (less secure)"
          required: false
          schema:
            type: string
      responses:
        "200":
          description: List of devices
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Device"
        "400":
          description: Bad request, missing parameter 'brand' or invalid limit
        "401":
          description: Unauthorized - Invalid API key
        "404":
          description: Brand not found
      tags:
        - demo-x7k9m2p4
      deprecated: true
    parameters: []
  /demo-x7k9m2p4/devices/by-manufacturer/:
    get:
      operationId: demo-x7k9m2p4_devices_by_manufacturer
      summary: List Devices by Manufacturer
      description: "Retrieve all devices from a specific manufacturer. Results are
        paginated with 50 devices per page. **Note**: `image_b64` returns a
        100x100 thumbnail."
      parameters:
        - name: manufacturer
          in: query
          description: Manufacturer name to filter devices (e.g., 'Apple', 'Samsung').
          required: true
          schema:
            type: string
        - name: page
          in: query
          description: "Page number (default: 1). Each page contains 50 devices."
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (less secure)"
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Paginated list of devices with metadata
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Device"
        "400":
          description: Bad request, missing parameter 'manufacturer' or invalid page
        "401":
          description: Unauthorized - Invalid API key
        "404":
          description: Manufacturer not found
      tags:
        - demo-x7k9m2p4
    parameters: []
  /demo-x7k9m2p4/devices/by-type/:
    get:
      operationId: demo-x7k9m2p4_devices_by_type
      summary: List Devices by Type
      description: "Get all devices of a specific type (phone, tablet, laptop,
        wearable, or other). Results are paginated with 50 devices per page.
        **Note**: `image_b64` returns a 100x100 thumbnail."
      parameters:
        - name: type
          in: query
          description: "Device type: phone, tablet, laptop, wearable, or other"
          required: true
          schema:
            type: string
            enum:
              - phone
              - tablet
              - laptop
              - wearable
              - other
        - name: page
          in: query
          description: "Page number (default: 1). Each page contains 50 devices."
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (less secure)"
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Paginated list of devices for the specified type with metadata
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DeviceList"
        "204":
          description: No devices found for the specified type
        "400":
          description: Bad request, missing or invalid type/page parameter
        "401":
          description: Unauthorized - Invalid API key
      tags:
        - demo-x7k9m2p4
    parameters: []
  /demo-x7k9m2p4/devices/by-year/:
    get:
      operationId: demo-x7k9m2p4_devices_by_year
      summary: List Devices by Launch Year
      description: "Get all devices released in a specific year. The year parameter
        should be a 4-digit year (e.g., 2023). Results are paginated with 50
        items per page. **Note**: `image_b64` returns a 100x100 thumbnail."
      parameters:
        - name: year
          in: query
          description: Launch year (4-digit format, e.g., 2023)
          required: true
          schema:
            type: integer
        - name: page
          in: query
          description: "Page number (default: 1). Each page contains 50 items."
          required: false
          schema:
            type: integer
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (less secure)"
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Paginated list of devices for the specified year with metadata
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Device"
        "204":
          description: No devices found for the specified year
        "400":
          description: Bad request, missing or invalid year/page parameter
        "401":
          description: Unauthorized - Invalid API key
      tags:
        - demo-x7k9m2p4
    parameters: []
  /demo-x7k9m2p4/devices/search/:
    get:
      operationId: demo-x7k9m2p4_devices_search
      summary: Search Device by Name or Model Number
      description: "Retrieve device details by providing either a device name (e.g.,
        'iPhone 15 Pro') or a model number (e.g., 'A3520'), but not both. At
        least one parameter is required. Results are paginated (default: 10 per
        page, customizable via 'limit' parameter). Optionally filter by
        manufacturer. Exact model number matches are prioritized over name
        matches. **Note**: `image_b64` returns a 100x100 thumbnail."
      parameters:
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (optional for demo)"
          required: false
          schema:
            type: string
        - name: name
          in: query
          description: Name of the device to search for (e.g., 'iPhone 15 Pro'). Mutually
            exclusive with 'model_number'.
          required: false
          schema:
            type: string
        - name: model_number
          in: query
          description: Model number of the device to search for (e.g., 'A3520'). Mutually
            exclusive with 'name'.
          required: false
          schema:
            type: string
        - name: manufacturer
          in: query
          description: Optional. Filter search results to devices from this manufacturer
            only. If no devices match the manufacturer, returns empty results.
          required: false
          schema:
            type: string
        - name: limit
          in: query
          description: "Optional. Number of results to return per page (default: 10, max:
            30). Use this to control how many devices are returned in the
            response. For example, limit=1 returns only the best match."
          required: false
          schema:
            type: integer
        - name: page
          in: query
          description: "Page number (default: 1). Each page contains 50 devices."
          required: false
          schema:
            type: integer
        - name: exact
          in: query
          description: "Set to true for exact matching (default: false). When true, only
            returns devices with 100% match certainty (exact name or exact model
            number match)."
          required: false
          schema:
            type: boolean
      responses:
        "200":
          description: Paginated list of matching devices with metadata. Each device
            includes a 'match_type' field indicating whether it matched by
            'name', 'exact_model', or 'partial_model'.
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Device"
        "400":
          description: "Bad request: must provide either 'name' or 'model_number' (but not
            both), or invalid page"
        "404":
          description: Device not found
      tags:
        - demo-x7k9m2p4
    parameters: []
  "/demo-x7k9m2p4/devices/{id}/":
    get:
      operationId: demo-x7k9m2p4_devices_read
      summary: Get Device by ID
      description: "Retrieve detailed device information by providing its ID.
        **Note**: `image_b64` returns a 100x100 thumbnail. For full-resolution
        images, use `/devices/{id}/images` endpoint."
      parameters:
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (optional for demo)"
          required: false
          schema:
            type: string
      responses:
        "200":
          description: ""
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Device"
        "400":
          description: Bad Request - Insufficient credits
        "401":
          description: Unauthorized - Authentication required
        "404":
          description: Not Found - Device with given ID does not exist
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/battery/":
    get:
      operationId: demo-x7k9m2p4_devices_battery
      summary: Get Device Battery Specifications
      description: Get battery specifications for a specific device.
      responses:
        "200":
          description: Battery specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Battery"
        "404":
          description: Device or battery specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/body/":
    get:
      operationId: demo-x7k9m2p4_devices_body
      summary: Get Device Body Specifications
      description: Get body specifications for a specific device.
      responses:
        "200":
          description: Body specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Body"
        "404":
          description: Device or body specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/comms/":
    get:
      operationId: demo-x7k9m2p4_devices_comms
      summary: Get Device Communications Specifications
      description: Get communications specifications for a specific device.
      responses:
        "200":
          description: Communications specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Comms"
        "404":
          description: Device or communications specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/display/":
    get:
      operationId: demo-x7k9m2p4_devices_display
      summary: Get Device Display Specifications
      description: Get display specifications for a specific device.
      responses:
        "200":
          description: Display specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Display"
        "404":
          description: Device or display specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/features/":
    get:
      operationId: demo-x7k9m2p4_devices_features
      summary: Get Device Features Specifications
      description: Get features specifications for a specific device.
      responses:
        "200":
          description: Features specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Features"
        "404":
          description: Device or features specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/image/":
    get:
      operationId: demo-x7k9m2p4_devices_image_list
      description: |-
        Serve full-resolution device main image for demo purposes.
        Requires demo key - does NOT consume credits.
        Only accessible via hidden demo URL path.
      responses:
        "200":
          description: ""
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        required: true
        schema:
          type: string
  "/demo-x7k9m2p4/devices/{id}/images/":
    get:
      operationId: demo-x7k9m2p4_devices_images
      summary: Get Device Images
      description: Get all images for a specific device. Returns image URLs for
        full-resolution access (accessing image URLs consumes 1 credit per
        request). Main device image is included as the first entry with URL
        /devices/{id}/image/.
      parameters:
        - name: limit
          in: query
          description: "Maximum number of images to return (default: 10, max: 30)."
          required: false
          schema:
            type: integer
      responses:
        "200":
          description: Device images with URLs
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/Image"
        "400":
          description: Bad request, invalid limit parameter
        "404":
          description: Device not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/main-camera/":
    get:
      operationId: demo-x7k9m2p4_devices_main_camera
      summary: Get Device Main Camera Specifications
      description: Get main camera specifications for a specific device.
      responses:
        "200":
          description: Main camera specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/MainCamera"
        "404":
          description: Device or main camera specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/memory/":
    get:
      operationId: demo-x7k9m2p4_devices_memory
      summary: Get Device Memory Specifications
      description: Get memory specifications for a specific device.
      responses:
        "200":
          description: Memory specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Memory"
        "404":
          description: Device or memory specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/misc/":
    get:
      operationId: demo-x7k9m2p4_devices_misc
      summary: Get Device Miscellaneous Specifications
      description: Get miscellaneous specifications for a specific device.
      responses:
        "200":
          description: Miscellaneous specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Misc"
        "404":
          description: Device or miscellaneous specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/network/":
    get:
      operationId: demo-x7k9m2p4_devices_network
      summary: Get Device Network Specifications
      description: Get network specifications for a specific device.
      responses:
        "200":
          description: Network specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Network"
        "404":
          description: Device or network specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/platform/":
    get:
      operationId: demo-x7k9m2p4_devices_platform
      summary: Get Device Platform Specifications
      description: Get platform specifications for a specific device.
      responses:
        "200":
          description: Platform specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Platform"
        "404":
          description: Device or platform specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/selfie-camera/":
    get:
      operationId: demo-x7k9m2p4_devices_selfie_camera
      summary: Get Device Selfie Camera Specifications
      description: Get selfie camera specifications for a specific device.
      responses:
        "200":
          description: Selfie camera specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/SelfieCamera"
        "404":
          description: Device or selfie camera specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  "/demo-x7k9m2p4/devices/{id}/sound/":
    get:
      operationId: demo-x7k9m2p4_devices_sound
      summary: Get Device Sound Specifications
      description: Get sound specifications for a specific device.
      responses:
        "200":
          description: Sound specifications
          content:
            application/json:
              schema:
                $ref: "#/components/schemas/Sound"
        "404":
          description: Device or sound specifications not found
      tags:
        - demo-x7k9m2p4
    parameters:
      - name: id
        in: path
        description: A unique integer value identifying this device.
        required: true
        schema:
          type: integer
  /devices/:
    get:
      operationId: devices_list
      summary: List All Devices
      description: "Retrieve a list of all devices. Results are paginated. **Note**:
        `image_b64` returns a 100x100 thumbnail. For full-resolution images, use
        the `/devices/{id}/images` endpoint."
      parameters:
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (optional for demo)"
          required: false
          schema:
            type: string
        - name: page
          in: query
          description: "Page number (default: 1). Each page contains 50 devices."
          required: false
          schema:
            type: integer
      responses:
        "200":
          description: Paginated list of devices with metadata
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DeviceList"
        "400":
          description: Bad request, invalid page parameter
        "401":
          description: Unauthorized - Authentication required
      tags:
        - devices
    parameters: []
  /devices/ai-query/:
    get:
      operationId: devices_ai_query
      summary: Natural Language Device Query (AI-Powered) - Paid Users Only
      description: "Query devices using natural language. Examples: 'Get top 5 devices
        with the most RAM', 'Show me phones with best camera', 'Find cheapest 5G
        phones'. Powered by AI to understand and execute your query. **Note:
        This endpoint requires a paid subscription plan (Pro or Enterprise).**"
      parameters:
        - name: query
          in: query
          description: Natural language query (e.g., 'top 5 devices with most RAM',
            'phones with best battery')
          required: true
          schema:
            type: string
        - name: Authorization
          in: header
          description: "Recommended: 'Token YOUR_API_KEY' or 'Bearer YOUR_API_KEY'
            (requires paid plan)"
          required: false
          schema:
            type: string
        - name: key
          in: query
          description: "Fallback: API key as query parameter (requires paid plan)"
          required: false
          schema:
            type: string
      responses:
        "200":
          description: Query results with explanation
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: "#/components/schemas/DeviceList"
        "400":
          description: Bad request - missing query parameter or invalid query
        "401":
          description: Unauthorized - invalid API key
        "403":
          description: Forbidden - paid plan required
        "429":
          description: Rate limit exceeded
        "503":
          description: LLM service unavailable (OpenAI API key not configured)
  

# --- truncated at 32 KB (76 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/mobileapi-dev/refs/heads/main/openapi/mobileapi-openapi.yml