Hivemapper Imagery API

Street-level dashcam imagery queries.

OpenAPI Specification

hivemapper-imagery-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bee Maps (Hivemapper) Developer Account Imagery API
  version: '1.0'
  x-generated: '2026-07-19'
  x-method: generated
  x-source: https://docs.beemaps.com/api-reference
  description: The Bee Maps (Hivemapper) Developer API delivers fresh street-level imagery, ML-detected map features, AI event videos, and on-demand mapping (Bursts) from the world's largest decentralized dashcam network. Data is queried by point, polygon, or linestring and billed on a two-tier model (API credits per query plus per-view USD metering for signed imagery URLs). Requests are limited to a maximum query area of 5 sq km and use GeoJSON [longitude, latitude] coordinate order. This specification was generated faithfully from the public Bee Maps API reference; it is not a provider-published OpenAPI document.
  contact:
    name: Bee Maps
    email: hi@hivemapper.com
    url: https://docs.beemaps.com
  license:
    name: Bee Maps API Terms
    url: https://hivemapper.com/tos
servers:
- url: https://beemaps.com/api/developer
  description: Bee Maps Developer API (current)
- url: https://hivemapper.com/api/developer
  description: Legacy Hivemapper Developer API host
security:
- basicAuth: []
- apiKeyQuery: []
tags:
- name: Imagery
  description: Street-level dashcam imagery queries.
paths:
  /imagery/poly:
    post:
      operationId: queryImageryByPolygon
      summary: Query street-level imagery by polygon and week
      description: Query geolocated dashcam frames captured within a polygon for a specific week. Returns signed image URLs, timestamps, GPS position, IMU data, device type, and image dimensions.
      tags:
      - Imagery
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ImageryQuery'
      responses:
        '200':
          description: Array of imagery frames.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Frame'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '500':
          $ref: '#/components/responses/ServerError'
  /latest/poly:
    post:
      operationId: queryLatestImagery
      summary: Query the most recent imagery by polygon
      description: Query the most recent street-level imagery within a polygon, optionally bounded by a minimum week cutoff.
      tags:
      - Imagery
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/LatestImageryQuery'
      responses:
        '200':
          description: Array of imagery frames.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/Frame'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '500':
          $ref: '#/components/responses/ServerError'
components:
  responses:
    Forbidden:
      description: Forbidden / access denied.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: Authentication failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: Server error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: Bad request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    Position:
      type: object
      properties:
        lon:
          type: number
        lat:
          type: number
        alt:
          type: number
        azimuth:
          type: number
    GeoJSONGeometry:
      type: object
      description: A GeoJSON geometry (Point, LineString, or Polygon) with [lon, lat] order.
      properties:
        type:
          type: string
          enum:
          - Point
          - LineString
          - Polygon
        coordinates: {}
        radius:
          type: number
          description: Radius in meters (for Point queries).
        buffer:
          type: number
          description: Buffer in meters (for LineString queries).
      required:
      - type
      - coordinates
    ImageryQuery:
      type: object
      properties:
        geometry:
          $ref: '#/components/schemas/GeoJSONGeometry'
        week:
          type: string
          description: Target week in YYYY-mm-dd format.
        headings:
          type: boolean
          description: Include heading data.
        catalog:
          type: boolean
          description: Return metadata only, without image URLs.
      required:
      - geometry
    Frame:
      type: object
      description: A street-level dashcam frame.
      properties:
        url:
          type: string
          format: uri
          description: Signed image URL.
        timestamp:
          type: string
          format: date-time
        position:
          $ref: '#/components/schemas/Position'
        idImu:
          type: object
          additionalProperties: true
          description: IMU data.
        deviceType:
          type: string
          enum:
          - hdc
          - hdcs
          - bee
        width:
          type: integer
        height:
          type: integer
    LatestImageryQuery:
      type: object
      properties:
        geometry:
          $ref: '#/components/schemas/GeoJSONGeometry'
        min_week:
          type: string
          description: Cutoff date (YYYY-mm-dd) for the most recent imagery.
        headings:
          type: boolean
        catalog:
          type: boolean
        crossjoin:
          type: boolean
          description: Return the full polygon per time period.
      required:
      - geometry
    Error:
      type: object
      properties:
        error:
          type: string
          description: Human-readable error message.
        statusCode:
          type: integer
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic
      description: 'HTTP Basic authentication. Send Authorization: Basic <base64(username:api-key)>.'
    apiKeyQuery:
      type: apiKey
      in: query
      name: apiKey
      description: API key passed as the apiKey query parameter.