openapi: 3.0.3
info:
  title: Weenat – Developers API V3
  version: unversioned (1.0)
  description: |+
    The Developers API V3 enables developers to retrieve plot & sensor historical data in a programmatic way.

    Please read the detailed <a href='v3' target='_blank'><strong>Documentation</strong></a> for a better understanding of the possibilities.

    Developers API V3 Authentication & Authorization is based on API keys at user level.

    Log in the Weenat app & <a href='https://app.weenat.com/me/api' target='_blank'>create an API key</a> in order to directly test it in the swagger below.

paths:
  /v3/data/devices/{id}/:
    get:
      operationId: Retrieve historical weather data of a device
      description: |-
        Retrieve historical weather data of a device.

        The timestamp designates the beginning of the hour over which the metrics are aggregated. For instance, on the first example below, the timestamp matches 14:00 (UTC), so the `T` data is the average of all `T` measures made in the [14:00, 15:00[ interval, and the `RR` data is the sum of all `RR` measures made in that same interval.

        Hourly or daily data can be aggregated differently depending on each metric. In most cases, the average is calculated. But for certain metrics, other types of aggregation are used:
        | Metric | Aggregation      |
        | ------ | ---------------- |
        | ETP    | Sum              |
        | DD     | Circular average |
        | DXY    | Circular average |
        | FXY    | Maximum          |
        | LW_D   | Sum              |
        | RR     | Sum              |

        The maximum time interval between the start and end parameters depends on the selected time span:
          - For `raw`: 15 days
          - For `hour`: 35 days
          - For `day`: 370 days
      parameters:
      - in: query
        name: end
        schema:
          type: string
          format: date-time
        description: Restricts results to data before the specified end time (exclusive,
          ISO 8601).
        required: true
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this device.
        required: true
      - in: query
        name: start
        schema:
          type: string
          format: date-time
        description: Restricts results to data on or after the specified start time
          (inclusive, ISO 8601).
        required: true
      - in: query
        name: timespan
        schema:
          type: string
          enum:
          - day
          - hour
          - raw
        description: |-
          Defines the granularity of the time series data.

          `raw` indicates that all timestamps are returned as they are recorded, without any filtering or aggregation.
        required: true
      tags:
      - Data
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevelopersAPIDataDeviceResponse'
              examples:
                DrfspecGetDataDeviceEx1:
                  value:
                  - datetime: '2025-01-04T15:00:00Z'
                    RR: 1.2
                    T: 4.4
                    U: 99.9
                  summary: Retrieve all weather data of a device for a 1-hour time
                    interval
                DrfspecGetDataDeviceEx2:
                  value:
                  - datetime: '2024-08-12T22:00:00Z'
                    HPOT: 78.0
                    T_CAL: 21.0
                  - datetime: '2024-08-13T22:00:00Z'
                    HPOT: 82.0
                    T_CAL: 21.0
                  - datetime: '2024-08-14T22:00:00Z'
                    HPOT: 85.0
                    T_CAL: 20.0
                  summary: Retrieve tensiometer data of another device for an extended
                    time interval
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/validation_error_010_011'
          description: ''
  /v3/data/plots/{id}/:
    get:
      operationId: Retrieve historical weather data on a plot
      description: |-
        Retrieve historical weather data on a plot.

        This endpoint returns hourly or daily weather data. The data is mainly sourced from physical sensors on the plot, like a Weenat P+ device.

        Additional spatialized data may be returned, e.g. for solar irradiance, if Meteo Vision was activated on the plot.

        The timestamp designates the beginning of the hour over which the metrics are aggregated. For instance, on the first example below, the timestamp matches 14:00 (UTC), so the `T` data is the average of all `T` measures made in the [14:00, 15:00[ interval, and the `RR` data is the sum of all `RR` measures made in that same interval.

        Hourly or daily data can be aggregated differently depending on each metric. In most cases, the average is calculated, including for metrics like `SSI_MAX`, `SSI_MIN`, `PPFD_MAX`, and `PPFD_MIN`. For instance, a `SSI_MIN` value is the average of every minimal solar irradiance measurement recorded over one hour. However, other aggregation methods are used for certain metrics:
        | Metric | Aggregation      |
        | ------ | ---------------- |
        | ETP    | Sum              |
        | DD     | Circular average |
        | DXY    | Circular average |
        | FXY    | Maximum          |
        | LW_D   | Sum              |
        | RR     | Sum              |

        The maximum time interval between the start and end parameters depends on the selected time span:
          - For `hour`: 35 days
          - For `day`: 370 days
      parameters:
      - in: query
        name: end
        schema:
          type: string
          format: date-time
        description: Restricts results to data before the specified end time (exclusive,
          ISO 8601).
        required: true
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plot.
        required: true
      - in: query
        name: start
        schema:
          type: string
          format: date-time
        description: Restricts results to data on or after the specified start time
          (inclusive, ISO 8601).
        required: true
      - in: query
        name: timespan
        schema:
          type: string
          enum:
          - day
          - hour
          default: hour
        description: Defines the granularity of the time series data.
      tags:
      - Data
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevelopersAPIDataPlotResponse'
              examples:
                DrfspecGetDataPlotEx1:
                  value:
                  - datetime: '2025-01-04T15:00:00Z'
                    RR: 1.2
                    SSI: 24.0
                    T: 4.4
                    T_DEW: 1.9
                    U: 99.9
                  summary: Retrieve all weather data on a plot for a 1-hour time interval
                DrfspecGetDataPlotEx2:
                  value:
                  - datetime: '2024-03-03T15:00:00Z'
                    DD: 316.0
                    FF: 7.8
                    HPOT-15: 10.0
                    RR: 0.0
                    SSI: 257.0
                    T: 10.4
                    T_CAL-15: 9.8
                    T_DEW: 1.5
                    U: 54.0
                  - datetime: '2024-03-03T16:00:00Z'
                    DD: 283.0
                    FF: 8.2
                    HPOT-15: 9.0
                    RR: 0.0
                    SSI: 338.0
                    T: 11.2
                    T_CAL-15: 8.9
                    T_DEW: 0.0
                    U: 46.0
                  - datetime: '2024-03-03T17:00:00Z'
                    DD: 295.0
                    FF: 8.4
                    HPOT-15: 9.0
                    RR: 0.0
                    SSI: 178.0
                    T: 10.6
                    T_CAL-15: 8.4
                    T_DEW: 0.9
                    U: 51.0
                  summary: Retrieve weather and tensiometer data on another plot for
                    an extended time interval
          description: ''
        '400':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/validation_error_010_011'
          description: ''
  /v3/devices/:
    get:
      operationId: List all devices
      description: |-
        List all devices the user has access to.

        This includes the devices registered by any organization the user is a member of.

        In the context of networks, this also includes 1) the devices of any network the user's organizations are affiliated to, 2) the devices of all farms affiliated to a network the user is a member of, 3) the devices of all farms affiliated to the same network as any affiliate farm the user is a member of.

        Use the `organization_id` query parameter to narrow this scope and filter the devices related to a specific organization.
      parameters:
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: organization_id
        schema:
          type: integer
        description: Return only the devices registered by the provided organization.
      - in: query
        name: serial_number
        schema:
          type: string
        description: Return only the device with the provided serial number (if it
          exists).
      - in: query
        name: with_ongoing_fault_events
        schema:
          type: boolean
        description: Return only devices with ongoing fault events.
      tags:
      - Device
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDevelopersAPIDeviceList'
              examples:
                DrfspecDevapideviceListEx1:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?offset=400&limit=100
                    previous: http://api.example.org/accounts/?offset=200&limit=100
                    results:
                    - id: 17892
                      brand: Weenat
                      serial_number: W700349
                      model: CAPA-60-6
                      model_label: Soil capacitance probe
                      sensor_brand: HydrWize
                      available_metrics:
                      - T_CAPA
                      - U_CAPA
                      registered_by:
                        url: https://api-prod.weenat.com/v3/organizations/networks/1484/
                        id: 1484
                        name: Atlantic Cooperative
                        datetime: '2023-11-26T17:43:00Z'
                      location:
                      - 47.01407
                      - -2.28703
                      location_text: Noirmoutier-en-l'Île, Vendée
                      broadcast_network_provider: LoRa
                      latest_gps_broadcast: '2024-07-22T14:29:43Z'
                      latest_measurement_broadcast: '2024-07-24T09:21:40'
                      timezone: Europe/Paris
                  summary: List all devices
          description: ''
  /v3/devices/{id}/:
    get:
      operationId: Retrieve a device
      description: |-
        Retrieve a device the user has access to.

        See the list version of this endpoint for details about device permissions.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this device.
        required: true
      - in: query
        name: with_ongoing_fault_events
        schema:
          type: boolean
        description: Include ongoing fault events in the response.
      tags:
      - Device
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevelopersAPIDevice'
              examples:
                DrfspecDevapideviceRetrieveEx1:
                  value:
                    id: 17892
                    brand: Weenat
                    serial_number: W700349
                    model: CAPA-60-6
                    model_label: Soil capacitance probe
                    sensor_brand: HydrWize
                    available_metrics:
                    - T_CAPA
                    - U_CAPA
                    registered_by:
                      url: https://api-prod.weenat.com/v3/organizations/networks/1484/
                      id: 1484
                      name: Atlantic Cooperative
                      datetime: '2023-11-26T17:43:00Z'
                    location:
                    - 47.01407
                    - -2.28703
                    location_text: Noirmoutier-en-l'Île, Vendée
                    broadcast_network_provider: LoRa
                    latest_gps_broadcast: '2024-07-22T14:29:43Z'
                    latest_measurement_broadcast: '2024-07-24T09:21:40'
                    timezone: Europe/Paris
                  summary: Retrieve a device
          description: ''
  /v3/organizations/affiliates/:
    get:
      operationId: List all affiliates
      description: |-
        List all farms affiliated to any network the user is a member of.

        In other words, if a user is a member of a network which has registered an affiliate farm, then this farm will be returned here.

        The returned objects have the same data structure as any other farm.
      tags:
      - Network
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DevelopersAPIOrganization'
              examples:
                DrfspecDevapiorgaffiliateListEx1:
                  value:
                  - id: 20958
                    name: Jerome's Farm
                    creation_datetime: '2023-11-26T17:43:00Z'
                    subscription_plan: Weenat Expert
                    owner:
                      email: jerome@leroyfarms.com
                      full_name: Jérôme Le Roy
                    device_count: 1
                    plot_count: 3
                    is_network: false
                    parent_network:
                      url: https://api-prod.weenat.com/v3/organizations/networks/1484/
                      id: 1484
                      name: Atlantic Cooperative
                  summary: List all affiliates
          description: ''
  /v3/organizations/affiliates/{id}/:
    get:
      operationId: Retrieve an affiliate
      description: Retrieve a farm affiliated to a network the user is a member of.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this farm.
        required: true
      tags:
      - Network
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevelopersAPIOrganization'
              examples:
                DrfspecDevapiorgaffiliateRetrieveEx1:
                  value:
                    id: 20958
                    name: Jerome's Farm
                    creation_datetime: '2023-11-26T17:43:00Z'
                    subscription_plan: Weenat Expert
                    owner:
                      email: jerome@leroyfarms.com
                      full_name: Jérôme Le Roy
                    device_count: 1
                    plot_count: 3
                    is_network: false
                    parent_network:
                      url: https://api-prod.weenat.com/v3/organizations/networks/1484/
                      id: 1484
                      name: Atlantic Cooperative
                  summary: Retrieve an affiliate
          description: ''
  /v3/organizations/farms/:
    get:
      operationId: List all farms
      description: |-
        List all farms the user is a member of.

        In the returned list, farms are ordered by their identifier.
      parameters:
      - in: query
        name: is_network
        schema:
          type: boolean
        description: Return only farm networks if set to true, or only non-network
          farms if set to false. (Both if not provided.)
      tags:
      - Farm
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DevelopersAPIOrganization'
              examples:
                DrfspecDevapiorgfarmListEx1:
                  value:
                  - id: 20958
                    name: Jerome's Farm
                    creation_datetime: '2023-11-26T17:43:00Z'
                    subscription_plan: Weenat Expert
                    owner:
                      email: jerome@leroyfarms.com
                      full_name: Jérôme Le Roy
                    device_count: 1
                    plot_count: 3
                    is_network: false
                    parent_network:
                      url: https://api-prod.weenat.com/v3/organizations/networks/1484/
                      id: 1484
                      name: Atlantic Cooperative
                  summary: List all farms
          description: ''
  /v3/organizations/farms/{id}/:
    get:
      operationId: Retrieve a farm
      description: Retrieve a farm the user is a member of.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this farm.
        required: true
      tags:
      - Farm
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevelopersAPIOrganization'
              examples:
                DrfspecDevapiorgfarmRetrieveEx1:
                  value:
                    id: 20958
                    name: Jerome's Farm
                    creation_datetime: '2023-11-26T17:43:00Z'
                    subscription_plan: Weenat Expert
                    owner:
                      email: jerome@leroyfarms.com
                      full_name: Jérôme Le Roy
                    device_count: 1
                    plot_count: 3
                    is_network: false
                    parent_network:
                      url: https://api-prod.weenat.com/v3/organizations/networks/1484/
                      id: 1484
                      name: Atlantic Cooperative
                  summary: Retrieve a farm
          description: ''
  /v3/organizations/networks/:
    get:
      operationId: List all networks
      description: |-
        List all networks that have registered as an affiliate any farm the user is a member of.

        In other words, if a user is a member of a farm that is affiliated to a network, then this network will be returned here.

        The returned objects have the same data structure as any other farm.
      tags:
      - Network
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DevelopersAPIOrganization'
              examples:
                DrfspecDevapiorgnetworkListEx1:
                  value:
                  - id: 1484
                    name: Atlantic Cooperative
                    creation_datetime: '2023-11-26T17:43:00Z'
                    subscription_plan: Weenat Expert
                    owner:
                      email: may.dupneim@atlantic.com
                      full_name: May Dupneim
                    device_count: 48
                    plot_count: 31
                    is_network: true
                    parent_network: null
                  summary: List all networks
          description: ''
  /v3/organizations/networks/{id}/:
    get:
      operationId: Retrieve a network
      description: Retrieve a network that has registered as an affiliate any farm
        the user is a member of.
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this network.
        required: true
      tags:
      - Network
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevelopersAPIOrganization'
              examples:
                DrfspecDevapiorgnetworkRetrieveEx1:
                  value:
                    id: 1484
                    name: Atlantic Cooperative
                    creation_datetime: '2023-11-26T17:43:00Z'
                    subscription_plan: Weenat Expert
                    owner:
                      email: may.dupneim@atlantic.com
                      full_name: May Dupneim
                    device_count: 48
                    plot_count: 31
                    is_network: true
                    parent_network: null
                  summary: Retrieve a network
          description: ''
  /v3/plots/:
    get:
      operationId: List all plots
      description: |-
        List all plots the user has access to.

        Each plot is returned with information about the organization which created it, and the devices which were registered on it (if any).

        If the user is a member of a network, this list will also include any plot registered by an affiliate farm.

        Use the `organization_id` query parameter to filter for plots registered by one specific organization.
      parameters:
      - in: query
        name: is_archived
        schema:
          type: boolean
        description: Filter either archived or non-archived plots.
      - name: limit
        required: false
        in: query
        description: Number of results to return per page.
        schema:
          type: integer
      - name: offset
        required: false
        in: query
        description: The initial index from which to return the results.
        schema:
          type: integer
      - in: query
        name: organization_id
        schema:
          type: integer
        description: Return only the plots registered by the provided organization.
      tags:
      - Plot
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedDevelopersAPIPlotList'
              examples:
                DrfspecDevapiplotListEx1:
                  value:
                    count: 123
                    next: http://api.example.org/accounts/?offset=400&limit=100
                    previous: http://api.example.org/accounts/?offset=200&limit=100
                    results:
                    - id: 24503
                      name: Blue Hills
                      creation_datetime: '2024-05-03T09:23:49Z'
                      archived: false
                      meteo_vision: false
                      location:
                      - 47.01407
                      - -2.28703
                      location_text: Noirmoutier-en-l'Île, Vendée
                      organization:
                        url: https://api-prod.weenat.com/v3/organizations/farms/20958/
                        id: 20958
                        name: Jerome's Farm
                      device_count: 1
                      devices:
                      - url: https://api-prod.weenat.com/v3/devices/19348/
                        id: 19348
                        brand: Weenat
                        model_label: Soil capacitance probe
                        serial_number: W700F39
                      available_metrics:
                      - T_CAPA
                      - U_CAPA
                      - ETP
                      - SSI
                      - SSI_HOURS
                      - T_DEW
                      soil_texture: 2
                      soil_texture_label: Silty clay
                      irrigation_type: 1
                      irrigation_type_label: Drip
                      environment_type: 0
                      environment_type_label: Open-field
                      substrate_type: null
                      substrate_type_label: null
                      timezone: Europe/Paris
                      calibration_equation:
                        coefficient_type: 0
                        alpha: 3.4664
                        beta: 0.2689
                  summary: List all plots
          description: ''
  /v3/plots/{id}/:
    get:
      operationId: Retrieve a plot
      description: |-
        Retrieve a plot the user has access to.

        The plot is returned with information about the organization which created it, and the devices which were registered on it (if any).
      parameters:
      - in: path
        name: id
        schema:
          type: integer
        description: A unique integer value identifying this plot.
        required: true
      tags:
      - Plot
      security:
      - Token Authentication: []
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DevelopersAPIPlot'
              examples:
                DrfspecDevapiplotRetrieveEx1:
                  value:
                    id: 24503
                    name: Blue Hills
                    creation_datetime: '2024-05-03T09:23:49Z'
                    archived: false
                    meteo_vision: false
                    location:
                    - 47.01407
                    - -2.28703
                    location_text: Noirmoutier-en-l'Île, Vendée
                    organization:
                      url: https://api-prod.weenat.com/v3/organizations/farms/20958/
                      id: 20958
                      name: Jerome's Farm
                    device_count: 1
                    devices:
                    - url: https://api-prod.weenat.com/v3/devices/19348/
                      id: 19348
                      brand: Weenat
                      model_label: Soil capacitance probe
                      serial_number: W700F39
                    available_metrics:
                    - T_CAPA
                    - U_CAPA
                    - ETP
                    - SSI
                    - SSI_HOURS
                    - T_DEW
                    soil_texture: 2
                    soil_texture_label: Silty clay
                    irrigation_type: 1
                    irrigation_type_label: Drip
                    environment_type: 0
                    environment_type_label: Open-field
                    substrate_type: null
                    substrate_type_label: null
                    timezone: Europe/Paris
                    calibration_equation:
                      coefficient_type: 0
                      alpha: 3.4664
                      beta: 0.2689
                  summary: Retrieve a plot
          description: ''
components:
  schemas:
    CodeEnum:
      enum:
      - '010'
      - '011'
      type: string
      description: |-
        * `010` - 010
        * `011` - 011
    CoefficientTypeEnum:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 10
      - 11
      - 12
      type: integer
      description: |-
        * `ScaleFrequencyEquation.DEFAULT` - ScaleFrequencyEquation.DEFAULT
        * `ScaleFrequencyEquation.CLAY` - ScaleFrequencyEquation.CLAY
        * `ScaleFrequencyEquation.SILTY_CLAY` - ScaleFrequencyEquation.SILTY_CLAY
        * `ScaleFrequencyEquation.SILTY_CLAY_LOAM` - ScaleFrequencyEquation.SILTY_CLAY_LOAM
        * `ScaleFrequencyEquation.SANDY_CLAY` - ScaleFrequencyEquation.SANDY_CLAY
        * `ScaleFrequencyEquation.SANDY_CLAY_LOAM` - ScaleFrequencyEquation.SANDY_CLAY_LOAM
        * `ScaleFrequencyEquation.CLAY_LOAM` - ScaleFrequencyEquation.CLAY_LOAM
        * `ScaleFrequencyEquation.SILT` - ScaleFrequencyEquation.SILT
        * `ScaleFrequencyEquation.SILT_LOAM` - ScaleFrequencyEquation.SILT_LOAM
        * `ScaleFrequencyEquation.LOAM` - ScaleFrequencyEquation.LOAM
        * `ScaleFrequencyEquation.SAND` - ScaleFrequencyEquation.SAND
        * `ScaleFrequencyEquation.LOAMY_SAND` - ScaleFrequencyEquation.LOAMY_SAND
        * `ScaleFrequencyEquation.SANDY_LOAM` - ScaleFrequencyEquation.SANDY_LOAM
    DevelopersAPIDataDevice:
      properties:
        datetime:
          description: The timestamp of the data (ISO 8601 format)
          format: date-time
          title: Datetime
          type: string
        DD:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wind direction (degrees; e.g. 90° for a wind from the east)
          title: Dd
        DXY:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wind gust direction (degrees; e.g. 90° for a wind from the
            east)
          title: Dxy
        ETP:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Potential evapotranspiration (mm)
          title: Etp
        FF:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wind speed (km/h)
          title: Ff
        FXY:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wind gust speed (km/h)
          title: Fxy
        HPOT:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential (kPa)
          title: Hpot
        LW_D:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Leaf wetness duration (s)
          title: Lw D
        LW_V:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Leaf wetness voltage (V)
          title: Lw V
        PPFD:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Photosynthetically active radiation (µmol/s/m²)
          title: Ppfd
        PPFD_MAX:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Maximum PAR (µmol/s/m²)
          title: Ppfd Max
        PPFD_MIN:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Minimum PAR (µmol/s/m²)
          title: Ppfd Min
        RR:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Cumulative rainfall (mm)
          title: Rr
        SSI:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Solar irradiance (W/m²)
          title: Ssi
        SSI_MAX:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Maximum solar irradiance (W/m²)
          title: Ssi Max
        SSI_MIN:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Minimum solar irradiance (W/m²)
          title: Ssi Min
        T:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Temperature (°C)
          title: T
        T_CAL:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature (°C)
          title: T Cal
        T_DEW:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Dew point (°C)
          title: T Dew
        T_DRY:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Dry temperature (°C)
          title: T Dry
        T_SOIL:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature (°C)
          title: T Soil
        T_WET:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wet temperature (°C)
          title: T Wet
        U:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: 'Relative humidity (%) '
          title: U
        SF_CAPA-5:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 5cm
          title: Sf Capa-5
        SF_CAPA-10:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 10cm
          title: Sf Capa-10
        SF_CAPA-15:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 15cm
          title: Sf Capa-15
        SF_CAPA-20:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 20cm
          title: Sf Capa-20
        SF_CAPA-25:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 25cm
          title: Sf Capa-25
        SF_CAPA-30:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 30cm
          title: Sf Capa-30
        SF_CAPA-35:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 35cm
          title: Sf Capa-35
        SF_CAPA-40:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 40cm
          title: Sf Capa-40
        SF_CAPA-45:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 45cm
          title: Sf Capa-45
        SF_CAPA-50:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 50cm
          title: Sf Capa-50
        SF_CAPA-55:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 55cm
          title: Sf Capa-55
        SF_CAPA-60:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 60cm
          title: Sf Capa-60
        SF_CAPA-70:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 70cm
          title: Sf Capa-70
        SF_CAPA-80:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 80cm
          title: Sf Capa-80
        SF_CAPA-90:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 90cm
          title: Sf Capa-90
        SF_CAPA-100:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 100cm
          title: Sf Capa-100
        SF_CAPA-110:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 110cm
          title: Sf Capa-110
        SF_CAPA-120:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 120cm
          title: Sf Capa-120
        SF_CAPA-130:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 130cm
          title: Sf Capa-130
        SF_CAPA-140:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 140cm
          title: Sf Capa-140
        SF_CAPA-150:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 150cm
          title: Sf Capa-150
        SF_CAPA-160:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 160cm
          title: Sf Capa-160
        SF_CAPA-170:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 170cm
          title: Sf Capa-170
        SF_CAPA-180:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 180cm
          title: Sf Capa-180
        SF_CAPA-190:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 190cm
          title: Sf Capa-190
        SF_CAPA-200:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Scale frequency at 200cm
          title: Sf Capa-200
        T_CAPA-5:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 5cm (°C)
          title: T Capa-5
        T_CAPA-10:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 10cm (°C)
          title: T Capa-10
        T_CAPA-15:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 15cm (°C)
          title: T Capa-15
        T_CAPA-20:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 20cm (°C)
          title: T Capa-20
        T_CAPA-25:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 25cm (°C)
          title: T Capa-25
        T_CAPA-30:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 30cm (°C)
          title: T Capa-30
        T_CAPA-35:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 35cm (°C)
          title: T Capa-35
        T_CAPA-40:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 40cm (°C)
          title: T Capa-40
        T_CAPA-45:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 45cm (°C)
          title: T Capa-45
        T_CAPA-50:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 50cm (°C)
          title: T Capa-50
        T_CAPA-55:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 55cm (°C)
          title: T Capa-55
        T_CAPA-60:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 60cm (°C)
          title: T Capa-60
        T_CAPA-70:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 70cm (°C)
          title: T Capa-70
        T_CAPA-80:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 80cm (°C)
          title: T Capa-80
        T_CAPA-90:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 90cm (°C)
          title: T Capa-90
        T_CAPA-100:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 100cm (°C)
          title: T Capa-100
        T_CAPA-110:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 110cm (°C)
          title: T Capa-110
        T_CAPA-120:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 120cm (°C)
          title: T Capa-120
        T_CAPA-130:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 130cm (°C)
          title: T Capa-130
        T_CAPA-140:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 140cm (°C)
          title: T Capa-140
        T_CAPA-150:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 150cm (°C)
          title: T Capa-150
        T_CAPA-160:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 160cm (°C)
          title: T Capa-160
        T_CAPA-170:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 170cm (°C)
          title: T Capa-170
        T_CAPA-180:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 180cm (°C)
          title: T Capa-180
        T_CAPA-190:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 190cm (°C)
          title: T Capa-190
        T_CAPA-200:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 200cm (°C)
          title: T Capa-200
      required:
      - datetime
      title: DevelopersAPIDataDevice
      type: object
    DevelopersAPIDataDeviceResponse:
      items:
        $ref: '#/components/schemas/DevelopersAPIDataDevice'
      title: DevelopersAPIDataDeviceResponse
      type: array
    DevelopersAPIDataPlot:
      properties:
        datetime:
          description: The timestamp of the data (ISO 8601 format)
          format: date-time
          title: Datetime
          type: string
        DD:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wind direction (degrees; e.g. 90° for a wind from the east)
          title: Dd
        DXY:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wind gust direction (degrees; e.g. 90° for a wind from the
            east)
          title: Dxy
        ECP:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Electro-conductivity (dS/m)
          title: Ecp
        ETP:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Potential evapotranspiration (mm)
          title: Etp
        FF:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wind speed (km/h)
          title: Ff
        FXY:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wind gust speed (km/h)
          title: Fxy
        LW_D:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Leaf wetness duration (s)
          title: Lw D
        LW_V:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Leaf wetness voltage (V)
          title: Lw V
        PPFD:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Photosynthetically active radiation (µmol/s/m²)
          title: Ppfd
        PPFD_MAX:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Maximum PAR (µmol/s/m²)
          title: Ppfd Max
        PPFD_MIN:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Minimum PAR (µmol/s/m²)
          title: Ppfd Min
        RR:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Cumulative rainfall (mm)
          title: Rr
        SSI:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Solar irradiance (W/m²)
          title: Ssi
        SSI_MAX:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Maximum solar irradiance (W/m²)
          title: Ssi Max
        SSI_MIN:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Minimum solar irradiance (W/m²)
          title: Ssi Min
        SWC:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content (%)
          title: Swc
        T:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Temperature (°C)
          title: T
        T_DEW:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Dew point (°C)
          title: T Dew
        T_DRY:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Dry temperature (°C)
          title: T Dry
        T_SOIL:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature (°C)
          title: T Soil
        T_WET:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Wet temperature (°C)
          title: T Wet
        U:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: 'Relative humidity (%) '
          title: U
        T_CAL-5:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 5cm (°C)
          title: T Cal-5
        T_CAL-10:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 10cm (°C)
          title: T Cal-10
        T_CAL-15:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 15cm (°C)
          title: T Cal-15
        T_CAL-20:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 20cm (°C)
          title: T Cal-20
        T_CAL-25:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 25cm (°C)
          title: T Cal-25
        T_CAL-30:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 30cm (°C)
          title: T Cal-30
        T_CAL-35:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 35cm (°C)
          title: T Cal-35
        T_CAL-40:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 40cm (°C)
          title: T Cal-40
        T_CAL-45:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 45cm (°C)
          title: T Cal-45
        T_CAL-50:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 50cm (°C)
          title: T Cal-50
        T_CAL-55:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 55cm (°C)
          title: T Cal-55
        T_CAL-60:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 60cm (°C)
          title: T Cal-60
        T_CAL-70:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 70cm (°C)
          title: T Cal-70
        T_CAL-80:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 80cm (°C)
          title: T Cal-80
        T_CAL-90:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 90cm (°C)
          title: T Cal-90
        T_CAL-100:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 100cm (°C)
          title: T Cal-100
        T_CAL-110:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 110cm (°C)
          title: T Cal-110
        T_CAL-120:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 120cm (°C)
          title: T Cal-120
        T_CAL-130:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 130cm (°C)
          title: T Cal-130
        T_CAL-140:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 140cm (°C)
          title: T Cal-140
        T_CAL-150:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 150cm (°C)
          title: T Cal-150
        T_CAL-160:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 160cm (°C)
          title: T Cal-160
        T_CAL-170:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 170cm (°C)
          title: T Cal-170
        T_CAL-180:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 180cm (°C)
          title: T Cal-180
        T_CAL-190:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 190cm (°C)
          title: T Cal-190
        T_CAL-200:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 200cm (°C)
          title: T Cal-200
        HPOT-5:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 5cm (kPa)
          title: Hpot-5
        HPOT-10:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 10cm (kPa)
          title: Hpot-10
        HPOT-15:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 15cm (kPa)
          title: Hpot-15
        HPOT-20:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 20cm (kPa)
          title: Hpot-20
        HPOT-25:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 25cm (kPa)
          title: Hpot-25
        HPOT-30:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 30cm (kPa)
          title: Hpot-30
        HPOT-35:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 35cm (kPa)
          title: Hpot-35
        HPOT-40:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 40cm (kPa)
          title: Hpot-40
        HPOT-45:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 45cm (kPa)
          title: Hpot-45
        HPOT-50:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 50cm (kPa)
          title: Hpot-50
        HPOT-55:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 55cm (kPa)
          title: Hpot-55
        HPOT-60:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 60cm (kPa)
          title: Hpot-60
        HPOT-70:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 70cm (kPa)
          title: Hpot-70
        HPOT-80:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 80cm (kPa)
          title: Hpot-80
        HPOT-90:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 90cm (kPa)
          title: Hpot-90
        HPOT-100:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 100cm (kPa)
          title: Hpot-100
        HPOT-110:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 110cm (kPa)
          title: Hpot-110
        HPOT-120:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 120cm (kPa)
          title: Hpot-120
        HPOT-130:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 130cm (kPa)
          title: Hpot-130
        HPOT-140:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 140cm (kPa)
          title: Hpot-140
        HPOT-150:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 150cm (kPa)
          title: Hpot-150
        HPOT-160:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 160cm (kPa)
          title: Hpot-160
        HPOT-170:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 170cm (kPa)
          title: Hpot-170
        HPOT-180:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 180cm (kPa)
          title: Hpot-180
        HPOT-190:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 190cm (kPa)
          title: Hpot-190
        HPOT-200:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water potential at 200cm (kPa)
          title: Hpot-200
        T_CAPA-5:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 5cm (°C)
          title: T Capa-5
        T_CAPA-10:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 10cm (°C)
          title: T Capa-10
        T_CAPA-15:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 15cm (°C)
          title: T Capa-15
        T_CAPA-20:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 20cm (°C)
          title: T Capa-20
        T_CAPA-25:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 25cm (°C)
          title: T Capa-25
        T_CAPA-30:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 30cm (°C)
          title: T Capa-30
        T_CAPA-35:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 35cm (°C)
          title: T Capa-35
        T_CAPA-40:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 40cm (°C)
          title: T Capa-40
        T_CAPA-45:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 45cm (°C)
          title: T Capa-45
        T_CAPA-50:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 50cm (°C)
          title: T Capa-50
        T_CAPA-55:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 55cm (°C)
          title: T Capa-55
        T_CAPA-60:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 60cm (°C)
          title: T Capa-60
        T_CAPA-70:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 70cm (°C)
          title: T Capa-70
        T_CAPA-80:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 80cm (°C)
          title: T Capa-80
        T_CAPA-90:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 90cm (°C)
          title: T Capa-90
        T_CAPA-100:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 100cm (°C)
          title: T Capa-100
        T_CAPA-110:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 110cm (°C)
          title: T Capa-110
        T_CAPA-120:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 120cm (°C)
          title: T Capa-120
        T_CAPA-130:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 130cm (°C)
          title: T Capa-130
        T_CAPA-140:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 140cm (°C)
          title: T Capa-140
        T_CAPA-150:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 150cm (°C)
          title: T Capa-150
        T_CAPA-160:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 160cm (°C)
          title: T Capa-160
        T_CAPA-170:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 170cm (°C)
          title: T Capa-170
        T_CAPA-180:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 180cm (°C)
          title: T Capa-180
        T_CAPA-190:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 190cm (°C)
          title: T Capa-190
        T_CAPA-200:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil temperature at 200cm (°C)
          title: T Capa-200
        U_CAPA-5:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 5cm (%)
          title: U Capa-5
        U_CAPA-10:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 10cm (%)
          title: U Capa-10
        U_CAPA-15:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 15cm (%)
          title: U Capa-15
        U_CAPA-20:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 20cm (%)
          title: U Capa-20
        U_CAPA-25:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 25cm (%)
          title: U Capa-25
        U_CAPA-30:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 30cm (%)
          title: U Capa-30
        U_CAPA-35:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 35cm (%)
          title: U Capa-35
        U_CAPA-40:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 40cm (%)
          title: U Capa-40
        U_CAPA-45:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 45cm (%)
          title: U Capa-45
        U_CAPA-50:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 50cm (%)
          title: U Capa-50
        U_CAPA-55:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 55cm (%)
          title: U Capa-55
        U_CAPA-60:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 60cm (%)
          title: U Capa-60
        U_CAPA-70:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 70cm (%)
          title: U Capa-70
        U_CAPA-80:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 80cm (%)
          title: U Capa-80
        U_CAPA-90:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 90cm (%)
          title: U Capa-90
        U_CAPA-100:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 100cm (%)
          title: U Capa-100
        U_CAPA-110:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 110cm (%)
          title: U Capa-110
        U_CAPA-120:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 120cm (%)
          title: U Capa-120
        U_CAPA-130:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 130cm (%)
          title: U Capa-130
        U_CAPA-140:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 140cm (%)
          title: U Capa-140
        U_CAPA-150:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 150cm (%)
          title: U Capa-150
        U_CAPA-160:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 160cm (%)
          title: U Capa-160
        U_CAPA-170:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 170cm (%)
          title: U Capa-170
        U_CAPA-180:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 180cm (%)
          title: U Capa-180
        U_CAPA-190:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 190cm (%)
          title: U Capa-190
        U_CAPA-200:
          anyOf:
          - type: number
          - type: 'null'
          default: null
          description: Soil water content at 200cm (%)
          title: U Capa-200
      required:
      - datetime
      title: DevelopersAPIDataPlot
      type: object
    DevelopersAPIDataPlotResponse:
      items:
        $ref: '#/components/schemas/DevelopersAPIDataPlot'
      title: DevelopersAPIDataPlotResponse
      type: array
    DevelopersAPIDevice:
      type: object
      properties:
        id:
          type: integer
          description: Device identifier.
        brand:
          type: string
          description: Manufacturer of the device.
        serial_number:
          type: string
          description: Serial number identifying the device.
        model:
          type: string
          description: Model of the device (code form).
        model_label:
          type: string
          description: Model of the device (human-readable form).
        sensor_brand:
          type: string
          nullable: true
          readOnly: true
          description: Capacitance probe brand.
        available_metrics:
          type: array
          items:
            type: string
          readOnly: true
          description: Weather metrics measured by the device.
        registered_by:
          allOf:
          - $ref: '#/components/schemas/DevelopersAPIDeviceRegisteredBy'
          description: Information about the organization (farm, network or affiliate)
            through which the device is available.
        location:
          type: array
          items:
            type: number
            format: double
          minLength: 2
          maxLength: 2
          nullable: true
          readOnly: true
          description: Coordinates (latitude, longitude) where the device was last
            located. May be null if the device hasn't broadcast yet.
        location_text:
          type: string
          description: Reverse geocoding of the device location.
        broadcast_network_provider:
          type: string
          readOnly: true
          description: Provider of the network broadcast infrastructure.
        latest_gps_broadcast:
          type: string
          format: date-time
          description: Datetime of the most recent GPS data received from the device.
        latest_measurement_broadcast:
          type: string
          format: date-time
          description: Datetime of the most recent weather data received from the
            device.
        timezone:
          type: string
          readOnly: true
          description: Timezone of the device
        ongoing_fault_events:
          type: array
          items:
            type: object
            additionalProperties: {}
          readOnly: true
          description: Active faults on the device.
      required:
      - available_metrics
      - brand
      - broadcast_network_provider
      - id
      - latest_gps_broadcast
      - latest_measurement_broadcast
      - location
      - location_text
      - model
      - model_label
      - ongoing_fault_events
      - registered_by
      - sensor_brand
      - serial_number
      - timezone
    DevelopersAPIDeviceRegisteredBy:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
          description: Hyperlink to the organization resource.
        network_id:
          type: integer
          nullable: true
          readOnly: true
          description: Network identifier of affiliate organization.
        id:
          type: integer
          readOnly: true
          description: Organization identifier.
        name:
          type: string
          readOnly: true
          description: Name of the organization.
        datetime:
          type: string
          format: date-time
          description: Datetime of registration of the device by the organization.
      required:
      - datetime
      - id
      - name
      - network_id
      - url
    DevelopersAPIOrganization:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          description: Farm identifier.
        name:
          type: string
          description: Name of the farm.
          maxLength: 100
        creation_datetime:
          type: string
          format: date-time
          description: Creation datetime of the farm, in ISO 8601 format.
        subscription_plan:
          type: string
          readOnly: true
          description: Current subscription plan of the farm.
        owner:
          allOf:
          - $ref: '#/components/schemas/DevelopersAPIOwner'
          description: Information about the farm owner. If there is no known owner,
            this field is null.
        device_count:
          type: integer
          description: Number of active devices registered by the farm.
        plot_count:
          type: integer
          description: Number of active plots operated by the farm.
        is_network:
          type: boolean
          readOnly: true
          description: Whether the farm is a network or not.
        parent_network:
          allOf:
          - $ref: '#/components/schemas/DevelopersAPIParentNetwork'
          description: Information about the parent network, if any. If the farm is
            not part of a network, this field is null.
      required:
      - creation_datetime
      - device_count
      - id
      - is_network
      - name
      - owner
      - parent_network
      - plot_count
      - subscription_plan
    DevelopersAPIOwner:
      type: object
      properties:
        full_name:
          type: string
          description: Full name of the farm owner.
        email:
          type: string
          format: email
          title: Email address
          description: Email of the farm owner.
          maxLength: 254
      required:
      - email
      - full_name
    DevelopersAPIParentNetwork:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
          description: Hyperlink to the network resource.
        id:
          type: integer
          readOnly: true
          description: Network identifier.
        name:
          type: string
          description: Name of the network.
          maxLength: 100
      required:
      - id
      - name
      - url
    DevelopersAPIPlot:
      type: object
      properties:
        id:
          type: integer
          readOnly: true
          description: Plot identifier.
        name:
          type: string
          description: Name of the plot.
          maxLength: 100
        creation_datetime:
          type: string
          format: date-time
          description: Creation datetime of the plot, in ISO 8601 format.
        archived:
          type: boolean
          description: Archived plots are read-only.
        meteo_vision:
          type: boolean
          description: Whether Meteo Vision is activated on the plot or not.
        location:
          type: array
          items:
            type: number
            format: double
          minLength: 2
          maxLength: 2
          readOnly: true
          description: Coordinates (latitude, longitude) where the plot is located.
        geojson:
          type: array
          items:
            type: number
            format: double
          minLength: 2
          maxLength: 2
          readOnly: true
          description: Geojson Coordinates (latitude, longitude) where the plot is
            located.
        location_text:
          type: string
          nullable: true
          description: Reverse geocoding of the plot location.
          maxLength: 200
        organization:
          allOf:
          - $ref: '#/components/schemas/DevelopersAPIPlotOrganization'
          description: Information about the organization (farm or network affiliate)
            through which the device is available.
        device_count:
          type: integer
          readOnly: true
          description: Number of active devices registered on the plot.
        devices:
          type: array
          items:
            $ref: '#/components/schemas/DevelopersAPIPlotDevice'
          description: Active devices registered on the plot.
        available_metrics:
          type: array
          items:
            type: string
          readOnly: true
          description: Weather metrics measured on the plot.
        soil_texture:
          nullable: true
          description: |-
            USDA Soil texture (code form).

            * `1` - Clay
            * `2` - Silty clay
            * `3` - Silty clay loam
            * `4` - Sandy clay
            * `5` - Sandy clay loam
            * `6` - Clay loam
            * `7` - Silt
            * `8` - Silt loam
            * `9` - Loam
            * `10` - Sand
            * `11` - Loamy sand
            * `12` - Sandy loam
          minimum: 0
          maximum: 32767
          oneOf:
          - $ref: '#/components/schemas/SoilTextureEnum'
          - $ref: '#/components/schemas/NullEnum'
        soil_texture_label:
          type: string
          description: USDA Soil texture (human-readable form).
        irrigation_type:
          allOf:
          - $ref: '#/components/schemas/IrrigationTypeEnum'
          nullable: true
          readOnly: true
          description: Irrigation type (code form).
        irrigation_type_label:
          type: string
          nullable: true
          readOnly: true
          description: Irrigation type (human-readable form).
        environment_type:
          allOf:
          - $ref: '#/components/schemas/EnvironmentTypeEnum'
          nullable: true
          readOnly: true
          description: Cultivation environment type (code form).
        environment_type_label:
          type: string
          nullable: true
          readOnly: true
          description: Cultivation environment type (human-readable form).
        substrate_type:
          allOf:
          - $ref: '#/components/schemas/SubstrateTypeEnum'
          nullable: true
          readOnly: true
          description: Agricultural substrate type (code form).
        substrate_type_label:
          type: string
          nullable: true
          readOnly: true
          description: Agricultural substrate type (human-readable form).
        timezone:
          type: string
          readOnly: true
          description: Timezone of the device
        calibration_equation:
          allOf:
          - $ref: '#/components/schemas/DevelopersAPIPlotCalibrationEquation'
          description: Equation calibration Y = alpha + beta * x with Y the soil water
            content and x the scale frequency
      required:
      - available_metrics
      - calibration_equation
      - creation_datetime
      - device_count
      - devices
      - environment_type
      - environment_type_label
      - geojson
      - id
      - irrigation_type
      - irrigation_type_label
      - location
      - meteo_vision
      - name
      - organization
      - soil_texture_label
      - substrate_type
      - substrate_type_label
      - timezone
    DevelopersAPIPlotCalibrationEquation:
      type: object
      properties:
        coefficient_type:
          $ref: '#/components/schemas/CoefficientTypeEnum'
        alpha:
          type: number
          format: double
        beta:
          type: number
          format: double
    DevelopersAPIPlotDevice:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
          description: Hyperlink to the device resource.
        id:
          type: integer
          description: Device identifier.
        brand:
          type: string
          description: Manufacturer of the device.
        model_label:
          type: string
          description: Model of the device (human-readable form).
        depth:
          type: string
        serial_number:
          type: string
          description: Serial number identifying the device.
      required:
      - brand
      - depth
      - id
      - model_label
      - serial_number
      - url
    DevelopersAPIPlotOrganization:
      type: object
      properties:
        url:
          type: string
          format: uri
          readOnly: true
          description: Hyperlink to the organization resource.
        id:
          type: integer
          description: Organization identifier.
        name:
          type: string
          description: Name of the organization.
      required:
      - id
      - name
      - url
    EnvironmentTypeEnum:
      enum:
      - 0
      - 1
      type: integer
    IrrigationTypeEnum:
      enum:
      - -1
      - 0
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      type: integer
    NullEnum:
      enum:
      - null
    PaginatedDevelopersAPIDeviceList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/DevelopersAPIDevice'
    PaginatedDevelopersAPIPlotList:
      type: object
      required:
      - count
      - results
      properties:
        count:
          type: integer
          example: 123
        next:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=400&limit=100
        previous:
          type: string
          nullable: true
          format: uri
          example: http://api.example.org/accounts/?offset=200&limit=100
        results:
          type: array
          items:
            $ref: '#/components/schemas/DevelopersAPIPlot'
    SoilTextureEnum:
      enum:
      - 1
      - 2
      - 3
      - 4
      - 5
      - 6
      - 7
      - 8
      - 9
      - 10
      - 11
      - 12
      type: integer
      description: |-
        * `1` - Clay
        * `2` - Silty clay
        * `3` - Silty clay loam
        * `4` - Sandy clay
        * `5` - Sandy clay loam
        * `6` - Clay loam
        * `7` - Silt
        * `8` - Silt loam
        * `9` - Loam
        * `10` - Sand
        * `11` - Loamy sand
        * `12` - Sandy loam
    SubstrateTypeEnum:
      enum:
      - 0
      - 1
      - 2
      - 3
      - 4
      type: integer
    WeenatCodeEnum:
      enum:
      - '010'
      - '011'
      type: string
      description: |-
        * `010` - 010
        * `011` - 011
    non_field_error_010_011:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/CodeEnum'
        weenatCode:
          $ref: '#/components/schemas/WeenatCodeEnum'
        message:
          type: string
          default: Invalid input.
      required:
      - code
      - weenatCode
    validation_error_010_011:
      type: object
      properties:
        non_field_errors:
          type: array
          items:
            $ref: '#/components/schemas/non_field_error_010_011'
  securitySchemes:
    Token Authentication:
      type: apiKey
      in: header
      name: Authorization
      description: Prefix the value with "Weenat-Api-Key", e.g. "Weenat-Api-Key xxx"
servers:
- url: https://api-prod.weenat.com
tags:
- name: Farm
  description: Retrieve information on farms
- name: Network
  description: Retrieve information on networks and affiliates
- name: Device
  description: Retrieve information on sensors
- name: Plot
  description: Retrieve information on plots
- name: Data
  description: Retrieve measured or calculated data from your plots and sensors
