Pulse Grow AllDevices API

A collection of API operations related to devices.

OpenAPI Specification

pulse-grow-alldevices-api-openapi.yml Raw ↑
openapi: 3.0.4
info:
  title: Pulse Api AllDevices API
  description: "# Introduction\n\nThe Pulse API is an HTTP API that is designed to interact with your pulse account and devices. \n\nNote that not all app functionality has yet been exposed through this api, so if you need additional functionality, contact our support team at support@pulsegrow.com and we will add it for you. \n\nThis API reference includes all technical documentation developers need to integrate third-party applications and platforms. If you have any additional questions send an email to our support team at support@pulsegrow.com\n\n# Authentication\n\nAll HTTP requests made against the Pulse API must be validated with an API Key.\n\n### Acquiring an API Key\n\nTo generate a new api key go to https://app.pulsegrow.com/account, scroll down to the api key section, and press the \"Add Api Key\" button.\n\n### Using Your API Key \n\nNote: API keys are generated per grow and only have access to that grow's resources (users, devices, etc). \n\nAll requests should target domain `https://api.pulsegrow.com`.\n\nYou need to provide the API key via the `x-api-key` header.\n\nSecurity Warning: It's important to secure your API Key against public access. Guard and secure it like a password. If you suspect that your API key has been compromised, revoke it via the web application at https://app.pulsegrow.com/account. \n\nSample request:\n\n```\n\ncurl --request GET \"https://api.pulsegrow.com/devices/{deviceId}/recent-data\" --header \"x-api-key: {apiKey}\"\n\n``` \n\n### Api consumption\n\n Api consumption is measured by number of datapoints retrieved.\n\n An api call that does not retrieve datapoints counts as one datapoint.\n\n Hobbyist users can use up to 4800 datapoints daily, Enthusiasts and Professionals 24000 and 120000, respectively \n\n"
  termsOfService: https://pulsegrow.com/terms
  contact:
    name: Need help? Contact support
    email: support@pulsegrow.com
  version: v1
  x-logo:
    url: https://cdn.shopify.com/s/files/1/2451/2393/files/logo_1_400x.png
    altText: The Logo
tags:
- name: AllDevices
  description: A collection of API operations related to devices.
paths:
  /all-devices:
    get:
      tags:
      - AllDevices
      summary: 'Gets all of the grows devices, including latest data.

        Sparklines (data for the last hour) are not included'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NonTypeSpecificDeviceListDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: string
components:
  schemas:
    UniversalDataPointDtoSingleValue:
      type: object
      properties:
        paramName:
          type: string
          nullable: true
        measuringUnit:
          type: string
          nullable: true
        paramValue:
          type: number
          format: float
          nullable: true
        highChartAuxiliaryData:
          $ref: '#/components/schemas/HighChartAuxiliaryData'
        sensorReadingType:
          $ref: '#/components/schemas/SensorReadingType'
      additionalProperties: false
    SensorType:
      type: integer
      format: int32
    MostRecentSensorDataPointDto:
      type: object
      properties:
        sensorType:
          $ref: '#/components/schemas/SensorType'
        deviceType:
          $ref: '#/components/schemas/DeviceType'
        name:
          type: string
          nullable: true
        dataPointDto:
          $ref: '#/components/schemas/UniversalDataPointDto'
      additionalProperties: false
    OpenSprinklerSpecificData:
      type: object
      properties:
        lastOnline:
          type: string
          format: date-time
          nullable: true
        nextOpenSprinklerProgramRunInfo:
          $ref: '#/components/schemas/NextOpenSprinklerProgramRunInfo'
        lastRanProgramName:
          type: string
          nullable: true
        lastRunProgramId:
          type: integer
          format: int32
          nullable: true
        mac:
          type: string
          nullable: true
        lastRunDuration:
          type: integer
          format: int32
          nullable: true
        lastRunTimeEnd:
          type: string
          format: date-time
          nullable: true
        pausedUntil:
          type: string
          format: date-time
          nullable: true
        lastSynced:
          type: string
          format: date-time
          nullable: true
        durations:
          type: array
          items:
            type: integer
            format: int32
          nullable: true
        lastAutomationInfo:
          $ref: '#/components/schemas/LastAutomationInfo'
      additionalProperties: false
    DataPointDto:
      type: object
      properties:
        deviceId:
          type: integer
          format: int32
        pluggedIn:
          type: boolean
        batteryV:
          type: number
          format: float
        electricImpId:
          type: string
          nullable: true
        signalStrength:
          type: integer
          format: int32
        createdAt:
          type: string
          format: date-time
        deviceType:
          $ref: '#/components/schemas/DeviceType'
        temperatureF:
          type: number
          format: float
        humidityRh:
          type: number
          format: float
        lightLux:
          type: number
          format: float
        airPressure:
          type: number
          format: float
        vpd:
          type: number
          format: double
        co2:
          type: integer
          format: int32
        co2Temperature:
          type: number
          format: double
        co2Rh:
          type: number
          format: double
        voc:
          type: integer
          format: int32
        channel1:
          type: number
          format: double
        channel2:
          type: number
          format: double
        channel3:
          type: number
          format: double
        channel4:
          type: number
          format: double
        channel5:
          type: number
          format: double
        channel6:
          type: number
          format: double
        channel7:
          type: number
          format: double
        channel8:
          type: number
          format: double
        near:
          type: number
          format: double
        clear:
          type: number
          format: double
        flicker:
          type: number
          format: double
        par:
          type: number
          format: double
        gain:
          type: integer
          format: int32
        tint:
          type: number
          format: double
      additionalProperties: false
    SensorReadingType:
      type: integer
      format: int32
    NonTypeSpecificDeviceListDto:
      type: object
      properties:
        deviceViewDtos:
          type: array
          items:
            $ref: '#/components/schemas/DeviceViewDto'
          nullable: true
        universalSensorViews:
          type: array
          items:
            $ref: '#/components/schemas/SensorDeviceViewUniversalDto'
          nullable: true
        hubViewDtos:
          type: array
          items:
            $ref: '#/components/schemas/HubViewDto'
          nullable: true
        controlsViewDtos:
          type: array
          items:
            $ref: '#/components/schemas/ControlsViewDto'
          nullable: true
      additionalProperties: false
    HighChartAuxiliaryData:
      type: object
      properties:
        color:
          type: string
          nullable: true
          readOnly: true
        yAxis:
          type: integer
          format: int32
        valueDecimal:
          type: integer
          format: int32
        redCoefficient:
          type: integer
          format: int32
        greenCoefficient:
          type: integer
          format: int32
        blueCoefficient:
          type: integer
          format: int32
      additionalProperties: false
    ControlType:
      type: integer
      format: int32
    UniversalDataPointArrayDto:
      type: object
      properties:
        dataPointValues:
          type: array
          items:
            $ref: '#/components/schemas/UniversalDataPointDtoMultipleValue'
          nullable: true
        dataPointValuesCreatedAt:
          type: array
          items:
            type: string
            format: date-time
          nullable: true
      additionalProperties: false
    DeviceViewDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        displayOrder:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        growId:
          type: integer
          format: int32
        hidden:
          type: boolean
        deviceType:
          $ref: '#/components/schemas/DeviceType'
        guid:
          type: string
          format: uuid
        templateId:
          type: integer
          format: int32
          nullable: true
        pulseGuid:
          type: string
          format: uuid
        dayStart:
          type: string
          format: date-span
        nightStart:
          type: string
          format: date-span
        isDay:
          type: boolean
        vpdLeafTempOffsetInF:
          type: number
          format: double
        vpdTarget:
          type: number
          format: double
          nullable: true
        batteryCount:
          type: integer
          format: int32
        lowBatteryVoltage:
          type: number
          format: float
        mostRecentDataPoint:
          $ref: '#/components/schemas/DataPointDto'
        lastHourData:
          type: array
          items:
            $ref: '#/components/schemas/DataPointDto'
          nullable: true
        proLightReadingPreviewDto:
          $ref: '#/components/schemas/ProLightReadingPreviewDto'
        growTimezoneOffset:
          type: integer
          format: int32
      additionalProperties: false
    HubViewDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        displayOrder:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        growId:
          type: integer
          format: int32
        hidden:
          type: boolean
        deviceType:
          $ref: '#/components/schemas/DeviceType'
        mostRecentDataPoint:
          $ref: '#/components/schemas/HubDataPointDto'
      additionalProperties: false
    ControlsViewDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        name:
          type: string
          nullable: true
        controlType:
          $ref: '#/components/schemas/ControlType'
        displayOrder:
          type: integer
          format: int32
          nullable: true
        deviceType:
          $ref: '#/components/schemas/DeviceType'
        openSprinklerSpecificData:
          $ref: '#/components/schemas/OpenSprinklerSpecificData'
      additionalProperties: false
    DeviceType:
      type: integer
      format: int32
    ParSensorSubtype:
      type: integer
      format: int32
    NextOpenSprinklerProgramRunInfo:
      type: object
      properties:
        programId:
          type: integer
          format: int32
        inDays:
          type: integer
          format: int32
        startTime:
          type: string
          format: date-span
          nullable: true
        programName:
          type: string
          nullable: true
        dayOfRun:
          type: string
          format: date-time
      additionalProperties: false
    UniversalDataPointDtoMultipleValue:
      type: object
      properties:
        paramName:
          type: string
          nullable: true
        measuringUnit:
          type: string
          nullable: true
        paramValues:
          type: array
          items:
            type: number
            format: float
          nullable: true
        highChartAuxiliaryData:
          $ref: '#/components/schemas/HighChartAuxiliaryData'
        sensorReadingType:
          $ref: '#/components/schemas/SensorReadingType'
      additionalProperties: false
    ProLightReadingPreviewDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        ppfd:
          type: number
          format: double
        dli:
          type: number
          format: double
          nullable: true
        createdAt:
          type: string
          format: date-time
      additionalProperties: false
    HubDataPointDto:
      type: object
      properties:
        deviceId:
          type: integer
          format: int32
        pluggedIn:
          type: boolean
        batteryV:
          type: number
          format: float
        electricImpId:
          type: string
          nullable: true
        signalStrength:
          type: integer
          format: int32
        createdAt:
          type: string
          format: date-time
      additionalProperties: false
    UniversalDataPointDto:
      type: object
      properties:
        dataPointValues:
          type: array
          items:
            $ref: '#/components/schemas/UniversalDataPointDtoSingleValue'
          nullable: true
        sensorId:
          type: integer
          format: int32
        createdAt:
          type: string
          format: date-time
      additionalProperties: false
    SensorDeviceViewUniversalDto:
      type: object
      properties:
        id:
          type: integer
          format: int32
        displayOrder:
          type: integer
          format: int32
          nullable: true
        name:
          type: string
          nullable: true
        growId:
          type: integer
          format: int32
        hidden:
          type: boolean
        hubId:
          type: integer
          format: int32
          nullable: true
        deviceType:
          $ref: '#/components/schemas/DeviceType'
        mostRecentDataPoint:
          $ref: '#/components/schemas/UniversalDataPointDto'
        sensorType:
          $ref: '#/components/schemas/SensorType'
        lastHourDataPointDtos:
          $ref: '#/components/schemas/UniversalDataPointArrayDto'
        templateId:
          type: integer
          format: int32
          nullable: true
        dayStart:
          type: string
          format: date-span
        nightStart:
          type: string
          format: date-span
        parSensorSubtype:
          $ref: '#/components/schemas/ParSensorSubtype'
      additionalProperties: false
    LastAutomationInfo:
      type: object
      properties:
        durations:
          type: array
          items:
            type: integer
            format: int32
          nullable: true
        sensorId:
          type: integer
          format: int32
        triggeringValue:
          type: string
          nullable: true
        time:
          type: string
          format: date-time
        mostRecentSensorDataPointDto:
          $ref: '#/components/schemas/MostRecentSensorDataPointDto'
      additionalProperties: false