Pulse Grow ProLightReading API

A collection of API operations related to light readings.

OpenAPI Specification

pulse-grow-prolightreading-api-openapi.yml Raw ↑
openapi: 3.0.4
info:
  title: Pulse Api AllDevices ProLightReading 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: ProLightReading
  description: A collection of API operations related to light readings.
paths:
  /api/light-readings/{deviceId}:
    get:
      tags:
      - ProLightReading
      summary: Retrieves (one page worth of) light readings(including spectrum) for a given device, supports pagination.
      parameters:
      - name: deviceId
        in: path
        description: Id of the device
        required: true
        schema:
          type: integer
          format: int32
      - name: page
        in: query
        description: Object containing requested page position. Note that page numeration starts from zero
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LightReadingsResponseDto'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: string
  /api/devices/{deviceId}/trigger-light-reading:
    get:
      tags:
      - ProLightReading
      summary: 'Remotely triggers a light reading off of a Pulse Pro.

        The Result needs to be fetched separately in 5-10 seconds

        There is a small chance of the Pro failing to trigger a light reading remotely

        If no new data is found - retrigger in 1 minute'
      parameters:
      - name: deviceId
        in: path
        description: Id of the device
        required: true
        schema:
          type: integer
          format: int32
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IActionResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                type: string
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                type: string
components:
  schemas:
    LightReadingsResponseDto:
      type: object
      properties:
        currentPage:
          type: integer
          format: int32
        numPages:
          type: integer
          format: int32
        numReadings:
          type: integer
          format: int32
        lightReadings:
          type: array
          items:
            $ref: '#/components/schemas/ProLightReadingDto'
          nullable: true
      additionalProperties: false
    IActionResult:
      type: object
      additionalProperties: false
    ProLightReadingDto:
      type: object
      properties:
        deviceId:
          type: integer
          format: int32
        id:
          type: integer
          format: int32
        createdAt:
          type: string
          format: date-time
        note:
          type: string
          nullable: true
        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
        ir:
          type: number
          format: double
        clear:
          type: number
          format: double
        flicker:
          type: number
          format: double
        gain:
          type: integer
          format: int32
        tint:
          type: number
          format: double
        ppfd:
          type: number
          format: double
        dli:
          type: number
          format: double
          nullable: true
        pfdRed:
          type: number
          format: double
          nullable: true
        pfdGreen:
          type: number
          format: double
          nullable: true
        pfdBlue:
          type: number
          format: double
          nullable: true
        pfdIr:
          type: number
          format: double
          nullable: true
        spectrum:
          type: array
          items:
            type: number
            format: double
          nullable: true
      additionalProperties: false