NAV
shell

Copyright Agreement

Copyright © 2016 ET Water Systems, Inc. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at:

http://www.eclipse.org/legal/epl-v10.html

Contributors: ET Water Systems, Inc. - initial API and implementation

CONTRIBUTION POLICY:

(The following paragraph is not intended to limit the rights granted to you to modify and distribute these APIs under the terms of licenses that may apply to the API.)

Contributions to this API are subject to your understanding and acceptance of the terms and conditions of the ET Water Systems, Inc. Contributor Agreement, which can be found online at:

http://www.etwater.com/legal/contributoragreement/

Introducing the Unity API

ET Unity is a powerful, highly scalable open platform for water management and a wealth of other environmental services. We have built a sophisticated set of data from many different sources, and used years of experience to transform and analyze this information. Through a growing set of REST APIs you can directly gain access to the platform’s services and insights for easy integration.

Access Environmental Insights:

We have made the Unity APIs available under an open source access and distribution model. As a result, it is a simple process to start using the platform services to enable your development efforts, and to start enriching your applications and services.

All you need to do:

API Interaction

Any tool for making HTTP requests is suitable to work with the Unity API. Unity API is a REST-like API and following most of the common agreements on HTTP Methods usage. Communication is done in JSON format so any request to the API should be a valid JSON document.

Requests

Any request to the API should be sent via HTTP protocol using corresponding HTTP Method. Requests that contain a request body should have a HTTP header “Content-Type” with a description of content being sent. Also every request should be singed with a personal access token placed in a header.

Header Example:

Authorization: Bearer MWQzMjQ2NjU1NjgxMGQwMzI3MzY0OTE5NmU0ZTQ2NzE3YzYxNmVkZGYxNGE1MWVjOGVkMjZlNjVjMzQ1NDY1NQ

HTTP Methods

Method Usage
GET Used for information retrieval. Any request using the GET method is read-only and will not affect any of the objects you are querying
DELETE This method is used to remove any object or collection of objects
POST Used for objects creation. Request should contain all the required fields for an object that being created. Also could be used for performing an actions. For instance, “Force irrigation” action
PUT Used for updating the object.
PATCH Used for bulk operations on multiple objects.

HTTP Statuses

Each API response contains a corresponding HTTP Status Code. Codes in a range 200..300 indicate a successful action and means that no error was encountered. Codes in a range 400..500 indicate that there was an issue with the request that was sent. Codes in a range 400..500 indicate a server side problem and it means that we are having an issue on our end and cannot fulfill your request currently.

Responses

Typically every response contains a response body as a JSON document. An exception to this are DELETE requests. They always are responded with HTTP status 204 No Content end empty response body. Most of the responses contain a requested object or a list of object, but in some cases results are wrapped in a structure that included pagination info.

Example of response with pagination:

{
    "controllerList": [
        {
            "id": "example string value",
            "serialNumber": "example string value",
            "activated": true,
            "projectId": "example string value"
        }
    ],
    "page": 843,
    "size": 213,
    "total": 525
}

HTTP Clients

cURL

cURL is installed by default in most popular *nix distributives. It is a widely spread tool and a library for making HTTP requests. cURL is a command line utility and does not have a any UI.

Simple request example:

curl 'https://developer-api.etwater.com/api/v1/hello-unity'

Response:

{
    "greetings": "Hello from Unity platform",
    "requestMethod: "GET"
}

Request method should be set through -X console parameter.

PUT request method example:

curl -X PUT 'https://developer-api.etwater.com/api/v1/hello-unity'

Response:

{
    "greetings": "Hello from Unity platform",
    "requestMethod: "PUT"
}

Request headers should be added should be set through -H console parameter.

Content-Type and Authorization headers example:

curl -X PUT -H'Content-Type: application/json' -H'Authorization:  Bearer $ACCESS_TOKEN' 'https://developer-api.etwater.com/api/v1/hello-unity/auth'

Response:

{
    "greetings": "Hello from Unity platform",
    "requestMethod: "PUT",
    "isAuthenticated": true
}

In last example $ACCESS_TOKEN placeholder should be replaced by real access token.

POSTMAN

On of the most popular UI application to interact with the HTTP web services is a POSTMAN application (https://www.getpostman.com/). It has an intuitive UI and available on all major platforms as a native application or as a Google’s Chrome extension.

In POSTMAN last cURL request will look like this:

And as a benefit it is possible to generate cURL requests from POSTMAN UI.

PHPStorm IDE REST Client

PHP as most commonly used language in web development often being used with a PHPStorm IDE. This IDE has a built-in REST Client UI tool that could be used to interact with Unity APIs.

REST client could be found under the Tools menu section:

And the last cURL example in this client will look like:

In general, everything remains the same, except an easier HTTP request options setting through IDE UI.

V1 | API Gateway OAuth

The API Gateway OAuth is used to create, manage and validate logins for your users and give them access to ET Unity services.

Logout

Request

curl "https://developer-api.etwater.com/api/v1/oauth/logout" \
-X POST \
-H "Authorization: example string value"

On success, the above request returns response like

no reponse

HTTP Request

POST /api/v1/oauth/logout

Request parameters

Name Type Part Required Description
Authorization string header true

HTTP Responses

Code Description
204 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Get Authentication Token

Request

curl "https://developer-api.etwater.com/api/v1/oauth/token" \
-X POST \
-H "Authorization: example string value" \
-H "Content-Type: application/x-www-form-urlencoded" \
--data "grant_type=example+string+value&username=example+string+value&password=example+string+value&scope=example+string+value&is_single_use=example+string+value"

On success, the above request returns response like

{
    "access_token": "example string value",
    "expires_in": 351,
    "token_type": "example string value",
    "scope": "example string value",
    "refresh_token": "example string value"
}

HTTP Request

POST /api/v1/oauth/token

Request parameters

Name Type Part Required Description
grant_type string formData true
username string formData false
password string formData false
scope string formData false
is_single_use string formData false
Authorization string header true
Content-Type string header true

HTTP Responses

Code Description
200 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
access_token string false
expires_in integer false
token_type string false
scope string false
refresh_token string false

V1 | CCU Alerts Report API

Create CCU alerts report

Request

curl "https://developer-api.etwater.com/api/v1/reports/ccu-alerts-report?startDate=example+string+value&endDate=example+string+value&interval=example+string+value" \
-X POST \
-H "Authorization: example string value" \
--data "{
    \"filters\": {
        \"projectControllers\": {
            \"projectControllers\": [
                {
                    \"projectId\": \"example string value\",
                    \"controllerIdList\": [
                        \"example string value\"
                    ]
                }
            ]
        },
        \"alertCodes\": {
            \"codes\": [
                761
            ]
        },
        \"period\": {
            \"startDate\": \"example string value\",
            \"endDate\": \"example string value\",
            \"interval\": \"DAY\"
        }
    },
    \"meta\": {
        \"example_property_name\": \"example string value\"
    }
}"

On success, the above request returns response like

{
    "id": "example string value",
    "userId": "example string value",
    "data": {
        "total": {
            "totalAlertsCount": 345,
            "affectedProjectsCount": 330,
            "affectedControllersCount": 69,
            "projects": [
                {
                    "projectId": "example string value",
                    "name": "example string value",
                    "ccuAlertsStats": [
                        {
                            "alertCode": 53,
                            "alertCodeName": "example string value",
                            "totalAlertsCount": 667
                        }
                    ],
                    "controllers": [
                        {
                            "controllerId": "example string value",
                            "name": "example string value",
                            "ccuAlertsStats": [
                                {
                                    "alertCode": 651,
                                    "alertCodeName": "example string value",
                                    "totalAlertsCount": 391
                                }
                            ],
                            "zones": [
                                {
                                    "zoneId": "example string value",
                                    "zoneNumber": 800,
                                    "name": "example string value",
                                    "ccuAlertsStats": [
                                        {
                                            "alertCode": 763,
                                            "alertCodeName": "example string value",
                                            "totalAlertsCount": 895
                                        }
                                    ],
                                    "ccuAlerts": [
                                        {
                                            "userId": "example string value",
                                            "userName": "example string value",
                                            "projectId": "example string value",
                                            "projectName": "example string value",
                                            "controllerId": "example string value",
                                            "controllerName": "example string value",
                                            "zoneId": "example string value",
                                            "zoneName": "example string value",
                                            "zoneNumber": 252,
                                            "alertCode": 94,
                                            "alertCodeName": "example string value",
                                            "date": "example string value"
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        "buckets": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "totalAlertsCount": 261,
                "projects": [
                    {
                        "projectId": "example string value",
                        "name": "example string value",
                        "ccuAlertsStats": [
                            {
                                "alertCode": 485,
                                "alertCodeName": "example string value",
                                "totalAlertsCount": 908
                            }
                        ],
                        "controllers": [
                            {
                                "controllerId": "example string value",
                                "name": "example string value",
                                "ccuAlertsStats": [
                                    {
                                        "alertCode": 289,
                                        "alertCodeName": "example string value",
                                        "totalAlertsCount": 570
                                    }
                                ],
                                "zones": [
                                    {
                                        "zoneId": "example string value",
                                        "zoneNumber": 916,
                                        "name": "example string value",
                                        "ccuAlertsStats": [
                                            {
                                                "alertCode": 676,
                                                "alertCodeName": "example string value",
                                                "totalAlertsCount": 914
                                            }
                                        ],
                                        "ccuAlerts": [
                                            {
                                                "userId": "example string value",
                                                "userName": "example string value",
                                                "projectId": "example string value",
                                                "projectName": "example string value",
                                                "controllerId": "example string value",
                                                "controllerName": "example string value",
                                                "zoneId": "example string value",
                                                "zoneName": "example string value",
                                                "zoneNumber": 853,
                                                "alertCode": 219,
                                                "alertCodeName": "example string value",
                                                "date": "example string value"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ],
        "bucketsTotal": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "totalAlertsCount": 546,
                "affectedProjectsCount": 248,
                "affectedControllersCount": 546
            }
        ]
    },
    "filters": {
        "projectControllers": {
            "projectControllers": [
                {
                    "projectId": "example string value",
                    "controllerIdList": [
                        "example string value"
                    ]
                }
            ]
        },
        "alertCodes": {
            "codes": [
                835
            ]
        },
        "period": {
            "startDate": "example string value",
            "endDate": "example string value",
            "interval": "DAY"
        }
    },
    "meta": {
        "example_property_name": "example string value"
    }
}

HTTP Request

POST /api/v1/reports/ccu-alerts-report

Request parameters

Name Type Part Required Description
Authorization string header true
startDate string query true
endDate string query true
interval string query false
CcuAlertsReportCreateRequest CcuAlertsReportCreateRequest body true

CcuAlertsReportCreateRequest

Name Type Required Description
filters ReportFilters false
meta Object for field meta false

ReportFilters

Name Type Required Description
projectControllers ProjectControllersFilter false
alertCodes AlertCodesFilter false
period PeriodFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

AlertCodesFilter

Name Type Required Description
codes integer[ ] false

PeriodFilter

Name Type Required Description
startDate string false
endDate string false
interval string false

Object for field meta

Name Type Required Description
* string false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
userId string false
data ReportData false
filters ReportFilters false
meta Object for field meta false

ReportData

Name Type Required Description
total Total false
buckets Bucket[ ] false
bucketsTotal BucketTotal[ ] false

Total

Name Type Required Description
totalAlertsCount integer false
affectedProjectsCount integer false
affectedControllersCount integer false
projects Project[ ] false

Project

Name Type Required Description
projectId string false
name string false
ccuAlertsStats CcuAlertsStatsItem[ ] false
controllers Controller[ ] false

CcuAlertsStatsItem

Name Type Required Description
alertCode integer false
alertCodeName string false
totalAlertsCount integer false

Controller

Name Type Required Description
controllerId string false
name string false
ccuAlertsStats CcuAlertsStatsItem[ ] false
zones Zone[ ] false

Zone

Name Type Required Description
zoneId string false
zoneNumber integer false
name string false
ccuAlertsStats CcuAlertsStatsItem[ ] false
ccuAlerts CcuAlert[ ] false

CcuAlert

Name Type Required Description
userId string false
userName string false
projectId string false
projectName string false
controllerId string false
controllerName string false
zoneId string false
zoneName string false
zoneNumber integer false
alertCode integer false
alertCodeName string false
date string false

Bucket

Name Type Required Description
dateStart string false
dateEnd string false
totalAlertsCount integer false
projects Project[ ] false

BucketTotal

Name Type Required Description
dateStart string false
dateEnd string false
totalAlertsCount integer false
affectedProjectsCount integer false
affectedControllersCount integer false

ReportFilters

Name Type Required Description
projectControllers ProjectControllersFilter false
alertCodes AlertCodesFilter false
period PeriodFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

AlertCodesFilter

Name Type Required Description
codes integer[ ] false

PeriodFilter

Name Type Required Description
startDate string false
endDate string false
interval string false

Object for field meta

Name Type Required Description
* string false

Get CCU alerts report

Request

curl "https://developer-api.etwater.com/api/v1/reports/ccu-alerts-report/{id}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "userId": "example string value",
    "filters": {
        "projectControllers": {
            "projectControllers": [
                {
                    "projectId": "example string value",
                    "controllerIdList": [
                        "example string value"
                    ]
                }
            ]
        },
        "alertCodes": {
            "codes": [
                76
            ]
        },
        "period": {
            "startDate": "example string value",
            "endDate": "example string value",
            "interval": "DAY"
        }
    },
    "data": {
        "total": {
            "totalAlertsCount": 456,
            "affectedProjectsCount": 58,
            "affectedControllersCount": 98,
            "projects": [
                {
                    "projectId": "example string value",
                    "name": "example string value",
                    "ccuAlertsStats": [
                        {
                            "alertCode": 166,
                            "alertCodeName": "example string value",
                            "totalAlertsCount": 390
                        }
                    ],
                    "controllers": [
                        {
                            "controllerId": "example string value",
                            "name": "example string value",
                            "ccuAlertsStats": [
                                {
                                    "alertCode": 795,
                                    "alertCodeName": "example string value",
                                    "totalAlertsCount": 491
                                }
                            ],
                            "zones": [
                                {
                                    "zoneId": "example string value",
                                    "zoneNumber": 692,
                                    "name": "example string value",
                                    "ccuAlertsStats": [
                                        {
                                            "alertCode": 68,
                                            "alertCodeName": "example string value",
                                            "totalAlertsCount": 763
                                        }
                                    ],
                                    "ccuAlerts": [
                                        {
                                            "userId": "example string value",
                                            "userName": "example string value",
                                            "projectId": "example string value",
                                            "projectName": "example string value",
                                            "controllerId": "example string value",
                                            "controllerName": "example string value",
                                            "zoneId": "example string value",
                                            "zoneName": "example string value",
                                            "zoneNumber": 596,
                                            "alertCode": 252,
                                            "alertCodeName": "example string value",
                                            "date": "example string value"
                                        }
                                    ]
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        "buckets": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "totalAlertsCount": 417,
                "projects": [
                    {
                        "projectId": "example string value",
                        "name": "example string value",
                        "ccuAlertsStats": [
                            {
                                "alertCode": 331,
                                "alertCodeName": "example string value",
                                "totalAlertsCount": 49
                            }
                        ],
                        "controllers": [
                            {
                                "controllerId": "example string value",
                                "name": "example string value",
                                "ccuAlertsStats": [
                                    {
                                        "alertCode": 226,
                                        "alertCodeName": "example string value",
                                        "totalAlertsCount": 947
                                    }
                                ],
                                "zones": [
                                    {
                                        "zoneId": "example string value",
                                        "zoneNumber": 400,
                                        "name": "example string value",
                                        "ccuAlertsStats": [
                                            {
                                                "alertCode": 56,
                                                "alertCodeName": "example string value",
                                                "totalAlertsCount": 887
                                            }
                                        ],
                                        "ccuAlerts": [
                                            {
                                                "userId": "example string value",
                                                "userName": "example string value",
                                                "projectId": "example string value",
                                                "projectName": "example string value",
                                                "controllerId": "example string value",
                                                "controllerName": "example string value",
                                                "zoneId": "example string value",
                                                "zoneName": "example string value",
                                                "zoneNumber": 925,
                                                "alertCode": 841,
                                                "alertCodeName": "example string value",
                                                "date": "example string value"
                                            }
                                        ]
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ],
        "bucketsTotal": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "totalAlertsCount": 82,
                "affectedProjectsCount": 133,
                "affectedControllersCount": 254
            }
        ]
    },
    "meta": {
        "example_property_name": "example string value"
    }
}

HTTP Request

GET /api/v1/reports/ccu-alerts-report/{id}

Request parameters

Name Type Part Required Description
Authorization string header true
id string path true

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
userId string false
filters ReportFilters false
data ReportData false
meta Object for field meta false

ReportFilters

Name Type Required Description
projectControllers ProjectControllersFilter false
alertCodes AlertCodesFilter false
period PeriodFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

AlertCodesFilter

Name Type Required Description
codes integer[ ] false

PeriodFilter

Name Type Required Description
startDate string false
endDate string false
interval string false

ReportData

Name Type Required Description
total Total false
buckets Bucket[ ] false
bucketsTotal BucketTotal[ ] false

Total

Name Type Required Description
totalAlertsCount integer false
affectedProjectsCount integer false
affectedControllersCount integer false
projects Project[ ] false

Project

Name Type Required Description
projectId string false
name string false
ccuAlertsStats CcuAlertsStatsItem[ ] false
controllers Controller[ ] false

CcuAlertsStatsItem

Name Type Required Description
alertCode integer false
alertCodeName string false
totalAlertsCount integer false

Controller

Name Type Required Description
controllerId string false
name string false
ccuAlertsStats CcuAlertsStatsItem[ ] false
zones Zone[ ] false

Zone

Name Type Required Description
zoneId string false
zoneNumber integer false
name string false
ccuAlertsStats CcuAlertsStatsItem[ ] false
ccuAlerts CcuAlert[ ] false

CcuAlert

Name Type Required Description
userId string false
userName string false
projectId string false
projectName string false
controllerId string false
controllerName string false
zoneId string false
zoneName string false
zoneNumber integer false
alertCode integer false
alertCodeName string false
date string false

Bucket

Name Type Required Description
dateStart string false
dateEnd string false
totalAlertsCount integer false
projects Project[ ] false

BucketTotal

Name Type Required Description
dateStart string false
dateEnd string false
totalAlertsCount integer false
affectedProjectsCount integer false
affectedControllersCount integer false

Object for field meta

Name Type Required Description
* string false

V1 | CCU Communication Statistics Session Schedule Statistics API

Get Session Schedule Statistics

Request

curl "https://developer-api.etwater.com/api/v1/ccu-communication-statistics/session-schedule-statistics?page=0&size=10&sortField=lastSuccessfulSessionDateTime&sortDirection=asc&controllerId=example+string+value&projectId=example+string+value&hasMissedSessions=0&hasMissedSessionsDateFrom=example+string+value&hasMissedSessionsDateTo=example+string+value&unity=1" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "statistics": [
        {
            "controllerId": "example string value",
            "controllerSerialNumber": "example string value",
            "lastSuccessfulSessionDateTime": 5,
            "lastScheduledSuccessfulSessionDateTime": 238,
            "lastSessionDateTime": 567,
            "nextSessionDateTime": 935,
            "nextSessionDeadline": 304,
            "missedDaysNumber": 794,
            "controllerTimezoneOffset": 327,
            "userId": "example string value",
            "projectId": "example string value",
            "missedSessionsNumber": 534
        }
    ],
    "page": 588,
    "size": 305,
    "total": 629
}

HTTP Request

GET /api/v1/ccu-communication-statistics/session-schedule-statistics

Request parameters

Name Type Part Required Description
Authorization string header true
page integer query false
size integer query false
sortField string query false
sortDirection string query false
controllerId string query false
projectId string query false
hasMissedSessions boolean query false
hasMissedSessionsDateFrom string query false
hasMissedSessionsDateTo string query false
unity boolean query false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
statistics SessionScheduleStatisticApiResponse[ ] false
page integer false
size integer false
total integer false

SessionScheduleStatisticApiResponse

Name Type Required Description
controllerId string false
controllerSerialNumber string false
lastSuccessfulSessionDateTime integer false
lastScheduledSuccessfulSessionDateTime integer false
lastSessionDateTime integer false
nextSessionDateTime integer false
nextSessionDeadline integer false
missedDaysNumber integer false
controllerTimezoneOffset integer false
userId string false
projectId string false
missedSessionsNumber integer false

V1 | CCU Management Controllers API

Request

curl "https://developer-api.etwater.com/api/v1/ccu-management/controllers?page=0&size=10&activated=0&configured=0&suspended=1&projectId=example+string+value&searchTerm=example+string+value&unity=1" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "serialNumber": "example string value",
        "sim": "example string value",
        "imsi": "example string value",
        "config": {
            "numberOfDials": 780,
            "dialScheduleArray": [
                {
                    "secOfDay": 860,
                    "skipDays": 911,
                    "retries": 863,
                    "delayMinutes": 635
                }
            ],
            "extraMinutesToFillPipes": 610,
            "ip": "example string value",
            "secondaryIp": "example string value",
            "login": "example string value",
            "password": "example string value",
            "logString": "example string value",
            "pwString": "example string value",
            "dialString": "example string value",
            "port": 500,
            "fertigationValveNumber": 173,
            "stationCount": 144,
            "flowLimits": {
                "overflowGroup0": 576,
                "underflowGroup0": 611,
                "overflowGroup1": 300,
                "underflowGroup1": 476,
                "leakLimitPPM": 505
            },
            "keystrokeTimeout": 938,
            "calibrationInfo": {
                "inchesOfRainPerTip": 188,
                "inchesOfRainStarted": 591,
                "inchesOfRainHeavy": 974
            },
            "shortCircuitThreshold": 563,
            "openCircuitThreshold": 132,
            "multiValveMode": true,
            "disableMSLWReset": false,
            "remoteControl": true,
            "firmwareInfo": {
                "downloadMinuteOfDay": 68,
                "serverCommunicationsPort": 28,
                "serverIPAddress": "example string value"
            },
            "allowableClockDriftSeconds": 577,
            "flowMeasurementEnabled": false,
            "requestAverageFlow": true,
            "icuTimeZoneOffsetMillis": 706,
            "adminSuspendStatus": 777,
            "wateringAdjustmentCoefficients": {
                "example_property_name": 664.3104267606095
            },
            "maxSimultaneousIrrigationValves": "1",
            "enableSMS": true,
            "icuModel": "example string value",
            "NOT_IN_USE": {
                "example_property_name": 859
            },
            "frequencyAdjustmentsCoefficients": {
                "example_property_name": 608
            },
            "timeZoneIdentifier": "example string value",
            "maxStationCount": 689,
            "ccuSuspendWatering": true,
            "ccuSuspendIsTimed": false
        },
        "userId": "example string value",
        "controllerStatus": 14,
        "createdAt": 870,
        "updatedAt": 954,
        "ccuZones": {
            "example_property_name": {
                "name": "example string value",
                "number": 712,
                "projectId": "example string value",
                "areaRegionConfigStates": {
                    "example_property_name": true
                },
                "configured": true,
                "expectedFlowPPM": 760,
                "disableFlowSensing": false,
                "expectedFlowProcessState": 468,
                "startOfUpdatingFlow": 722,
                "updatePPM": true,
                "gpm": 61.324828332906975,
                "customGpm": 912.5704057107542
            }
        },
        "flowSensorSettings": {
            "flowSensorId": "example string value",
            "manufacturer": "example string value",
            "type": "example string value",
            "factorK": 122.65267741058612,
            "offset": 744.1640038714577
        },
        "configured": false,
        "activated": false,
        "projectId": "example string value",
        "manualSchedule": {
            "timestamp": 392,
            "controllerId": "example string value",
            "plans": [
                511
            ],
            "counts": [
                {
                    "stationNumber": 25,
                    "countNumber": 333
                }
            ],
            "programs": [
                {
                    "stationNumber": 363,
                    "waterMinutes": 401,
                    "wateringCycles": 111,
                    "skip": 10,
                    "count": 572,
                    "plans": 613,
                    "waterDays": 41,
                    "soakMinutes": 197,
                    "expectedFlowPPM": 130,
                    "fertigationMinutes": 244,
                    "suppressPump": true,
                    "groupNumber": 438,
                    "waterInRain": true,
                    "wateringAdjustmentCoefficient": 499.20251197144506,
                    "fixedProgramId": "example string value",
                    "distributionUniformityCoefficient": 530.2233153629226,
                    "frequencyAdjustmentCoefficient": 330.59933051960513,
                    "programStats": {
                        "effectiveRainMm": 769,
                        "reducedIrrigationMm": 976,
                        "reducedIrrigationMin": 984.0457760654602,
                        "iterationsCount": 700
                    },
                    "watered": true
                }
            ],
            "dumps": [
                {
                    "stationNumber": 297,
                    "cycleStarts": [
                        122
                    ],
                    "cycleLengths": [
                        571
                    ],
                    "groups": [
                        523
                    ]
                }
            ],
            "oneTimeSchedule": false,
            "id": "example string value",
            "watered": false,
            "appliedDateTime": 210,
            "timezoneOffsetMillis": 552
        },
        "name": "example string value",
        "firmwareVersion": "example string value",
        "unity": true,
        "multiValveSettings": {
            "multiValveMode": true,
            "maxSimultaneousIrrigationValves": 622,
            "masterValve": false,
            "boosterPump": true,
            "waterAloneStations": [
                999
            ]
        },
        "connectedAt": 937,
        "isPOTS": true,
        "modemTypeString": "example string value",
        "connectedSuccessfullyAt": 624,
        "connectedPlatform": "example string value",
        "modemSignalStrength": 337,
        "failedCallCount": 565,
        "rainSensorType": 236,
        "rainSensorEnabled": true
    }
]

Dependent on:

Headers example:

where: {access_token} access token value.

Query param description:

Response body description:

HTTP Request

GET /api/v1/ccu-management/controllers

Request parameters

Name Type Part Required Description
Authorization string header true
page integer query false page number
size integer query false page size
activated boolean query false
configured boolean query false
suspended boolean query false
projectId string query false
searchTerm string query false
unity boolean query false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false
serialNumber string false
sim string false
imsi string false
config CcuConfig false
userId string false
controllerStatus integer false
createdAt integer false
updatedAt integer false
ccuZones Object for field ccuZones false
flowSensorSettings FlowSensorSettings false
configured boolean false
activated boolean false
projectId string false
manualSchedule Schedule false
name string false
firmwareVersion string false
unity boolean false
multiValveSettings MultiValveSettings false
connectedAt integer false
isPOTS boolean false
modemTypeString string false
connectedSuccessfullyAt integer false
connectedPlatform string false
modemSignalStrength integer false
failedCallCount integer false
rainSensorType integer false
rainSensorEnabled boolean false

CcuConfig

Name Type Required Description
numberOfDials integer false
dialScheduleArray DialSchedule[ ] false
extraMinutesToFillPipes integer false
ip string false
secondaryIp string false
login string false
password string false
logString string false
pwString string false
dialString string false
port integer false
fertigationValveNumber integer false
stationCount integer false
flowLimits FlowLimitData false
keystrokeTimeout integer false
calibrationInfo TippingBucketCalibration false
shortCircuitThreshold integer false
openCircuitThreshold integer false
multiValveMode boolean false
disableMSLWReset boolean false
remoteControl boolean false
firmwareInfo FirmwareUpdate false
allowableClockDriftSeconds integer false
flowMeasurementEnabled boolean false
requestAverageFlow boolean false
icuTimeZoneOffsetMillis integer false
adminSuspendStatus integer false
wateringAdjustmentCoefficients Object for field wateringAdjustmentCoefficients false
maxSimultaneousIrrigationValves integer false
enableSMS boolean false
icuModel string false
NOT_IN_USE Object for field NOT_IN_USE false
frequencyAdjustmentsCoefficients Object for field frequencyAdjustmentsCoefficients false
timeZoneIdentifier string false
maxStationCount integer false
ccuSuspendWatering boolean false
ccuSuspendIsTimed boolean false

DialSchedule

Name Type Required Description
secOfDay integer false
skipDays integer false
retries integer false
delayMinutes integer false

FlowLimitData

Name Type Required Description
overflowGroup0 integer true
underflowGroup0 integer true
overflowGroup1 integer true
underflowGroup1 integer true
leakLimitPPM integer true

TippingBucketCalibration

Name Type Required Description
inchesOfRainPerTip integer false
inchesOfRainStarted integer false
inchesOfRainHeavy integer false

FirmwareUpdate

Name Type Required Description
downloadMinuteOfDay integer false
serverCommunicationsPort integer false
serverIPAddress string false

Object for field wateringAdjustmentCoefficients

Name Type Required Description
* number false

Object for field NOT_IN_USE

Name Type Required Description
* number false

Object for field frequencyAdjustmentsCoefficients

Name Type Required Description
* number false

Object for field ccuZones

Name Type Required Description
* CCUZone false

CCUZone

Name Type Required Description
name string false
number integer false
projectId string false
areaRegionConfigStates Object for field areaRegionConfigStates false
configured boolean false
expectedFlowPPM integer false
disableFlowSensing boolean false
expectedFlowProcessState integer false
startOfUpdatingFlow integer false
updatePPM boolean false
gpm number false
customGpm number false

Object for field areaRegionConfigStates

Name Type Required Description
* boolean false

FlowSensorSettings

Name Type Required Description
flowSensorId string false
manufacturer string false
type string false
factorK number false
offset number false

Schedule

Name Type Required Description
timestamp integer false
controllerId string false
plans integer[ ] false
counts Count[ ] false
programs Program[ ] false
dumps Dump[ ] false
oneTimeSchedule boolean false
id string false
watered boolean false
appliedDateTime integer false
timezoneOffsetMillis integer false

Count

Name Type Required Description
stationNumber integer false
countNumber integer false

Program

Name Type Required Description
stationNumber integer false
waterMinutes integer false
wateringCycles integer false
skip integer false
count integer false
plans integer false
waterDays integer false
soakMinutes integer false
expectedFlowPPM integer false
fertigationMinutes integer false
suppressPump boolean false
groupNumber integer false
waterInRain boolean false
wateringAdjustmentCoefficient number false
fixedProgramId string false
distributionUniformityCoefficient number false
frequencyAdjustmentCoefficient number false
programStats ProgramStats false
watered boolean false

ProgramStats

Name Type Required Description
effectiveRainMm number false
reducedIrrigationMm number false
reducedIrrigationMin number false
iterationsCount integer false

Dump

Name Type Required Description
stationNumber integer false
cycleStarts integer[ ] false
cycleLengths integer[ ] false
groups integer[ ] false

MultiValveSettings

Name Type Required Description
multiValveMode boolean false
maxSimultaneousIrrigationValves integer false
masterValve boolean false
boosterPump boolean false
waterAloneStations integer[ ] false

Create controller in Unity system.

Request

curl "https://developer-api.etwater.com/api/v1/ccu-management/controllers" \
-X POST \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "{
    \"id\": \"example string value\",
    \"serialNumber\": \"example string value\",
    \"sim\": \"example string value\",
    \"imsi\": \"example string value\",
    \"config\": {
        \"numberOfDials\": 249,
        \"dialScheduleArray\": [
            {
                \"secOfDay\": 786,
                \"skipDays\": 677,
                \"retries\": 866,
                \"delayMinutes\": 680
            }
        ],
        \"extraMinutesToFillPipes\": 504,
        \"ip\": \"example string value\",
        \"secondaryIp\": \"example string value\",
        \"login\": \"example string value\",
        \"password\": \"example string value\",
        \"logString\": \"example string value\",
        \"pwString\": \"example string value\",
        \"dialString\": \"example string value\",
        \"port\": 816,
        \"fertigationValveNumber\": 919,
        \"stationCount\": 287,
        \"flowLimits\": {
            \"overflowGroup0\": 616,
            \"underflowGroup0\": 970,
            \"overflowGroup1\": 664,
            \"underflowGroup1\": 460,
            \"leakLimitPPM\": 168
        },
        \"keystrokeTimeout\": 364,
        \"calibrationInfo\": {
            \"inchesOfRainPerTip\": 406,
            \"inchesOfRainStarted\": 126,
            \"inchesOfRainHeavy\": 401
        },
        \"shortCircuitThreshold\": 36,
        \"openCircuitThreshold\": 223,
        \"multiValveMode\": true,
        \"disableMSLWReset\": false,
        \"remoteControl\": true,
        \"firmwareInfo\": {
            \"downloadMinuteOfDay\": 155,
            \"serverCommunicationsPort\": 731,
            \"serverIPAddress\": \"example string value\"
        },
        \"allowableClockDriftSeconds\": 403,
        \"flowMeasurementEnabled\": false,
        \"requestAverageFlow\": true,
        \"icuTimeZoneOffsetMillis\": 758,
        \"adminSuspendStatus\": 117,
        \"wateringAdjustmentCoefficients\": {
            \"example_property_name\": 57
        },
        \"maxSimultaneousIrrigationValves\": \"1\",
        \"enableSMS\": false,
        \"icuModel\": \"example string value\",
        \"NOT_IN_USE\": {
            \"example_property_name\": 638
        },
        \"frequencyAdjustmentsCoefficients\": {
            \"example_property_name\": 168
        },
        \"timeZoneIdentifier\": \"example string value\",
        \"maxStationCount\": 758,
        \"ccuSuspendWatering\": true,
        \"ccuSuspendIsTimed\": false
    },
    \"userId\": \"example string value\",
    \"controllerStatus\": 653,
    \"createdAt\": 881,
    \"updatedAt\": 148,
    \"ccuZones\": {
        \"example_property_name\": {
            \"name\": \"example string value\",
            \"number\": 13,
            \"projectId\": \"example string value\",
            \"areaRegionConfigStates\": {
                \"example_property_name\": true
            },
            \"configured\": false,
            \"expectedFlowPPM\": 100,
            \"disableFlowSensing\": false,
            \"expectedFlowProcessState\": 464,
            \"startOfUpdatingFlow\": 505,
            \"updatePPM\": true,
            \"gpm\": 128,
            \"customGpm\": 837.9689123658318
        }
    },
    \"flowSensorSettings\": {
        \"flowSensorId\": \"example string value\",
        \"manufacturer\": \"example string value\",
        \"type\": \"example string value\",
        \"factorK\": 426,
        \"offset\": 833.4789736352297
    },
    \"configured\": true,
    \"activated\": false,
    \"projectId\": \"example string value\",
    \"manualSchedule\": {
        \"timestamp\": 458,
        \"controllerId\": \"example string value\",
        \"plans\": [
            633
        ],
        \"counts\": [
            {
                \"stationNumber\": 870,
                \"countNumber\": 638
            }
        ],
        \"programs\": [
            {
                \"stationNumber\": 438,
                \"waterMinutes\": 371,
                \"wateringCycles\": 40,
                \"skip\": 155,
                \"count\": 932,
                \"plans\": 502,
                \"waterDays\": 339,
                \"soakMinutes\": 62,
                \"expectedFlowPPM\": 110,
                \"fertigationMinutes\": 773,
                \"suppressPump\": true,
                \"groupNumber\": 545,
                \"waterInRain\": false,
                \"wateringAdjustmentCoefficient\": 839,
                \"fixedProgramId\": \"example string value\",
                \"distributionUniformityCoefficient\": 538.2125389474503,
                \"frequencyAdjustmentCoefficient\": 601,
                \"programStats\": {
                    \"effectiveRainMm\": 879,
                    \"reducedIrrigationMm\": 376,
                    \"reducedIrrigationMin\": 218,
                    \"iterationsCount\": 266
                },
                \"watered\": true
            }
        ],
        \"dumps\": [
            {
                \"stationNumber\": 742,
                \"cycleStarts\": [
                    561
                ],
                \"cycleLengths\": [
                    148
                ],
                \"groups\": [
                    495
                ]
            }
        ],
        \"oneTimeSchedule\": false,
        \"id\": \"example string value\",
        \"watered\": false,
        \"appliedDateTime\": 478,
        \"timezoneOffsetMillis\": 275
    },
    \"name\": \"example string value\",
    \"firmwareVersion\": \"example string value\",
    \"unity\": true,
    \"multiValveSettings\": {
        \"multiValveMode\": true,
        \"maxSimultaneousIrrigationValves\": 226,
        \"masterValve\": false,
        \"boosterPump\": false,
        \"waterAloneStations\": [
            368
        ]
    },
    \"connectedAt\": 256,
    \"isPOTS\": true,
    \"modemTypeString\": \"example string value\",
    \"connectedSuccessfullyAt\": 399,
    \"connectedPlatform\": \"example string value\",
    \"modemSignalStrength\": 375,
    \"failedCallCount\": 38,
    \"rainSensorType\": 721,
    \"rainSensorEnabled\": true
}"

On success, the above request returns response like

{
    "id": "example string value",
    "serialNumber": "example string value",
    "sim": "example string value",
    "imsi": "example string value",
    "config": {
        "numberOfDials": 583,
        "dialScheduleArray": [
            {
                "secOfDay": 803,
                "skipDays": 280,
                "retries": 744,
                "delayMinutes": 242
            }
        ],
        "extraMinutesToFillPipes": 114,
        "ip": "example string value",
        "secondaryIp": "example string value",
        "login": "example string value",
        "password": "example string value",
        "logString": "example string value",
        "pwString": "example string value",
        "dialString": "example string value",
        "port": 269,
        "fertigationValveNumber": 573,
        "stationCount": 38,
        "flowLimits": {
            "overflowGroup0": 10,
            "underflowGroup0": 760,
            "overflowGroup1": 339,
            "underflowGroup1": 980,
            "leakLimitPPM": 215
        },
        "keystrokeTimeout": 812,
        "calibrationInfo": {
            "inchesOfRainPerTip": 283,
            "inchesOfRainStarted": 316,
            "inchesOfRainHeavy": 87
        },
        "shortCircuitThreshold": 927,
        "openCircuitThreshold": 159,
        "multiValveMode": true,
        "disableMSLWReset": false,
        "remoteControl": false,
        "firmwareInfo": {
            "downloadMinuteOfDay": 273,
            "serverCommunicationsPort": 107,
            "serverIPAddress": "example string value"
        },
        "allowableClockDriftSeconds": 447,
        "flowMeasurementEnabled": false,
        "requestAverageFlow": true,
        "icuTimeZoneOffsetMillis": 806,
        "adminSuspendStatus": 68,
        "wateringAdjustmentCoefficients": {
            "example_property_name": 334.48274635452907
        },
        "maxSimultaneousIrrigationValves": "1",
        "enableSMS": false,
        "icuModel": "example string value",
        "NOT_IN_USE": {
            "example_property_name": 118
        },
        "frequencyAdjustmentsCoefficients": {
            "example_property_name": 479
        },
        "timeZoneIdentifier": "example string value",
        "maxStationCount": 535,
        "ccuSuspendWatering": false,
        "ccuSuspendIsTimed": false
    },
    "userId": "example string value",
    "controllerStatus": 584,
    "createdAt": 304,
    "updatedAt": 800,
    "ccuZones": {
        "example_property_name": {
            "name": "example string value",
            "number": 561,
            "projectId": "example string value",
            "areaRegionConfigStates": {
                "example_property_name": false
            },
            "configured": false,
            "expectedFlowPPM": 550,
            "disableFlowSensing": true,
            "expectedFlowProcessState": 719,
            "startOfUpdatingFlow": 491,
            "updatePPM": true,
            "gpm": 76.51921318681875,
            "customGpm": 623
        }
    },
    "flowSensorSettings": {
        "flowSensorId": "example string value",
        "manufacturer": "example string value",
        "type": "example string value",
        "factorK": 364,
        "offset": 678.807721789371
    },
    "configured": true,
    "activated": true,
    "projectId": "example string value",
    "manualSchedule": {
        "timestamp": 461,
        "controllerId": "example string value",
        "plans": [
            464
        ],
        "counts": [
            {
                "stationNumber": 829,
                "countNumber": 309
            }
        ],
        "programs": [
            {
                "stationNumber": 232,
                "waterMinutes": 7,
                "wateringCycles": 949,
                "skip": 114,
                "count": 639,
                "plans": 335,
                "waterDays": 733,
                "soakMinutes": 704,
                "expectedFlowPPM": 0,
                "fertigationMinutes": 473,
                "suppressPump": true,
                "groupNumber": 245,
                "waterInRain": false,
                "wateringAdjustmentCoefficient": 700,
                "fixedProgramId": "example string value",
                "distributionUniformityCoefficient": 729.5582712299928,
                "frequencyAdjustmentCoefficient": 339.0152763291333,
                "programStats": {
                    "effectiveRainMm": 44.06940333734705,
                    "reducedIrrigationMm": 621,
                    "reducedIrrigationMin": 932.1679346878864,
                    "iterationsCount": 119
                },
                "watered": false
            }
        ],
        "dumps": [
            {
                "stationNumber": 338,
                "cycleStarts": [
                    585
                ],
                "cycleLengths": [
                    368
                ],
                "groups": [
                    616
                ]
            }
        ],
        "oneTimeSchedule": false,
        "id": "example string value",
        "watered": true,
        "appliedDateTime": 618,
        "timezoneOffsetMillis": 806
    },
    "name": "example string value",
    "firmwareVersion": "example string value",
    "unity": false,
    "multiValveSettings": {
        "multiValveMode": false,
        "maxSimultaneousIrrigationValves": 59,
        "masterValve": true,
        "boosterPump": false,
        "waterAloneStations": [
            706
        ]
    },
    "connectedAt": 529,
    "isPOTS": false,
    "modemTypeString": "example string value",
    "connectedSuccessfullyAt": 471,
    "connectedPlatform": "example string value",
    "modemSignalStrength": 394,
    "failedCallCount": 208,
    "rainSensorType": 998,
    "rainSensorEnabled": false
}

Dependent on:

Headers example:

where: {access_token} access token value.

The simplest way of controller creation is to provide only serialNumber to body request.

Example: json { "serialNumber": <string> }

Request body fields description:

Response body description:

HTTP Request

POST /api/v1/ccu-management/controllers

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
CcuController CcuController body true

CcuController

Name Type Required Description
id string false
serialNumber string false
sim string false
imsi string false
config CcuConfig false
userId string false
controllerStatus integer false
createdAt integer false
updatedAt integer false
ccuZones Object for field ccuZones false
flowSensorSettings FlowSensorSettings false
configured boolean false
activated boolean false
projectId string false
manualSchedule Schedule false
name string false
firmwareVersion string false
unity boolean false
multiValveSettings MultiValveSettings false
connectedAt integer false
isPOTS boolean false
modemTypeString string false
connectedSuccessfullyAt integer false
connectedPlatform string false
modemSignalStrength integer false
failedCallCount integer false
rainSensorType integer false
rainSensorEnabled boolean false

CcuConfig

Name Type Required Description
numberOfDials integer false
dialScheduleArray DialSchedule[ ] false
extraMinutesToFillPipes integer false
ip string false
secondaryIp string false
login string false
password string false
logString string false
pwString string false
dialString string false
port integer false
fertigationValveNumber integer false
stationCount integer false
flowLimits FlowLimitData false
keystrokeTimeout integer false
calibrationInfo TippingBucketCalibration false
shortCircuitThreshold integer false
openCircuitThreshold integer false
multiValveMode boolean false
disableMSLWReset boolean false
remoteControl boolean false
firmwareInfo FirmwareUpdate false
allowableClockDriftSeconds integer false
flowMeasurementEnabled boolean false
requestAverageFlow boolean false
icuTimeZoneOffsetMillis integer false
adminSuspendStatus integer false
wateringAdjustmentCoefficients Object for field wateringAdjustmentCoefficients false
maxSimultaneousIrrigationValves integer false
enableSMS boolean false
icuModel string false
NOT_IN_USE Object for field NOT_IN_USE false
frequencyAdjustmentsCoefficients Object for field frequencyAdjustmentsCoefficients false
timeZoneIdentifier string false
maxStationCount integer false
ccuSuspendWatering boolean false
ccuSuspendIsTimed boolean false

DialSchedule

Name Type Required Description
secOfDay integer false
skipDays integer false
retries integer false
delayMinutes integer false

FlowLimitData

Name Type Required Description
overflowGroup0 integer true
underflowGroup0 integer true
overflowGroup1 integer true
underflowGroup1 integer true
leakLimitPPM integer true

TippingBucketCalibration

Name Type Required Description
inchesOfRainPerTip integer false
inchesOfRainStarted integer false
inchesOfRainHeavy integer false

FirmwareUpdate

Name Type Required Description
downloadMinuteOfDay integer false
serverCommunicationsPort integer false
serverIPAddress string false

Object for field wateringAdjustmentCoefficients

Name Type Required Description
* number false

Object for field NOT_IN_USE

Name Type Required Description
* number false

Object for field frequencyAdjustmentsCoefficients

Name Type Required Description
* number false

Object for field ccuZones

Name Type Required Description
* CCUZone false

CCUZone

Name Type Required Description
name string false
number integer false
projectId string false
areaRegionConfigStates Object for field areaRegionConfigStates false
configured boolean false
expectedFlowPPM integer false
disableFlowSensing boolean false
expectedFlowProcessState integer false
startOfUpdatingFlow integer false
updatePPM boolean false
gpm number false
customGpm number false

Object for field areaRegionConfigStates

Name Type Required Description
* boolean false

FlowSensorSettings

Name Type Required Description
flowSensorId string false
manufacturer string false
type string false
factorK number false
offset number false

Schedule

Name Type Required Description
timestamp integer false
controllerId string false
plans integer[ ] false
counts Count[ ] false
programs Program[ ] false
dumps Dump[ ] false
oneTimeSchedule boolean false
id string false
watered boolean false
appliedDateTime integer false
timezoneOffsetMillis integer false

Count

Name Type Required Description
stationNumber integer false
countNumber integer false

Program

Name Type Required Description
stationNumber integer false
waterMinutes integer false
wateringCycles integer false
skip integer false
count integer false
plans integer false
waterDays integer false
soakMinutes integer false
expectedFlowPPM integer false
fertigationMinutes integer false
suppressPump boolean false
groupNumber integer false
waterInRain boolean false
wateringAdjustmentCoefficient number false
fixedProgramId string false
distributionUniformityCoefficient number false
frequencyAdjustmentCoefficient number false
programStats ProgramStats false
watered boolean false

ProgramStats

Name Type Required Description
effectiveRainMm number false
reducedIrrigationMm number false
reducedIrrigationMin number false
iterationsCount integer false

Dump

Name Type Required Description
stationNumber integer false
cycleStarts integer[ ] false
cycleLengths integer[ ] false
groups integer[ ] false

MultiValveSettings

Name Type Required Description
multiValveMode boolean false
maxSimultaneousIrrigationValves integer false
masterValve boolean false
boosterPump boolean false
waterAloneStations integer[ ] false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
serialNumber string false
sim string false
imsi string false
config CcuConfig false
userId string false
controllerStatus integer false
createdAt integer false
updatedAt integer false
ccuZones Object for field ccuZones false
flowSensorSettings FlowSensorSettings false
configured boolean false
activated boolean false
projectId string false
manualSchedule Schedule false
name string false
firmwareVersion string false
unity boolean false
multiValveSettings MultiValveSettings false
connectedAt integer false
isPOTS boolean false
modemTypeString string false
connectedSuccessfullyAt integer false
connectedPlatform string false
modemSignalStrength integer false
failedCallCount integer false
rainSensorType integer false
rainSensorEnabled boolean false

CcuConfig

Name Type Required Description
numberOfDials integer false
dialScheduleArray DialSchedule[ ] false
extraMinutesToFillPipes integer false
ip string false
secondaryIp string false
login string false
password string false
logString string false
pwString string false
dialString string false
port integer false
fertigationValveNumber integer false
stationCount integer false
flowLimits FlowLimitData false
keystrokeTimeout integer false
calibrationInfo TippingBucketCalibration false
shortCircuitThreshold integer false
openCircuitThreshold integer false
multiValveMode boolean false
disableMSLWReset boolean false
remoteControl boolean false
firmwareInfo FirmwareUpdate false
allowableClockDriftSeconds integer false
flowMeasurementEnabled boolean false
requestAverageFlow boolean false
icuTimeZoneOffsetMillis integer false
adminSuspendStatus integer false
wateringAdjustmentCoefficients Object for field wateringAdjustmentCoefficients false
maxSimultaneousIrrigationValves integer false
enableSMS boolean false
icuModel string false
NOT_IN_USE Object for field NOT_IN_USE false
frequencyAdjustmentsCoefficients Object for field frequencyAdjustmentsCoefficients false
timeZoneIdentifier string false
maxStationCount integer false
ccuSuspendWatering boolean false
ccuSuspendIsTimed boolean false

DialSchedule

Name Type Required Description
secOfDay integer false
skipDays integer false
retries integer false
delayMinutes integer false

FlowLimitData

Name Type Required Description
overflowGroup0 integer true
underflowGroup0 integer true
overflowGroup1 integer true
underflowGroup1 integer true
leakLimitPPM integer true

TippingBucketCalibration

Name Type Required Description
inchesOfRainPerTip integer false
inchesOfRainStarted integer false
inchesOfRainHeavy integer false

FirmwareUpdate

Name Type Required Description
downloadMinuteOfDay integer false
serverCommunicationsPort integer false
serverIPAddress string false

Object for field wateringAdjustmentCoefficients

Name Type Required Description
* number false

Object for field NOT_IN_USE

Name Type Required Description
* number false

Object for field frequencyAdjustmentsCoefficients

Name Type Required Description
* number false

Object for field ccuZones

Name Type Required Description
* CCUZone false

CCUZone

Name Type Required Description
name string false
number integer false
projectId string false
areaRegionConfigStates Object for field areaRegionConfigStates false
configured boolean false
expectedFlowPPM integer false
disableFlowSensing boolean false
expectedFlowProcessState integer false
startOfUpdatingFlow integer false
updatePPM boolean false
gpm number false
customGpm number false

Object for field areaRegionConfigStates

Name Type Required Description
* boolean false

FlowSensorSettings

Name Type Required Description
flowSensorId string false
manufacturer string false
type string false
factorK number false
offset number false

Schedule

Name Type Required Description
timestamp integer false
controllerId string false
plans integer[ ] false
counts Count[ ] false
programs Program[ ] false
dumps Dump[ ] false
oneTimeSchedule boolean false
id string false
watered boolean false
appliedDateTime integer false
timezoneOffsetMillis integer false

Count

Name Type Required Description
stationNumber integer false
countNumber integer false

Program

Name Type Required Description
stationNumber integer false
waterMinutes integer false
wateringCycles integer false
skip integer false
count integer false
plans integer false
waterDays integer false
soakMinutes integer false
expectedFlowPPM integer false
fertigationMinutes integer false
suppressPump boolean false
groupNumber integer false
waterInRain boolean false
wateringAdjustmentCoefficient number false
fixedProgramId string false
distributionUniformityCoefficient number false
frequencyAdjustmentCoefficient number false
programStats ProgramStats false
watered boolean false

ProgramStats

Name Type Required Description
effectiveRainMm number false
reducedIrrigationMm number false
reducedIrrigationMin number false
iterationsCount integer false

Dump

Name Type Required Description
stationNumber integer false
cycleStarts integer[ ] false
cycleLengths integer[ ] false
groups integer[ ] false

MultiValveSettings

Name Type Required Description
multiValveMode boolean false
maxSimultaneousIrrigationValves integer false
masterValve boolean false
boosterPump boolean false
waterAloneStations integer[ ] false

Create or update controllers

Request

curl "https://developer-api.etwater.com/api/v1/ccu-management/controllers" \
-X PATCH \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "[
    {
        \"id\": \"example string value\",
        \"serialNumber\": \"example string value\",
        \"sim\": \"example string value\",
        \"imsi\": \"example string value\",
        \"config\": {
            \"numberOfDials\": 48,
            \"dialScheduleArray\": [
                {
                    \"secOfDay\": 914,
                    \"skipDays\": 289,
                    \"retries\": 734,
                    \"delayMinutes\": 695
                }
            ],
            \"extraMinutesToFillPipes\": 99,
            \"ip\": \"example string value\",
            \"secondaryIp\": \"example string value\",
            \"login\": \"example string value\",
            \"password\": \"example string value\",
            \"logString\": \"example string value\",
            \"pwString\": \"example string value\",
            \"dialString\": \"example string value\",
            \"port\": 796,
            \"fertigationValveNumber\": 998,
            \"stationCount\": 942,
            \"flowLimits\": {
                \"overflowGroup0\": 608,
                \"underflowGroup0\": 572,
                \"overflowGroup1\": 262,
                \"underflowGroup1\": 124,
                \"leakLimitPPM\": 962
            },
            \"keystrokeTimeout\": 395,
            \"calibrationInfo\": {
                \"inchesOfRainPerTip\": 961,
                \"inchesOfRainStarted\": 820,
                \"inchesOfRainHeavy\": 503
            },
            \"shortCircuitThreshold\": 405,
            \"openCircuitThreshold\": 129,
            \"multiValveMode\": false,
            \"disableMSLWReset\": true,
            \"remoteControl\": false,
            \"firmwareInfo\": {
                \"downloadMinuteOfDay\": 623,
                \"serverCommunicationsPort\": 122,
                \"serverIPAddress\": \"example string value\"
            },
            \"allowableClockDriftSeconds\": 726,
            \"flowMeasurementEnabled\": false,
            \"requestAverageFlow\": false,
            \"icuTimeZoneOffsetMillis\": 512,
            \"adminSuspendStatus\": 470,
            \"wateringAdjustmentCoefficients\": {
                \"example_property_name\": 726.5498967499238
            },
            \"maxSimultaneousIrrigationValves\": \"1\",
            \"enableSMS\": false,
            \"icuModel\": \"example string value\",
            \"NOT_IN_USE\": {
                \"example_property_name\": 972.7060743480483
            },
            \"frequencyAdjustmentsCoefficients\": {
                \"example_property_name\": 792.3048761637439
            },
            \"timeZoneIdentifier\": \"example string value\",
            \"maxStationCount\": 243,
            \"ccuSuspendWatering\": true,
            \"ccuSuspendIsTimed\": true
        },
        \"userId\": \"example string value\",
        \"controllerStatus\": 930,
        \"createdAt\": 9,
        \"updatedAt\": 338,
        \"ccuZones\": {
            \"example_property_name\": {
                \"name\": \"example string value\",
                \"number\": 672,
                \"projectId\": \"example string value\",
                \"areaRegionConfigStates\": {
                    \"example_property_name\": true
                },
                \"configured\": true,
                \"expectedFlowPPM\": 121,
                \"disableFlowSensing\": true,
                \"expectedFlowProcessState\": 414,
                \"startOfUpdatingFlow\": 649,
                \"updatePPM\": false,
                \"gpm\": 822,
                \"customGpm\": 562.4404035333732
            }
        },
        \"flowSensorSettings\": {
            \"flowSensorId\": \"example string value\",
            \"manufacturer\": \"example string value\",
            \"type\": \"example string value\",
            \"factorK\": 895.3699944053637,
            \"offset\": 300
        },
        \"configured\": false,
        \"activated\": true,
        \"projectId\": \"example string value\",
        \"manualSchedule\": {
            \"timestamp\": 704,
            \"controllerId\": \"example string value\",
            \"plans\": [
                625
            ],
            \"counts\": [
                {
                    \"stationNumber\": 82,
                    \"countNumber\": 844
                }
            ],
            \"programs\": [
                {
                    \"stationNumber\": 260,
                    \"waterMinutes\": 503,
                    \"wateringCycles\": 257,
                    \"skip\": 532,
                    \"count\": 211,
                    \"plans\": 811,
                    \"waterDays\": 650,
                    \"soakMinutes\": 451,
                    \"expectedFlowPPM\": 1000,
                    \"fertigationMinutes\": 475,
                    \"suppressPump\": true,
                    \"groupNumber\": 354,
                    \"waterInRain\": true,
                    \"wateringAdjustmentCoefficient\": 79.97421039267174,
                    \"fixedProgramId\": \"example string value\",
                    \"distributionUniformityCoefficient\": 205.8396070291473,
                    \"frequencyAdjustmentCoefficient\": 799,
                    \"programStats\": {
                        \"effectiveRainMm\": 950.4450307928234,
                        \"reducedIrrigationMm\": 131.33640407181176,
                        \"reducedIrrigationMin\": 181,
                        \"iterationsCount\": 80
                    },
                    \"watered\": false
                }
            ],
            \"dumps\": [
                {
                    \"stationNumber\": 947,
                    \"cycleStarts\": [
                        239
                    ],
                    \"cycleLengths\": [
                        370
                    ],
                    \"groups\": [
                        369
                    ]
                }
            ],
            \"oneTimeSchedule\": true,
            \"id\": \"example string value\",
            \"watered\": true,
            \"appliedDateTime\": 715,
            \"timezoneOffsetMillis\": 367
        },
        \"name\": \"example string value\",
        \"firmwareVersion\": \"example string value\",
        \"unity\": false,
        \"multiValveSettings\": {
            \"multiValveMode\": false,
            \"maxSimultaneousIrrigationValves\": 779,
            \"masterValve\": true,
            \"boosterPump\": false,
            \"waterAloneStations\": [
                232
            ]
        },
        \"connectedAt\": 694,
        \"isPOTS\": true,
        \"modemTypeString\": \"example string value\",
        \"connectedSuccessfullyAt\": 300,
        \"connectedPlatform\": \"example string value\",
        \"modemSignalStrength\": 194,
        \"failedCallCount\": 549,
        \"rainSensorType\": 306,
        \"rainSensorEnabled\": true
    }
]"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "serialNumber": "example string value",
        "sim": "example string value",
        "imsi": "example string value",
        "config": {
            "numberOfDials": 587,
            "dialScheduleArray": [
                {
                    "secOfDay": 84,
                    "skipDays": 781,
                    "retries": 914,
                    "delayMinutes": 590
                }
            ],
            "extraMinutesToFillPipes": 481,
            "ip": "example string value",
            "secondaryIp": "example string value",
            "login": "example string value",
            "password": "example string value",
            "logString": "example string value",
            "pwString": "example string value",
            "dialString": "example string value",
            "port": 467,
            "fertigationValveNumber": 669,
            "stationCount": 855,
            "flowLimits": {
                "overflowGroup0": 585,
                "underflowGroup0": 495,
                "overflowGroup1": 494,
                "underflowGroup1": 486,
                "leakLimitPPM": 372
            },
            "keystrokeTimeout": 973,
            "calibrationInfo": {
                "inchesOfRainPerTip": 828,
                "inchesOfRainStarted": 675,
                "inchesOfRainHeavy": 364
            },
            "shortCircuitThreshold": 328,
            "openCircuitThreshold": 304,
            "multiValveMode": true,
            "disableMSLWReset": true,
            "remoteControl": false,
            "firmwareInfo": {
                "downloadMinuteOfDay": 155,
                "serverCommunicationsPort": 686,
                "serverIPAddress": "example string value"
            },
            "allowableClockDriftSeconds": 146,
            "flowMeasurementEnabled": false,
            "requestAverageFlow": false,
            "icuTimeZoneOffsetMillis": 724,
            "adminSuspendStatus": 216,
            "wateringAdjustmentCoefficients": {
                "example_property_name": 142
            },
            "maxSimultaneousIrrigationValves": "1",
            "enableSMS": false,
            "icuModel": "example string value",
            "NOT_IN_USE": {
                "example_property_name": 769
            },
            "frequencyAdjustmentsCoefficients": {
                "example_property_name": 501
            },
            "timeZoneIdentifier": "example string value",
            "maxStationCount": 255,
            "ccuSuspendWatering": true,
            "ccuSuspendIsTimed": false
        },
        "userId": "example string value",
        "controllerStatus": 669,
        "createdAt": 160,
        "updatedAt": 19,
        "ccuZones": {
            "example_property_name": {
                "name": "example string value",
                "number": 553,
                "projectId": "example string value",
                "areaRegionConfigStates": {
                    "example_property_name": false
                },
                "configured": true,
                "expectedFlowPPM": 713,
                "disableFlowSensing": false,
                "expectedFlowProcessState": 781,
                "startOfUpdatingFlow": 880,
                "updatePPM": true,
                "gpm": 59.97158915734458,
                "customGpm": 981
            }
        },
        "flowSensorSettings": {
            "flowSensorId": "example string value",
            "manufacturer": "example string value",
            "type": "example string value",
            "factorK": 856,
            "offset": 946.1928824643571
        },
        "configured": true,
        "activated": false,
        "projectId": "example string value",
        "manualSchedule": {
            "timestamp": 505,
            "controllerId": "example string value",
            "plans": [
                372
            ],
            "counts": [
                {
                    "stationNumber": 46,
                    "countNumber": 521
                }
            ],
            "programs": [
                {
                    "stationNumber": 433,
                    "waterMinutes": 26,
                    "wateringCycles": 270,
                    "skip": 20,
                    "count": 889,
                    "plans": 72,
                    "waterDays": 297,
                    "soakMinutes": 875,
                    "expectedFlowPPM": 81,
                    "fertigationMinutes": 385,
                    "suppressPump": true,
                    "groupNumber": 16,
                    "waterInRain": true,
                    "wateringAdjustmentCoefficient": 518,
                    "fixedProgramId": "example string value",
                    "distributionUniformityCoefficient": 262.15947385046604,
                    "frequencyAdjustmentCoefficient": 187,
                    "programStats": {
                        "effectiveRainMm": 638.6571776301865,
                        "reducedIrrigationMm": 363,
                        "reducedIrrigationMin": 267,
                        "iterationsCount": 515
                    },
                    "watered": true
                }
            ],
            "dumps": [
                {
                    "stationNumber": 1,
                    "cycleStarts": [
                        677
                    ],
                    "cycleLengths": [
                        707
                    ],
                    "groups": [
                        276
                    ]
                }
            ],
            "oneTimeSchedule": true,
            "id": "example string value",
            "watered": false,
            "appliedDateTime": 378,
            "timezoneOffsetMillis": 825
        },
        "name": "example string value",
        "firmwareVersion": "example string value",
        "unity": true,
        "multiValveSettings": {
            "multiValveMode": true,
            "maxSimultaneousIrrigationValves": 762,
            "masterValve": false,
            "boosterPump": false,
            "waterAloneStations": [
                261
            ]
        },
        "connectedAt": 734,
        "isPOTS": true,
        "modemTypeString": "example string value",
        "connectedSuccessfullyAt": 453,
        "connectedPlatform": "example string value",
        "modemSignalStrength": 48,
        "failedCallCount": 657,
        "rainSensorType": 82,
        "rainSensorEnabled": true
    }
]

HTTP Request

PATCH /api/v1/ccu-management/controllers

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
CcuControllers CcuController[ ] body true

CcuController

Name Type Required Description
id string false
serialNumber string false
sim string false
imsi string false
config CcuConfig false
userId string false
controllerStatus integer false
createdAt integer false
updatedAt integer false
ccuZones Object for field ccuZones false
flowSensorSettings FlowSensorSettings false
configured boolean false
activated boolean false
projectId string false
manualSchedule Schedule false
name string false
firmwareVersion string false
unity boolean false
multiValveSettings MultiValveSettings false
connectedAt integer false
isPOTS boolean false
modemTypeString string false
connectedSuccessfullyAt integer false
connectedPlatform string false
modemSignalStrength integer false
failedCallCount integer false
rainSensorType integer false
rainSensorEnabled boolean false

CcuConfig

Name Type Required Description
numberOfDials integer false
dialScheduleArray DialSchedule[ ] false
extraMinutesToFillPipes integer false
ip string false
secondaryIp string false
login string false
password string false
logString string false
pwString string false
dialString string false
port integer false
fertigationValveNumber integer false
stationCount integer false
flowLimits FlowLimitData false
keystrokeTimeout integer false
calibrationInfo TippingBucketCalibration false
shortCircuitThreshold integer false
openCircuitThreshold integer false
multiValveMode boolean false
disableMSLWReset boolean false
remoteControl boolean false
firmwareInfo FirmwareUpdate false
allowableClockDriftSeconds integer false
flowMeasurementEnabled boolean false
requestAverageFlow boolean false
icuTimeZoneOffsetMillis integer false
adminSuspendStatus integer false
wateringAdjustmentCoefficients Object for field wateringAdjustmentCoefficients false
maxSimultaneousIrrigationValves integer false
enableSMS boolean false
icuModel string false
NOT_IN_USE Object for field NOT_IN_USE false
frequencyAdjustmentsCoefficients Object for field frequencyAdjustmentsCoefficients false
timeZoneIdentifier string false
maxStationCount integer false
ccuSuspendWatering boolean false
ccuSuspendIsTimed boolean false

DialSchedule

Name Type Required Description
secOfDay integer false
skipDays integer false
retries integer false
delayMinutes integer false

FlowLimitData

Name Type Required Description
overflowGroup0 integer true
underflowGroup0 integer true
overflowGroup1 integer true
underflowGroup1 integer true
leakLimitPPM integer true

TippingBucketCalibration

Name Type Required Description
inchesOfRainPerTip integer false
inchesOfRainStarted integer false
inchesOfRainHeavy integer false

FirmwareUpdate

Name Type Required Description
downloadMinuteOfDay integer false
serverCommunicationsPort integer false
serverIPAddress string false

Object for field wateringAdjustmentCoefficients

Name Type Required Description
* number false

Object for field NOT_IN_USE

Name Type Required Description
* number false

Object for field frequencyAdjustmentsCoefficients

Name Type Required Description
* number false

Object for field ccuZones

Name Type Required Description
* CCUZone false

CCUZone

Name Type Required Description
name string false
number integer false
projectId string false
areaRegionConfigStates Object for field areaRegionConfigStates false
configured boolean false
expectedFlowPPM integer false
disableFlowSensing boolean false
expectedFlowProcessState integer false
startOfUpdatingFlow integer false
updatePPM boolean false
gpm number false
customGpm number false

Object for field areaRegionConfigStates

Name Type Required Description
* boolean false

FlowSensorSettings

Name Type Required Description
flowSensorId string false
manufacturer string false
type string false
factorK number false
offset number false

Schedule

Name Type Required Description
timestamp integer false
controllerId string false
plans integer[ ] false
counts Count[ ] false
programs Program[ ] false
dumps Dump[ ] false
oneTimeSchedule boolean false
id string false
watered boolean false
appliedDateTime integer false
timezoneOffsetMillis integer false

Count

Name Type Required Description
stationNumber integer false
countNumber integer false

Program

Name Type Required Description
stationNumber integer false
waterMinutes integer false
wateringCycles integer false
skip integer false
count integer false
plans integer false
waterDays integer false
soakMinutes integer false
expectedFlowPPM integer false
fertigationMinutes integer false
suppressPump boolean false
groupNumber integer false
waterInRain boolean false
wateringAdjustmentCoefficient number false
fixedProgramId string false
distributionUniformityCoefficient number false
frequencyAdjustmentCoefficient number false
programStats ProgramStats false
watered boolean false

ProgramStats

Name Type Required Description
effectiveRainMm number false
reducedIrrigationMm number false
reducedIrrigationMin number false
iterationsCount integer false

Dump

Name Type Required Description
stationNumber integer false
cycleStarts integer[ ] false
cycleLengths integer[ ] false
groups integer[ ] false

MultiValveSettings

Name Type Required Description
multiValveMode boolean false
maxSimultaneousIrrigationValves integer false
masterValve boolean false
boosterPump boolean false
waterAloneStations integer[ ] false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false
serialNumber string false
sim string false
imsi string false
config CcuConfig false
userId string false
controllerStatus integer false
createdAt integer false
updatedAt integer false
ccuZones Object for field ccuZones false
flowSensorSettings FlowSensorSettings false
configured boolean false
activated boolean false
projectId string false
manualSchedule Schedule false
name string false
firmwareVersion string false
unity boolean false
multiValveSettings MultiValveSettings false
connectedAt integer false
isPOTS boolean false
modemTypeString string false
connectedSuccessfullyAt integer false
connectedPlatform string false
modemSignalStrength integer false
failedCallCount integer false
rainSensorType integer false
rainSensorEnabled boolean false

CcuConfig

Name Type Required Description
numberOfDials integer false
dialScheduleArray DialSchedule[ ] false
extraMinutesToFillPipes integer false
ip string false
secondaryIp string false
login string false
password string false
logString string false
pwString string false
dialString string false
port integer false
fertigationValveNumber integer false
stationCount integer false
flowLimits FlowLimitData false
keystrokeTimeout integer false
calibrationInfo TippingBucketCalibration false
shortCircuitThreshold integer false
openCircuitThreshold integer false
multiValveMode boolean false
disableMSLWReset boolean false
remoteControl boolean false
firmwareInfo FirmwareUpdate false
allowableClockDriftSeconds integer false
flowMeasurementEnabled boolean false
requestAverageFlow boolean false
icuTimeZoneOffsetMillis integer false
adminSuspendStatus integer false
wateringAdjustmentCoefficients Object for field wateringAdjustmentCoefficients false
maxSimultaneousIrrigationValves integer false
enableSMS boolean false
icuModel string false
NOT_IN_USE Object for field NOT_IN_USE false
frequencyAdjustmentsCoefficients Object for field frequencyAdjustmentsCoefficients false
timeZoneIdentifier string false
maxStationCount integer false
ccuSuspendWatering boolean false
ccuSuspendIsTimed boolean false

DialSchedule

Name Type Required Description
secOfDay integer false
skipDays integer false
retries integer false
delayMinutes integer false

FlowLimitData

Name Type Required Description
overflowGroup0 integer true
underflowGroup0 integer true
overflowGroup1 integer true
underflowGroup1 integer true
leakLimitPPM integer true

TippingBucketCalibration

Name Type Required Description
inchesOfRainPerTip integer false
inchesOfRainStarted integer false
inchesOfRainHeavy integer false

FirmwareUpdate

Name Type Required Description
downloadMinuteOfDay integer false
serverCommunicationsPort integer false
serverIPAddress string false

Object for field wateringAdjustmentCoefficients

Name Type Required Description
* number false

Object for field NOT_IN_USE

Name Type Required Description
* number false

Object for field frequencyAdjustmentsCoefficients

Name Type Required Description
* number false

Object for field ccuZones

Name Type Required Description
* CCUZone false

CCUZone

Name Type Required Description
name string false
number integer false
projectId string false
areaRegionConfigStates Object for field areaRegionConfigStates false
configured boolean false
expectedFlowPPM integer false
disableFlowSensing boolean false
expectedFlowProcessState integer false
startOfUpdatingFlow integer false
updatePPM boolean false
gpm number false
customGpm number false

Object for field areaRegionConfigStates

Name Type Required Description
* boolean false

FlowSensorSettings

Name Type Required Description
flowSensorId string false
manufacturer string false
type string false
factorK number false
offset number false

Schedule

Name Type Required Description
timestamp integer false
controllerId string false
plans integer[ ] false
counts Count[ ] false
programs Program[ ] false
dumps Dump[ ] false
oneTimeSchedule boolean false
id string false
watered boolean false
appliedDateTime integer false
timezoneOffsetMillis integer false

Count

Name Type Required Description
stationNumber integer false
countNumber integer false

Program

Name Type Required Description
stationNumber integer false
waterMinutes integer false
wateringCycles integer false
skip integer false
count integer false
plans integer false
waterDays integer false
soakMinutes integer false
expectedFlowPPM integer false
fertigationMinutes integer false
suppressPump boolean false
groupNumber integer false
waterInRain boolean false
wateringAdjustmentCoefficient number false
fixedProgramId string false
distributionUniformityCoefficient number false
frequencyAdjustmentCoefficient number false
programStats ProgramStats false
watered boolean false

ProgramStats

Name Type Required Description
effectiveRainMm number false
reducedIrrigationMm number false
reducedIrrigationMin number false
iterationsCount integer false

Dump

Name Type Required Description
stationNumber integer false
cycleStarts integer[ ] false
cycleLengths integer[ ] false
groups integer[ ] false

MultiValveSettings

Name Type Required Description
multiValveMode boolean false
maxSimultaneousIrrigationValves integer false
masterValve boolean false
boosterPump boolean false
waterAloneStations integer[ ] false

Retrieves controller by controller id.

Request

curl "https://developer-api.etwater.com/api/v1/ccu-management/controllers/{controllerId}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "serialNumber": "example string value",
    "sim": "example string value",
    "imsi": "example string value",
    "config": {
        "numberOfDials": 905,
        "dialScheduleArray": [
            {
                "secOfDay": 958,
                "skipDays": 287,
                "retries": 951,
                "delayMinutes": 951
            }
        ],
        "extraMinutesToFillPipes": 707,
        "ip": "example string value",
        "secondaryIp": "example string value",
        "login": "example string value",
        "password": "example string value",
        "logString": "example string value",
        "pwString": "example string value",
        "dialString": "example string value",
        "port": 602,
        "fertigationValveNumber": 588,
        "stationCount": 653,
        "flowLimits": {
            "overflowGroup0": 467,
            "underflowGroup0": 75,
            "overflowGroup1": 151,
            "underflowGroup1": 625,
            "leakLimitPPM": 13
        },
        "keystrokeTimeout": 443,
        "calibrationInfo": {
            "inchesOfRainPerTip": 668,
            "inchesOfRainStarted": 724,
            "inchesOfRainHeavy": 106
        },
        "shortCircuitThreshold": 614,
        "openCircuitThreshold": 382,
        "multiValveMode": false,
        "disableMSLWReset": true,
        "remoteControl": true,
        "firmwareInfo": {
            "downloadMinuteOfDay": 597,
            "serverCommunicationsPort": 448,
            "serverIPAddress": "example string value"
        },
        "allowableClockDriftSeconds": 955,
        "flowMeasurementEnabled": true,
        "requestAverageFlow": false,
        "icuTimeZoneOffsetMillis": 787,
        "adminSuspendStatus": 435,
        "wateringAdjustmentCoefficients": {
            "example_property_name": 23
        },
        "maxSimultaneousIrrigationValves": "1",
        "enableSMS": false,
        "icuModel": "example string value",
        "NOT_IN_USE": {
            "example_property_name": 495.9753823913519
        },
        "frequencyAdjustmentsCoefficients": {
            "example_property_name": 845.8641370971985
        },
        "timeZoneIdentifier": "example string value",
        "maxStationCount": 49,
        "ccuSuspendWatering": false,
        "ccuSuspendIsTimed": false
    },
    "userId": "example string value",
    "controllerStatus": 670,
    "createdAt": 284,
    "updatedAt": 446,
    "ccuZones": {
        "example_property_name": {
            "name": "example string value",
            "number": 189,
            "projectId": "example string value",
            "areaRegionConfigStates": {
                "example_property_name": false
            },
            "configured": false,
            "expectedFlowPPM": 791,
            "disableFlowSensing": false,
            "expectedFlowProcessState": 227,
            "startOfUpdatingFlow": 48,
            "updatePPM": false,
            "gpm": 966,
            "customGpm": 250
        }
    },
    "flowSensorSettings": {
        "flowSensorId": "example string value",
        "manufacturer": "example string value",
        "type": "example string value",
        "factorK": 418,
        "offset": 980.4896218611345
    },
    "configured": true,
    "activated": false,
    "projectId": "example string value",
    "manualSchedule": {
        "timestamp": 44,
        "controllerId": "example string value",
        "plans": [
            596
        ],
        "counts": [
            {
                "stationNumber": 595,
                "countNumber": 94
            }
        ],
        "programs": [
            {
                "stationNumber": 712,
                "waterMinutes": 288,
                "wateringCycles": 697,
                "skip": 405,
                "count": 896,
                "plans": 580,
                "waterDays": 728,
                "soakMinutes": 450,
                "expectedFlowPPM": 770,
                "fertigationMinutes": 106,
                "suppressPump": true,
                "groupNumber": 477,
                "waterInRain": false,
                "wateringAdjustmentCoefficient": 670.054811830658,
                "fixedProgramId": "example string value",
                "distributionUniformityCoefficient": 827.8216094839487,
                "frequencyAdjustmentCoefficient": 884,
                "programStats": {
                    "effectiveRainMm": 804.77723051085,
                    "reducedIrrigationMm": 547.7913043218624,
                    "reducedIrrigationMin": 811,
                    "iterationsCount": 622
                },
                "watered": true
            }
        ],
        "dumps": [
            {
                "stationNumber": 913,
                "cycleStarts": [
                    252
                ],
                "cycleLengths": [
                    534
                ],
                "groups": [
                    954
                ]
            }
        ],
        "oneTimeSchedule": true,
        "id": "example string value",
        "watered": false,
        "appliedDateTime": 987,
        "timezoneOffsetMillis": 386
    },
    "name": "example string value",
    "firmwareVersion": "example string value",
    "unity": false,
    "multiValveSettings": {
        "multiValveMode": false,
        "maxSimultaneousIrrigationValves": 656,
        "masterValve": true,
        "boosterPump": false,
        "waterAloneStations": [
            290
        ]
    },
    "connectedAt": 214,
    "isPOTS": true,
    "modemTypeString": "example string value",
    "connectedSuccessfullyAt": 146,
    "connectedPlatform": "example string value",
    "modemSignalStrength": 826,
    "failedCallCount": 43,
    "rainSensorType": 862,
    "rainSensorEnabled": false
}

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

{controllerId} - controller id value.

HTTP Request

GET /api/v1/ccu-management/controllers/{controllerId}

Request parameters

Name Type Part Required Description
Authorization string header true
controllerId string path true

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
serialNumber string false
sim string false
imsi string false
config CcuConfig false
userId string false
controllerStatus integer false
createdAt integer false
updatedAt integer false
ccuZones Object for field ccuZones false
flowSensorSettings FlowSensorSettings false
configured boolean false
activated boolean false
projectId string false
manualSchedule Schedule false
name string false
firmwareVersion string false
unity boolean false
multiValveSettings MultiValveSettings false
connectedAt integer false
isPOTS boolean false
modemTypeString string false
connectedSuccessfullyAt integer false
connectedPlatform string false
modemSignalStrength integer false
failedCallCount integer false
rainSensorType integer false
rainSensorEnabled boolean false

CcuConfig

Name Type Required Description
numberOfDials integer false
dialScheduleArray DialSchedule[ ] false
extraMinutesToFillPipes integer false
ip string false
secondaryIp string false
login string false
password string false
logString string false
pwString string false
dialString string false
port integer false
fertigationValveNumber integer false
stationCount integer false
flowLimits FlowLimitData false
keystrokeTimeout integer false
calibrationInfo TippingBucketCalibration false
shortCircuitThreshold integer false
openCircuitThreshold integer false
multiValveMode boolean false
disableMSLWReset boolean false
remoteControl boolean false
firmwareInfo FirmwareUpdate false
allowableClockDriftSeconds integer false
flowMeasurementEnabled boolean false
requestAverageFlow boolean false
icuTimeZoneOffsetMillis integer false
adminSuspendStatus integer false
wateringAdjustmentCoefficients Object for field wateringAdjustmentCoefficients false
maxSimultaneousIrrigationValves integer false
enableSMS boolean false
icuModel string false
NOT_IN_USE Object for field NOT_IN_USE false
frequencyAdjustmentsCoefficients Object for field frequencyAdjustmentsCoefficients false
timeZoneIdentifier string false
maxStationCount integer false
ccuSuspendWatering boolean false
ccuSuspendIsTimed boolean false

DialSchedule

Name Type Required Description
secOfDay integer false
skipDays integer false
retries integer false
delayMinutes integer false

FlowLimitData

Name Type Required Description
overflowGroup0 integer true
underflowGroup0 integer true
overflowGroup1 integer true
underflowGroup1 integer true
leakLimitPPM integer true

TippingBucketCalibration

Name Type Required Description
inchesOfRainPerTip integer false
inchesOfRainStarted integer false
inchesOfRainHeavy integer false

FirmwareUpdate

Name Type Required Description
downloadMinuteOfDay integer false
serverCommunicationsPort integer false
serverIPAddress string false

Object for field wateringAdjustmentCoefficients

Name Type Required Description
* number false

Object for field NOT_IN_USE

Name Type Required Description
* number false

Object for field frequencyAdjustmentsCoefficients

Name Type Required Description
* number false

Object for field ccuZones

Name Type Required Description
* CCUZone false

CCUZone

Name Type Required Description
name string false
number integer false
projectId string false
areaRegionConfigStates Object for field areaRegionConfigStates false
configured boolean false
expectedFlowPPM integer false
disableFlowSensing boolean false
expectedFlowProcessState integer false
startOfUpdatingFlow integer false
updatePPM boolean false
gpm number false
customGpm number false

Object for field areaRegionConfigStates

Name Type Required Description
* boolean false

FlowSensorSettings

Name Type Required Description
flowSensorId string false
manufacturer string false
type string false
factorK number false
offset number false

Schedule

Name Type Required Description
timestamp integer false
controllerId string false
plans integer[ ] false
counts Count[ ] false
programs Program[ ] false
dumps Dump[ ] false
oneTimeSchedule boolean false
id string false
watered boolean false
appliedDateTime integer false
timezoneOffsetMillis integer false

Count

Name Type Required Description
stationNumber integer false
countNumber integer false

Program

Name Type Required Description
stationNumber integer false
waterMinutes integer false
wateringCycles integer false
skip integer false
count integer false
plans integer false
waterDays integer false
soakMinutes integer false
expectedFlowPPM integer false
fertigationMinutes integer false
suppressPump boolean false
groupNumber integer false
waterInRain boolean false
wateringAdjustmentCoefficient number false
fixedProgramId string false
distributionUniformityCoefficient number false
frequencyAdjustmentCoefficient number false
programStats ProgramStats false
watered boolean false

ProgramStats

Name Type Required Description
effectiveRainMm number false
reducedIrrigationMm number false
reducedIrrigationMin number false
iterationsCount integer false

Dump

Name Type Required Description
stationNumber integer false
cycleStarts integer[ ] false
cycleLengths integer[ ] false
groups integer[ ] false

MultiValveSettings

Name Type Required Description
multiValveMode boolean false
maxSimultaneousIrrigationValves integer false
masterValve boolean false
boosterPump boolean false
waterAloneStations integer[ ] false

Delete controller by controller id.

Request

curl "https://developer-api.etwater.com/api/v1/ccu-management/controllers/{controllerId}" \
-X DELETE \
-H "Authorization: example string value"

On success, the above request returns response like

no reponse

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

{controllerId} - controller id value.

HTTP Request

DELETE /api/v1/ccu-management/controllers/{controllerId}

Request parameters

Name Type Part Required Description
Authorization string header true
controllerId string path true

HTTP Responses

Code Description
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Updates controller in Unity system by controller id.

Request

curl "https://developer-api.etwater.com/api/v1/ccu-management/controllers/{controllerId}" \
-X PUT \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "{
    \"id\": \"example string value\",
    \"serialNumber\": \"example string value\",
    \"sim\": \"example string value\",
    \"imsi\": \"example string value\",
    \"config\": {
        \"numberOfDials\": 172,
        \"dialScheduleArray\": [
            {
                \"secOfDay\": 348,
                \"skipDays\": 59,
                \"retries\": 119,
                \"delayMinutes\": 108
            }
        ],
        \"extraMinutesToFillPipes\": 727,
        \"ip\": \"example string value\",
        \"secondaryIp\": \"example string value\",
        \"login\": \"example string value\",
        \"password\": \"example string value\",
        \"logString\": \"example string value\",
        \"pwString\": \"example string value\",
        \"dialString\": \"example string value\",
        \"port\": 49,
        \"fertigationValveNumber\": 359,
        \"stationCount\": 791,
        \"flowLimits\": {
            \"overflowGroup0\": 636,
            \"underflowGroup0\": 112,
            \"overflowGroup1\": 439,
            \"underflowGroup1\": 585,
            \"leakLimitPPM\": 626
        },
        \"keystrokeTimeout\": 90,
        \"calibrationInfo\": {
            \"inchesOfRainPerTip\": 400,
            \"inchesOfRainStarted\": 764,
            \"inchesOfRainHeavy\": 542
        },
        \"shortCircuitThreshold\": 311,
        \"openCircuitThreshold\": 18,
        \"multiValveMode\": true,
        \"disableMSLWReset\": true,
        \"remoteControl\": true,
        \"firmwareInfo\": {
            \"downloadMinuteOfDay\": 196,
            \"serverCommunicationsPort\": 162,
            \"serverIPAddress\": \"example string value\"
        },
        \"allowableClockDriftSeconds\": 752,
        \"flowMeasurementEnabled\": false,
        \"requestAverageFlow\": false,
        \"icuTimeZoneOffsetMillis\": 920,
        \"adminSuspendStatus\": 961,
        \"wateringAdjustmentCoefficients\": {
            \"example_property_name\": 317.0596749135571
        },
        \"maxSimultaneousIrrigationValves\": \"1\",
        \"enableSMS\": false,
        \"icuModel\": \"example string value\",
        \"NOT_IN_USE\": {
            \"example_property_name\": 11
        },
        \"frequencyAdjustmentsCoefficients\": {
            \"example_property_name\": 852
        },
        \"timeZoneIdentifier\": \"example string value\",
        \"maxStationCount\": 602,
        \"ccuSuspendWatering\": true,
        \"ccuSuspendIsTimed\": false
    },
    \"userId\": \"example string value\",
    \"controllerStatus\": 847,
    \"createdAt\": 639,
    \"updatedAt\": 720,
    \"ccuZones\": {
        \"example_property_name\": {
            \"name\": \"example string value\",
            \"number\": 977,
            \"projectId\": \"example string value\",
            \"areaRegionConfigStates\": {
                \"example_property_name\": false
            },
            \"configured\": false,
            \"expectedFlowPPM\": 880,
            \"disableFlowSensing\": false,
            \"expectedFlowProcessState\": 447,
            \"startOfUpdatingFlow\": 513,
            \"updatePPM\": true,
            \"gpm\": 797.2566982718448,
            \"customGpm\": 751.8017006813557
        }
    },
    \"flowSensorSettings\": {
        \"flowSensorId\": \"example string value\",
        \"manufacturer\": \"example string value\",
        \"type\": \"example string value\",
        \"factorK\": 148,
        \"offset\": 261
    },
    \"configured\": true,
    \"activated\": true,
    \"projectId\": \"example string value\",
    \"manualSchedule\": {
        \"timestamp\": 306,
        \"controllerId\": \"example string value\",
        \"plans\": [
            232
        ],
        \"counts\": [
            {
                \"stationNumber\": 639,
                \"countNumber\": 660
            }
        ],
        \"programs\": [
            {
                \"stationNumber\": 196,
                \"waterMinutes\": 466,
                \"wateringCycles\": 257,
                \"skip\": 673,
                \"count\": 566,
                \"plans\": 872,
                \"waterDays\": 864,
                \"soakMinutes\": 187,
                \"expectedFlowPPM\": 334,
                \"fertigationMinutes\": 952,
                \"suppressPump\": true,
                \"groupNumber\": 422,
                \"waterInRain\": true,
                \"wateringAdjustmentCoefficient\": 871,
                \"fixedProgramId\": \"example string value\",
                \"distributionUniformityCoefficient\": 478,
                \"frequencyAdjustmentCoefficient\": 714,
                \"programStats\": {
                    \"effectiveRainMm\": 98.58831022800334,
                    \"reducedIrrigationMm\": 901.8733407845131,
                    \"reducedIrrigationMin\": 187,
                    \"iterationsCount\": 491
                },
                \"watered\": false
            }
        ],
        \"dumps\": [
            {
                \"stationNumber\": 703,
                \"cycleStarts\": [
                    565
                ],
                \"cycleLengths\": [
                    649
                ],
                \"groups\": [
                    378
                ]
            }
        ],
        \"oneTimeSchedule\": true,
        \"id\": \"example string value\",
        \"watered\": false,
        \"appliedDateTime\": 225,
        \"timezoneOffsetMillis\": 274
    },
    \"name\": \"example string value\",
    \"firmwareVersion\": \"example string value\",
    \"unity\": true,
    \"multiValveSettings\": {
        \"multiValveMode\": false,
        \"maxSimultaneousIrrigationValves\": 998,
        \"masterValve\": true,
        \"boosterPump\": true,
        \"waterAloneStations\": [
            973
        ]
    },
    \"connectedAt\": 973,
    \"isPOTS\": false,
    \"modemTypeString\": \"example string value\",
    \"connectedSuccessfullyAt\": 315,
    \"connectedPlatform\": \"example string value\",
    \"modemSignalStrength\": 862,
    \"failedCallCount\": 44,
    \"rainSensorType\": 541,
    \"rainSensorEnabled\": false
}"

On success, the above request returns response like

{
    "id": "example string value",
    "serialNumber": "example string value",
    "sim": "example string value",
    "imsi": "example string value",
    "config": {
        "numberOfDials": 416,
        "dialScheduleArray": [
            {
                "secOfDay": 670,
                "skipDays": 899,
                "retries": 491,
                "delayMinutes": 718
            }
        ],
        "extraMinutesToFillPipes": 263,
        "ip": "example string value",
        "secondaryIp": "example string value",
        "login": "example string value",
        "password": "example string value",
        "logString": "example string value",
        "pwString": "example string value",
        "dialString": "example string value",
        "port": 168,
        "fertigationValveNumber": 592,
        "stationCount": 501,
        "flowLimits": {
            "overflowGroup0": 108,
            "underflowGroup0": 766,
            "overflowGroup1": 402,
            "underflowGroup1": 228,
            "leakLimitPPM": 669
        },
        "keystrokeTimeout": 236,
        "calibrationInfo": {
            "inchesOfRainPerTip": 848,
            "inchesOfRainStarted": 762,
            "inchesOfRainHeavy": 602
        },
        "shortCircuitThreshold": 665,
        "openCircuitThreshold": 824,
        "multiValveMode": false,
        "disableMSLWReset": true,
        "remoteControl": false,
        "firmwareInfo": {
            "downloadMinuteOfDay": 769,
            "serverCommunicationsPort": 304,
            "serverIPAddress": "example string value"
        },
        "allowableClockDriftSeconds": 428,
        "flowMeasurementEnabled": true,
        "requestAverageFlow": false,
        "icuTimeZoneOffsetMillis": 635,
        "adminSuspendStatus": 895,
        "wateringAdjustmentCoefficients": {
            "example_property_name": 109
        },
        "maxSimultaneousIrrigationValves": "1",
        "enableSMS": false,
        "icuModel": "example string value",
        "NOT_IN_USE": {
            "example_property_name": 137
        },
        "frequencyAdjustmentsCoefficients": {
            "example_property_name": 79
        },
        "timeZoneIdentifier": "example string value",
        "maxStationCount": 860,
        "ccuSuspendWatering": true,
        "ccuSuspendIsTimed": true
    },
    "userId": "example string value",
    "controllerStatus": 589,
    "createdAt": 388,
    "updatedAt": 904,
    "ccuZones": {
        "example_property_name": {
            "name": "example string value",
            "number": 832,
            "projectId": "example string value",
            "areaRegionConfigStates": {
                "example_property_name": true
            },
            "configured": true,
            "expectedFlowPPM": 370,
            "disableFlowSensing": false,
            "expectedFlowProcessState": 461,
            "startOfUpdatingFlow": 249,
            "updatePPM": false,
            "gpm": 584,
            "customGpm": 40.16166415073055
        }
    },
    "flowSensorSettings": {
        "flowSensorId": "example string value",
        "manufacturer": "example string value",
        "type": "example string value",
        "factorK": 317.75858128338984,
        "offset": 685
    },
    "configured": false,
    "activated": false,
    "projectId": "example string value",
    "manualSchedule": {
        "timestamp": 918,
        "controllerId": "example string value",
        "plans": [
            568
        ],
        "counts": [
            {
                "stationNumber": 970,
                "countNumber": 549
            }
        ],
        "programs": [
            {
                "stationNumber": 803,
                "waterMinutes": 432,
                "wateringCycles": 973,
                "skip": 94,
                "count": 412,
                "plans": 399,
                "waterDays": 91,
                "soakMinutes": 559,
                "expectedFlowPPM": 6,
                "fertigationMinutes": 703,
                "suppressPump": false,
                "groupNumber": 901,
                "waterInRain": false,
                "wateringAdjustmentCoefficient": 873,
                "fixedProgramId": "example string value",
                "distributionUniformityCoefficient": 902.3166573151558,
                "frequencyAdjustmentCoefficient": 686.6405139149355,
                "programStats": {
                    "effectiveRainMm": 929,
                    "reducedIrrigationMm": 767.7350164240855,
                    "reducedIrrigationMin": 865,
                    "iterationsCount": 951
                },
                "watered": true
            }
        ],
        "dumps": [
            {
                "stationNumber": 900,
                "cycleStarts": [
                    636
                ],
                "cycleLengths": [
                    67
                ],
                "groups": [
                    608
                ]
            }
        ],
        "oneTimeSchedule": false,
        "id": "example string value",
        "watered": true,
        "appliedDateTime": 607,
        "timezoneOffsetMillis": 889
    },
    "name": "example string value",
    "firmwareVersion": "example string value",
    "unity": false,
    "multiValveSettings": {
        "multiValveMode": false,
        "maxSimultaneousIrrigationValves": 991,
        "masterValve": false,
        "boosterPump": false,
        "waterAloneStations": [
            244
        ]
    },
    "connectedAt": 196,
    "isPOTS": false,
    "modemTypeString": "example string value",
    "connectedSuccessfullyAt": 522,
    "connectedPlatform": "example string value",
    "modemSignalStrength": 383,
    "failedCallCount": 449,
    "rainSensorType": 474,
    "rainSensorEnabled": false
}

Note, update operation does not do merge, in case some fields are not set their value will be reset to null.

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

{controllerId} - controller id value.

Request body description:

In case serial number already exist in system, validation error will be returned.

HTTP Request

PUT /api/v1/ccu-management/controllers/{controllerId}

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
controllerId string path true
CcuController CcuController body true

CcuController

Name Type Required Description
id string false
serialNumber string false
sim string false
imsi string false
config CcuConfig false
userId string false
controllerStatus integer false
createdAt integer false
updatedAt integer false
ccuZones Object for field ccuZones false
flowSensorSettings FlowSensorSettings false
configured boolean false
activated boolean false
projectId string false
manualSchedule Schedule false
name string false
firmwareVersion string false
unity boolean false
multiValveSettings MultiValveSettings false
connectedAt integer false
isPOTS boolean false
modemTypeString string false
connectedSuccessfullyAt integer false
connectedPlatform string false
modemSignalStrength integer false
failedCallCount integer false
rainSensorType integer false
rainSensorEnabled boolean false

CcuConfig

Name Type Required Description
numberOfDials integer false
dialScheduleArray DialSchedule[ ] false
extraMinutesToFillPipes integer false
ip string false
secondaryIp string false
login string false
password string false
logString string false
pwString string false
dialString string false
port integer false
fertigationValveNumber integer false
stationCount integer false
flowLimits FlowLimitData false
keystrokeTimeout integer false
calibrationInfo TippingBucketCalibration false
shortCircuitThreshold integer false
openCircuitThreshold integer false
multiValveMode boolean false
disableMSLWReset boolean false
remoteControl boolean false
firmwareInfo FirmwareUpdate false
allowableClockDriftSeconds integer false
flowMeasurementEnabled boolean false
requestAverageFlow boolean false
icuTimeZoneOffsetMillis integer false
adminSuspendStatus integer false
wateringAdjustmentCoefficients Object for field wateringAdjustmentCoefficients false
maxSimultaneousIrrigationValves integer false
enableSMS boolean false
icuModel string false
NOT_IN_USE Object for field NOT_IN_USE false
frequencyAdjustmentsCoefficients Object for field frequencyAdjustmentsCoefficients false
timeZoneIdentifier string false
maxStationCount integer false
ccuSuspendWatering boolean false
ccuSuspendIsTimed boolean false

DialSchedule

Name Type Required Description
secOfDay integer false
skipDays integer false
retries integer false
delayMinutes integer false

FlowLimitData

Name Type Required Description
overflowGroup0 integer true
underflowGroup0 integer true
overflowGroup1 integer true
underflowGroup1 integer true
leakLimitPPM integer true

TippingBucketCalibration

Name Type Required Description
inchesOfRainPerTip integer false
inchesOfRainStarted integer false
inchesOfRainHeavy integer false

FirmwareUpdate

Name Type Required Description
downloadMinuteOfDay integer false
serverCommunicationsPort integer false
serverIPAddress string false

Object for field wateringAdjustmentCoefficients

Name Type Required Description
* number false

Object for field NOT_IN_USE

Name Type Required Description
* number false

Object for field frequencyAdjustmentsCoefficients

Name Type Required Description
* number false

Object for field ccuZones

Name Type Required Description
* CCUZone false

CCUZone

Name Type Required Description
name string false
number integer false
projectId string false
areaRegionConfigStates Object for field areaRegionConfigStates false
configured boolean false
expectedFlowPPM integer false
disableFlowSensing boolean false
expectedFlowProcessState integer false
startOfUpdatingFlow integer false
updatePPM boolean false
gpm number false
customGpm number false

Object for field areaRegionConfigStates

Name Type Required Description
* boolean false

FlowSensorSettings

Name Type Required Description
flowSensorId string false
manufacturer string false
type string false
factorK number false
offset number false

Schedule

Name Type Required Description
timestamp integer false
controllerId string false
plans integer[ ] false
counts Count[ ] false
programs Program[ ] false
dumps Dump[ ] false
oneTimeSchedule boolean false
id string false
watered boolean false
appliedDateTime integer false
timezoneOffsetMillis integer false

Count

Name Type Required Description
stationNumber integer false
countNumber integer false

Program

Name Type Required Description
stationNumber integer false
waterMinutes integer false
wateringCycles integer false
skip integer false
count integer false
plans integer false
waterDays integer false
soakMinutes integer false
expectedFlowPPM integer false
fertigationMinutes integer false
suppressPump boolean false
groupNumber integer false
waterInRain boolean false
wateringAdjustmentCoefficient number false
fixedProgramId string false
distributionUniformityCoefficient number false
frequencyAdjustmentCoefficient number false
programStats ProgramStats false
watered boolean false

ProgramStats

Name Type Required Description
effectiveRainMm number false
reducedIrrigationMm number false
reducedIrrigationMin number false
iterationsCount integer false

Dump

Name Type Required Description
stationNumber integer false
cycleStarts integer[ ] false
cycleLengths integer[ ] false
groups integer[ ] false

MultiValveSettings

Name Type Required Description
multiValveMode boolean false
maxSimultaneousIrrigationValves integer false
masterValve boolean false
boosterPump boolean false
waterAloneStations integer[ ] false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
serialNumber string false
sim string false
imsi string false
config CcuConfig false
userId string false
controllerStatus integer false
createdAt integer false
updatedAt integer false
ccuZones Object for field ccuZones false
flowSensorSettings FlowSensorSettings false
configured boolean false
activated boolean false
projectId string false
manualSchedule Schedule false
name string false
firmwareVersion string false
unity boolean false
multiValveSettings MultiValveSettings false
connectedAt integer false
isPOTS boolean false
modemTypeString string false
connectedSuccessfullyAt integer false
connectedPlatform string false
modemSignalStrength integer false
failedCallCount integer false
rainSensorType integer false
rainSensorEnabled boolean false

CcuConfig

Name Type Required Description
numberOfDials integer false
dialScheduleArray DialSchedule[ ] false
extraMinutesToFillPipes integer false
ip string false
secondaryIp string false
login string false
password string false
logString string false
pwString string false
dialString string false
port integer false
fertigationValveNumber integer false
stationCount integer false
flowLimits FlowLimitData false
keystrokeTimeout integer false
calibrationInfo TippingBucketCalibration false
shortCircuitThreshold integer false
openCircuitThreshold integer false
multiValveMode boolean false
disableMSLWReset boolean false
remoteControl boolean false
firmwareInfo FirmwareUpdate false
allowableClockDriftSeconds integer false
flowMeasurementEnabled boolean false
requestAverageFlow boolean false
icuTimeZoneOffsetMillis integer false
adminSuspendStatus integer false
wateringAdjustmentCoefficients Object for field wateringAdjustmentCoefficients false
maxSimultaneousIrrigationValves integer false
enableSMS boolean false
icuModel string false
NOT_IN_USE Object for field NOT_IN_USE false
frequencyAdjustmentsCoefficients Object for field frequencyAdjustmentsCoefficients false
timeZoneIdentifier string false
maxStationCount integer false
ccuSuspendWatering boolean false
ccuSuspendIsTimed boolean false

DialSchedule

Name Type Required Description
secOfDay integer false
skipDays integer false
retries integer false
delayMinutes integer false

FlowLimitData

Name Type Required Description
overflowGroup0 integer true
underflowGroup0 integer true
overflowGroup1 integer true
underflowGroup1 integer true
leakLimitPPM integer true

TippingBucketCalibration

Name Type Required Description
inchesOfRainPerTip integer false
inchesOfRainStarted integer false
inchesOfRainHeavy integer false

FirmwareUpdate

Name Type Required Description
downloadMinuteOfDay integer false
serverCommunicationsPort integer false
serverIPAddress string false

Object for field wateringAdjustmentCoefficients

Name Type Required Description
* number false

Object for field NOT_IN_USE

Name Type Required Description
* number false

Object for field frequencyAdjustmentsCoefficients

Name Type Required Description
* number false

Object for field ccuZones

Name Type Required Description
* CCUZone false

CCUZone

Name Type Required Description
name string false
number integer false
projectId string false
areaRegionConfigStates Object for field areaRegionConfigStates false
configured boolean false
expectedFlowPPM integer false
disableFlowSensing boolean false
expectedFlowProcessState integer false
startOfUpdatingFlow integer false
updatePPM boolean false
gpm number false
customGpm number false

Object for field areaRegionConfigStates

Name Type Required Description
* boolean false

FlowSensorSettings

Name Type Required Description
flowSensorId string false
manufacturer string false
type string false
factorK number false
offset number false

Schedule

Name Type Required Description
timestamp integer false
controllerId string false
plans integer[ ] false
counts Count[ ] false
programs Program[ ] false
dumps Dump[ ] false
oneTimeSchedule boolean false
id string false
watered boolean false
appliedDateTime integer false
timezoneOffsetMillis integer false

Count

Name Type Required Description
stationNumber integer false
countNumber integer false

Program

Name Type Required Description
stationNumber integer false
waterMinutes integer false
wateringCycles integer false
skip integer false
count integer false
plans integer false
waterDays integer false
soakMinutes integer false
expectedFlowPPM integer false
fertigationMinutes integer false
suppressPump boolean false
groupNumber integer false
waterInRain boolean false
wateringAdjustmentCoefficient number false
fixedProgramId string false
distributionUniformityCoefficient number false
frequencyAdjustmentCoefficient number false
programStats ProgramStats false
watered boolean false

ProgramStats

Name Type Required Description
effectiveRainMm number false
reducedIrrigationMm number false
reducedIrrigationMin number false
iterationsCount integer false

Dump

Name Type Required Description
stationNumber integer false
cycleStarts integer[ ] false
cycleLengths integer[ ] false
groups integer[ ] false

MultiValveSettings

Name Type Required Description
multiValveMode boolean false
maxSimultaneousIrrigationValves integer false
masterValve boolean false
boosterPump boolean false
waterAloneStations integer[ ] false

V1 | Estimated Water Usage Report API

Validate estimated water usage report

Request

curl "https://developer-api.etwater.com/api/v1/reports/estimated-water-usage-report/validate" \
-X POST \
-H "Authorization: example string value" \
--data "{
    \"projectControllers\": {
        \"projectControllers\": [
            {
                \"projectId\": \"example string value\",
                \"controllerIdList\": [
                    \"example string value\"
                ]
            }
        ]
    }
}"

On success, the above request returns response like

{
    "projectsFlowRates": [
        {
            "projectId": "example string value",
            "projectName": "example string value",
            "controllers": [
                {
                    "controllerId": "example string value",
                    "name": "example string value",
                    "zones": [
                        {
                            "zoneId": "example string value",
                            "number": 966,
                            "name": "example string value",
                            "flowRateGpm": 8.833413482100429
                        }
                    ]
                }
            ]
        }
    ]
}

HTTP Request

POST /api/v1/reports/estimated-water-usage-report/validate

Request parameters

Name Type Part Required Description
Authorization string header true
EstimatedWaterUsageReportValidateRequest EstimatedWaterUsageReportValidateRequest body true

EstimatedWaterUsageReportValidateRequest

Name Type Required Description
projectControllers ProjectControllersFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
projectsFlowRates ProjectFlowRate[ ] false

ProjectFlowRate

Name Type Required Description
projectId string false
projectName string false
controllers Controller[ ] false

Controller

Name Type Required Description
controllerId string false
name string false
zones Zone[ ] false

Zone

Name Type Required Description
zoneId string false
number integer false
name string false
flowRateGpm number false

Create estimated water usage report

Request

curl "https://developer-api.etwater.com/api/v1/reports/estimated-water-usage-report?startDate=example+string+value&endDate=example+string+value&interval=example+string+value&measureUnits=example+string+value" \
-X POST \
-H "Authorization: example string value" \
--data "{
    \"filters\": {
        \"projectControllers\": {
            \"projectControllers\": [
                {
                    \"projectId\": \"example string value\",
                    \"controllerIdList\": [
                        \"example string value\"
                    ]
                }
            ]
        },
        \"measureUnits\": {
            \"units\": \"GALLONS\"
        },
        \"period\": {
            \"startDate\": \"example string value\",
            \"endDate\": \"example string value\",
            \"interval\": \"DAY\"
        }
    },
    \"projectsFlowRates\": [
        {
            \"projectId\": \"example string value\",
            \"projectName\": \"example string value\",
            \"controllers\": [
                {
                    \"controllerId\": \"example string value\",
                    \"name\": \"example string value\",
                    \"zones\": [
                        {
                            \"zoneId\": \"example string value\",
                            \"number\": 295,
                            \"name\": \"example string value\",
                            \"flowRateGpm\": 583
                        }
                    ]
                }
            ]
        }
    ],
    \"meta\": {
        \"example_property_name\": \"example string value\"
    }
}"

On success, the above request returns response like

{
    "id": "example string value",
    "status": "IN_PROGRESS",
    "filters": {
        "projectControllers": {
            "projectControllers": [
                {
                    "projectId": "example string value",
                    "controllerIdList": [
                        "example string value"
                    ]
                }
            ]
        },
        "measureUnits": {
            "units": "HCF"
        },
        "period": {
            "startDate": "example string value",
            "endDate": "example string value",
            "interval": "DAY"
        }
    },
    "userId": "example string value",
    "meta": {
        "example_property_name": "example string value"
    }
}

HTTP Request

POST /api/v1/reports/estimated-water-usage-report

Request parameters

Name Type Part Required Description
Authorization string header true
startDate string query true
endDate string query true
interval string query false
measureUnits string query false
EstimatedWaterUsageReportCreateRequest EstimatedWaterUsageReportCreateRequest body true

EstimatedWaterUsageReportCreateRequest

Name Type Required Description
filters ReportFilters false
projectsFlowRates ProjectFlowRate[ ] false
meta Object for field meta false

ReportFilters

Name Type Required Description
projectControllers ProjectControllersFilter false
measureUnits WateringMeasureUnitsFilter false
period PeriodFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

WateringMeasureUnitsFilter

Name Type Required Description
units string false

PeriodFilter

Name Type Required Description
startDate string false
endDate string false
interval string false

ProjectFlowRate

Name Type Required Description
projectId string false
projectName string false
controllers Controller[ ] false

Controller

Name Type Required Description
controllerId string false
name string false
zones Zone[ ] false

Zone

Name Type Required Description
zoneId string false
number integer false
name string false
flowRateGpm number false

Object for field meta

Name Type Required Description
* string false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
status string false
filters ReportFilters false
userId string false
meta Object for field meta false

ReportFilters

Name Type Required Description
projectControllers ProjectControllersFilter false
measureUnits WateringMeasureUnitsFilter false
period PeriodFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

WateringMeasureUnitsFilter

Name Type Required Description
units string false

PeriodFilter

Name Type Required Description
startDate string false
endDate string false
interval string false

Object for field meta

Name Type Required Description
* string false

Get estimated water usage report

Request

curl "https://developer-api.etwater.com/api/v1/reports/estimated-water-usage-report/{id}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "status": "DONE",
    "data": {
        "total": {
            "dateStart": "example string value",
            "dateEnd": "example string value",
            "waterUsage": 679,
            "projects": [
                {
                    "projectId": "example string value",
                    "name": "example string value",
                    "waterUsage": 791.3124555681425,
                    "controllers": [
                        {
                            "controllerId": "example string value",
                            "name": "example string value",
                            "waterUsage": 965,
                            "zones": [
                                {
                                    "zoneId": "example string value",
                                    "zoneNumber": 50,
                                    "name": "example string value",
                                    "waterUsage": 845.9077239250335
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        "buckets": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "waterUsage": 14,
                "projects": [
                    {
                        "projectId": "example string value",
                        "name": "example string value",
                        "waterUsage": 644.5158699734676,
                        "controllers": [
                            {
                                "controllerId": "example string value",
                                "name": "example string value",
                                "waterUsage": 20,
                                "zones": [
                                    {
                                        "zoneId": "example string value",
                                        "zoneNumber": 832,
                                        "name": "example string value",
                                        "waterUsage": 918
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ],
        "bucketsTotal": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "waterUsage": 125.74644858285153
            }
        ],
        "projectsFlowRates": [
            {
                "projectId": "example string value",
                "projectName": "example string value",
                "controllers": [
                    {
                        "controllerId": "example string value",
                        "name": "example string value",
                        "zones": [
                            {
                                "zoneId": "example string value",
                                "number": 671,
                                "name": "example string value",
                                "flowRateGpm": 600
                            }
                        ]
                    }
                ]
            }
        ]
    },
    "filters": {
        "projectControllers": {
            "projectControllers": [
                {
                    "projectId": "example string value",
                    "controllerIdList": [
                        "example string value"
                    ]
                }
            ]
        },
        "measureUnits": {
            "units": "GALLONS"
        },
        "period": {
            "startDate": "example string value",
            "endDate": "example string value",
            "interval": "MONTH"
        }
    },
    "userId": "example string value",
    "meta": {
        "example_property_name": "example string value"
    }
}

HTTP Request

GET /api/v1/reports/estimated-water-usage-report/{id}

Request parameters

Name Type Part Required Description
Authorization string header true
id string path true

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
status string false
data ReportData false
filters ReportFilters false
userId string false
meta Object for field meta false

ReportData

Name Type Required Description
total Bucket false
buckets Bucket[ ] false
bucketsTotal BucketTotal[ ] false
projectsFlowRates ProjectFlowRate[ ] false

Bucket

Name Type Required Description
dateStart string false
dateEnd string false
waterUsage number false
projects ReportProject[ ] false

ReportProject

Name Type Required Description
projectId string false
name string false
waterUsage number false
controllers ReportController[ ] false

ReportController

Name Type Required Description
controllerId string false
name string false
waterUsage number false
zones ReportZone[ ] false

ReportZone

Name Type Required Description
zoneId string false
zoneNumber integer false
name string false
waterUsage number false

BucketTotal

Name Type Required Description
dateStart string false
dateEnd string false
waterUsage number false

ProjectFlowRate

Name Type Required Description
projectId string false
projectName string false
controllers Controller[ ] false

Controller

Name Type Required Description
controllerId string false
name string false
zones Zone[ ] false

Zone

Name Type Required Description
zoneId string false
number integer false
name string false
flowRateGpm number false

ReportFilters

Name Type Required Description
projectControllers ProjectControllersFilter false
measureUnits WateringMeasureUnitsFilter false
period PeriodFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

WateringMeasureUnitsFilter

Name Type Required Description
units string false

PeriodFilter

Name Type Required Description
startDate string false
endDate string false
interval string false

Object for field meta

Name Type Required Description
* string false

V1 | Gardening Parcels API

The Gardening Parcels API is used to manage property parcels associated with a user. Unity API has a database of over 140 million property parcels, covering more than 96% of the U.S. population, so you’ll likely find the parcel boundaries for your project. In case you don’t, you can create it. Having a parcel associated with a landscape allows you to verify the address as well as know the landscape size and situation.

Get all Parcels.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/parcels" \
-X GET \
-H "Authorization: example string value" \
-H "Content-Type: example string value"

On success, the above request returns response like

[]

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

{projectId} - project id value.

Response body fields description:

HTTP Request

GET /api/v1/gardening/projects/{projectId}/parcels

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id

HTTP Responses

Code Description
200 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Create a Parcel.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/parcels" \
-X POST \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "{
    \"id\": \"example string value\",
    \"county_id\": \"example string value\",
    \"county_name\": \"example string value\",
    \"muni_name\": \"example string value\",
    \"state_abbr\": \"example string value\",
    \"addr_number\": \"example string value\",
    \"addr_street_prefix\": \"example string value\",
    \"addr_street_name\": \"example string value\",
    \"addr_street_suffix\": \"example string value\",
    \"addr_street_type\": \"example string value\",
    \"physcity\": \"example string value\",
    \"physzip\": \"example string value\",
    \"census_zip\": \"example string value\",
    \"owner\": \"example string value\",
    \"mail_name\": \"example string value\",
    \"mail_address1\": \"example string value\",
    \"mail_address2\": \"example string value\",
    \"mail_address3\": \"example string value\",
    \"trans_date\": \"example string value\",
    \"sale_price\": 958,
    \"mkt_val_land\": \"example string value\",
    \"mkt_val_bldg\": \"example string value\",
    \"mkt_val_tot\": 364.73451432061125,
    \"bldg_sqft\": 731,
    \"ngh_code\": \"example string value\",
    \"land_use_code\": \"example string value\",
    \"land_use_class\": \"example string value\",
    \"story_height\": \"example string value\",
    \"muni_id\": \"example string value\",
    \"school_distId\": \"example string value\",
    \"acreage_deeded\": \"example string value\",
    \"acreage_calc\": 594,
    \"geom_as_wkt\": \"example string value\",
    \"user_id\": \"example string value\",
    \"external_id\": \"example string value\",
    \"project_id\": \"example string value\",
    \"is_custom\": true,
    \"centerCoordinates\": [
        219.96972021645388
    ],
    \"landscapeId\": \"example string value\",
    \"areaM2\": 810.5421917562103,
    \"version\": \"-1\"
}"

On success, the above request returns response like

no reponse

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

{projectId} - project id value.

Request body fields description:

The same as for response body.

Response body fields description:

HTTP Request

POST /api/v1/gardening/projects/{projectId}/parcels

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id
parcel GardeningParcel body true

GardeningParcel

Name Type Required Description
id string false
county_id string false
county_name string false
muni_name string false
state_abbr string false
addr_number string false
addr_street_prefix string false
addr_street_name string false
addr_street_suffix string false
addr_street_type string false
physcity string false
physzip string false
census_zip string false
owner string false
mail_name string false
mail_address1 string false
mail_address2 string false
mail_address3 string false
trans_date string false
sale_price number false
mkt_val_land string false
mkt_val_bldg string false
mkt_val_tot number false
bldg_sqft integer false
ngh_code string false
land_use_code string false
land_use_class string false
story_height string false
muni_id string false
school_distId string false
acreage_deeded string false
acreage_calc number false
geom_as_wkt string false
user_id string false
external_id string false
project_id string false
is_custom boolean false
centerCoordinates number[ ] false
landscapeId string false
areaM2 number false
version integer false

HTTP Responses

Code Description
201 Successful Response
404 Error Response
409 Error Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
county_id string false
county_name string false
muni_name string false
state_abbr string false
addr_number string false
addr_street_prefix string false
addr_street_name string false
addr_street_suffix string false
addr_street_type string false
physcity string false
physzip string false
census_zip string false
owner string false
mail_name string false
mail_address1 string false
mail_address2 string false
mail_address3 string false
trans_date string false
sale_price number false
mkt_val_land string false
mkt_val_bldg string false
mkt_val_tot number false
bldg_sqft integer false
ngh_code string false
land_use_code string false
land_use_class string false
story_height string false
muni_id string false
school_distId string false
acreage_deeded string false
acreage_calc number false
geom_as_wkt string false
user_id string false
external_id string false
project_id string false
is_custom boolean false
centerCoordinates number[ ] false
landscapeId string false
areaM2 number false
version integer false

Delete all parcels for project

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/parcels" \
-X DELETE \
-H "Authorization: example string value"

On success, the above request returns response like

no reponse

HTTP Request

DELETE /api/v1/gardening/projects/{projectId}/parcels

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true Project id

HTTP Responses

Code Description
204 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Get Parcel by id

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/parcels/{parcelId}" \
-X GET \
-H "Authorization: example string value" \
-H "Content-Type: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "county_id": "example string value",
    "county_name": "example string value",
    "muni_name": "example string value",
    "state_abbr": "example string value",
    "addr_number": "example string value",
    "addr_street_prefix": "example string value",
    "addr_street_name": "example string value",
    "addr_street_suffix": "example string value",
    "addr_street_type": "example string value",
    "physcity": "example string value",
    "physzip": "example string value",
    "census_zip": "example string value",
    "owner": "example string value",
    "mail_name": "example string value",
    "mail_address1": "example string value",
    "mail_address2": "example string value",
    "mail_address3": "example string value",
    "trans_date": "example string value",
    "sale_price": 119.33511920242343,
    "mkt_val_land": "example string value",
    "mkt_val_bldg": "example string value",
    "mkt_val_tot": 281,
    "bldg_sqft": 549,
    "ngh_code": "example string value",
    "land_use_code": "example string value",
    "land_use_class": "example string value",
    "story_height": "example string value",
    "muni_id": "example string value",
    "school_distId": "example string value",
    "acreage_deeded": "example string value",
    "acreage_calc": 774.1678332789651,
    "geom_as_wkt": "example string value",
    "user_id": "example string value",
    "external_id": "example string value",
    "project_id": "example string value",
    "is_custom": true,
    "centerCoordinates": [
        216.6995467695871
    ],
    "landscapeId": "example string value",
    "areaM2": 224.28384619964467,
    "version": "-1"
}

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

Response body fields description:

HTTP Request

GET /api/v1/gardening/projects/{projectId}/parcels/{parcelId}

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id
parcelId string path true Parcel id

HTTP Responses

Code Description
200 Successful Response
404 Error Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
county_id string false
county_name string false
muni_name string false
state_abbr string false
addr_number string false
addr_street_prefix string false
addr_street_name string false
addr_street_suffix string false
addr_street_type string false
physcity string false
physzip string false
census_zip string false
owner string false
mail_name string false
mail_address1 string false
mail_address2 string false
mail_address3 string false
trans_date string false
sale_price number false
mkt_val_land string false
mkt_val_bldg string false
mkt_val_tot number false
bldg_sqft integer false
ngh_code string false
land_use_code string false
land_use_class string false
story_height string false
muni_id string false
school_distId string false
acreage_deeded string false
acreage_calc number false
geom_as_wkt string false
user_id string false
external_id string false
project_id string false
is_custom boolean false
centerCoordinates number[ ] false
landscapeId string false
areaM2 number false
version integer false

Delete Parcel by id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/parcels/{parcelId}" \
-X DELETE \
-H "Authorization: example string value" \
-H "Content-Type: example string value"

On success, the above request returns response like

no reponse

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

HTTP Request

DELETE /api/v1/gardening/projects/{projectId}/parcels/{parcelId}

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id
parcelId string path true id of Parcel

HTTP Responses

Code Description
204 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Update Parcel by id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/parcels/{parcelId}" \
-X PUT \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "{
    \"id\": \"example string value\",
    \"county_id\": \"example string value\",
    \"county_name\": \"example string value\",
    \"muni_name\": \"example string value\",
    \"state_abbr\": \"example string value\",
    \"addr_number\": \"example string value\",
    \"addr_street_prefix\": \"example string value\",
    \"addr_street_name\": \"example string value\",
    \"addr_street_suffix\": \"example string value\",
    \"addr_street_type\": \"example string value\",
    \"physcity\": \"example string value\",
    \"physzip\": \"example string value\",
    \"census_zip\": \"example string value\",
    \"owner\": \"example string value\",
    \"mail_name\": \"example string value\",
    \"mail_address1\": \"example string value\",
    \"mail_address2\": \"example string value\",
    \"mail_address3\": \"example string value\",
    \"trans_date\": \"example string value\",
    \"sale_price\": 200,
    \"mkt_val_land\": \"example string value\",
    \"mkt_val_bldg\": \"example string value\",
    \"mkt_val_tot\": 126,
    \"bldg_sqft\": 16,
    \"ngh_code\": \"example string value\",
    \"land_use_code\": \"example string value\",
    \"land_use_class\": \"example string value\",
    \"story_height\": \"example string value\",
    \"muni_id\": \"example string value\",
    \"school_distId\": \"example string value\",
    \"acreage_deeded\": \"example string value\",
    \"acreage_calc\": 880.9235505205223,
    \"geom_as_wkt\": \"example string value\",
    \"user_id\": \"example string value\",
    \"external_id\": \"example string value\",
    \"project_id\": \"example string value\",
    \"is_custom\": false,
    \"centerCoordinates\": [
        411.31952424129446
    ],
    \"landscapeId\": \"example string value\",
    \"areaM2\": 810,
    \"version\": \"-1\"
}"

On success, the above request returns response like

{
    "id": "example string value",
    "county_id": "example string value",
    "county_name": "example string value",
    "muni_name": "example string value",
    "state_abbr": "example string value",
    "addr_number": "example string value",
    "addr_street_prefix": "example string value",
    "addr_street_name": "example string value",
    "addr_street_suffix": "example string value",
    "addr_street_type": "example string value",
    "physcity": "example string value",
    "physzip": "example string value",
    "census_zip": "example string value",
    "owner": "example string value",
    "mail_name": "example string value",
    "mail_address1": "example string value",
    "mail_address2": "example string value",
    "mail_address3": "example string value",
    "trans_date": "example string value",
    "sale_price": 141.2670962238997,
    "mkt_val_land": "example string value",
    "mkt_val_bldg": "example string value",
    "mkt_val_tot": 925,
    "bldg_sqft": 695,
    "ngh_code": "example string value",
    "land_use_code": "example string value",
    "land_use_class": "example string value",
    "story_height": "example string value",
    "muni_id": "example string value",
    "school_distId": "example string value",
    "acreage_deeded": "example string value",
    "acreage_calc": 568.8802937832104,
    "geom_as_wkt": "example string value",
    "user_id": "example string value",
    "external_id": "example string value",
    "project_id": "example string value",
    "is_custom": true,
    "centerCoordinates": [
        197.40587202711305
    ],
    "landscapeId": "example string value",
    "areaM2": 768,
    "version": "-1"
}

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

Request body fields description:

The same as for response body.

Response body fields description:

HTTP Request

PUT /api/v1/gardening/projects/{projectId}/parcels/{parcelId}

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id
parcelId string path true id of Parcel
parcel GardeningParcel body true

GardeningParcel

Name Type Required Description
id string false
county_id string false
county_name string false
muni_name string false
state_abbr string false
addr_number string false
addr_street_prefix string false
addr_street_name string false
addr_street_suffix string false
addr_street_type string false
physcity string false
physzip string false
census_zip string false
owner string false
mail_name string false
mail_address1 string false
mail_address2 string false
mail_address3 string false
trans_date string false
sale_price number false
mkt_val_land string false
mkt_val_bldg string false
mkt_val_tot number false
bldg_sqft integer false
ngh_code string false
land_use_code string false
land_use_class string false
story_height string false
muni_id string false
school_distId string false
acreage_deeded string false
acreage_calc number false
geom_as_wkt string false
user_id string false
external_id string false
project_id string false
is_custom boolean false
centerCoordinates number[ ] false
landscapeId string false
areaM2 number false
version integer false

HTTP Responses

Code Description
200 Successful Response
404 Error Response
409 Error Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
county_id string false
county_name string false
muni_name string false
state_abbr string false
addr_number string false
addr_street_prefix string false
addr_street_name string false
addr_street_suffix string false
addr_street_type string false
physcity string false
physzip string false
census_zip string false
owner string false
mail_name string false
mail_address1 string false
mail_address2 string false
mail_address3 string false
trans_date string false
sale_price number false
mkt_val_land string false
mkt_val_bldg string false
mkt_val_tot number false
bldg_sqft integer false
ngh_code string false
land_use_code string false
land_use_class string false
story_height string false
muni_id string false
school_distId string false
acreage_deeded string false
acreage_calc number false
geom_as_wkt string false
user_id string false
external_id string false
project_id string false
is_custom boolean false
centerCoordinates number[ ] false
landscapeId string false
areaM2 number false
version integer false

V1 | Gardening Parcels Revisions API

Use the Gardening Parcels Revisions API to retrieve earlier versions of a parcel’s settings. The Gardening Snapshots API keeps a history of all the changes and their version numbers, you’ll use that version number to retrieve the details of the parcel’s state at that timestamp.

Get Parcel Revision by id

Request

curl "https://developer-api.etwater.com/api/v1/gardening/parcels-revisions/{revisionId}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "timestamp": 614,
    "parcel": {
        "id": "example string value",
        "county_id": "example string value",
        "county_name": "example string value",
        "muni_name": "example string value",
        "state_abbr": "example string value",
        "addr_number": "example string value",
        "addr_street_prefix": "example string value",
        "addr_street_name": "example string value",
        "addr_street_suffix": "example string value",
        "addr_street_type": "example string value",
        "physcity": "example string value",
        "physzip": "example string value",
        "census_zip": "example string value",
        "owner": "example string value",
        "mail_name": "example string value",
        "mail_address1": "example string value",
        "mail_address2": "example string value",
        "mail_address3": "example string value",
        "trans_date": "example string value",
        "sale_price": 229,
        "mkt_val_land": "example string value",
        "mkt_val_bldg": "example string value",
        "mkt_val_tot": 820.0181703176434,
        "bldg_sqft": 645,
        "ngh_code": "example string value",
        "land_use_code": "example string value",
        "land_use_class": "example string value",
        "story_height": "example string value",
        "muni_id": "example string value",
        "school_distId": "example string value",
        "acreage_deeded": "example string value",
        "acreage_calc": 374.8877855832166,
        "geom_as_wkt": "example string value",
        "user_id": "example string value",
        "external_id": "example string value",
        "project_id": "example string value",
        "is_custom": false,
        "centerCoordinates": [
            81.28233350873103
        ],
        "landscapeId": "example string value",
        "areaM2": 318,
        "version": "-1"
    }
}

HTTP Request

GET /api/v1/gardening/parcels-revisions/{revisionId}

Request parameters

Name Type Part Required Description
Authorization string header true
revisionId string path true

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
timestamp integer false
parcel Parcel false

Parcel

Name Type Required Description
id string false
county_id string false
county_name string false
muni_name string false
state_abbr string false
addr_number string false
addr_street_prefix string false
addr_street_name string false
addr_street_suffix string false
addr_street_type string false
physcity string false
physzip string false
census_zip string false
owner string false
mail_name string false
mail_address1 string false
mail_address2 string false
mail_address3 string false
trans_date string false
sale_price number false
mkt_val_land string false
mkt_val_bldg string false
mkt_val_tot number false
bldg_sqft integer false
ngh_code string false
land_use_code string false
land_use_class string false
story_height string false
muni_id string false
school_distId string false
acreage_deeded string false
acreage_calc number false
geom_as_wkt string false
user_id string false
external_id string false
project_id string false
is_custom boolean false
centerCoordinates number[ ] false
landscapeId string false
areaM2 number false
version integer false

V1 | Gardening Projects API

API is dedicated for managing Projects. Project is usually one physical location with one or several CCU installed and binds together all the vegetation item being irrigated.

Get all projects

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects?page=0&size=10&unity=0" \
-X GET \
-H "Authorization: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value"

On success, the above request returns response like

[]

HTTP Request

GET /api/v1/gardening/projects

Request parameters

Name Type Part Required Description
Authorization string header true OAuth2 authorization header. Should be in the following format: Authorization: Bearer $TOKEN
page integer query false
size integer query false
unity boolean query false
Unity-Api-Gateway-Replace-UserId string header false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Create Project action.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects?version=325" \
-X POST \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value" \
--data "{
    \"id\": \"example string value\",
    \"name\": \"example string value\",
    \"user_id\": \"example string value\",
    \"address\": \"example string value\",
    \"location\": {
        \"type\": \"Point\",
        \"coordinates\": [
            65.48991709271908
        ],
        \"properties\": {
            \"example_property_name\": \"example string value\"
        }
    },
    \"created_at\": 559,
    \"updated_at\": 821,
    \"version\": \"-1\",
    \"postal_code\": \"example string value\",
    \"billingAddress\": {
        \"firstName\": \"example string value\",
        \"lastName\": \"example string value\",
        \"company\": \"example string value\",
        \"address1\": \"example string value\",
        \"address2\": \"example string value\",
        \"city\": \"example string value\",
        \"state\": \"example string value\",
        \"postcode\": \"example string value\",
        \"country\": \"example string value\",
        \"email\": \"example string value\",
        \"phone\": \"example string value\"
    },
    \"projectAddress\": {
        \"address1\": \"example string value\",
        \"address2\": \"example string value\",
        \"city\": \"example string value\",
        \"state\": \"example string value\",
        \"postcode\": \"example string value\",
        \"country\": \"example string value\"
    },
    \"unity\": true
}"

On success, the above request returns response like

no reponse

HTTP Request

POST /api/v1/gardening/projects

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
Unity-Api-Gateway-Replace-UserId string header false
Project GardeningProject body true
version integer query false version of Project

GardeningProject

Name Type Required Description
id string false A unique string that can be used to identify and reference a specific project.
name string false A human-readable name for the project.
user_id string false
address string false A human-readable name for the project.
location Point false Location information
created_at integer false Unix timestamp of a project creation
updated_at integer false Unix timestamp of a project last update
version integer false Version of a project
postal_code string false Project’s postal code.
billingAddress BillingAddress false
projectAddress ProjectAddress false
unity boolean false

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

BillingAddress

Name Type Required Description
firstName string false
lastName string false
company string false
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false
email string false
phone string false

ProjectAddress

Name Type Required Description
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false

HTTP Responses

Code Description
201 Created
409 Conflict
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false A unique string that can be used to identify and reference a specific project.
name string false A human-readable name for the project.
user_id string false
address string false A human-readable name for the project.
location Point false Location information
created_at integer false Unix timestamp of a project creation
updated_at integer false Unix timestamp of a project last update
version integer false Version of a project
postal_code string false Project’s postal code.
billingAddress BillingAddress false
projectAddress ProjectAddress false
unity boolean false

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

BillingAddress

Name Type Required Description
firstName string false
lastName string false
company string false
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false
email string false
phone string false

ProjectAddress

Name Type Required Description
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false

Create or update projects

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects" \
-X PATCH \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "[
    {
        \"id\": \"example string value\",
        \"name\": \"example string value\",
        \"user_id\": \"example string value\",
        \"address\": \"example string value\",
        \"location\": {
            \"type\": \"Point\",
            \"coordinates\": [
                516.8834084257871
            ],
            \"properties\": {
                \"example_property_name\": \"example string value\"
            }
        },
        \"created_at\": 733,
        \"updated_at\": 382,
        \"version\": \"-1\",
        \"postal_code\": \"example string value\",
        \"billingAddress\": {
            \"firstName\": \"example string value\",
            \"lastName\": \"example string value\",
            \"company\": \"example string value\",
            \"address1\": \"example string value\",
            \"address2\": \"example string value\",
            \"city\": \"example string value\",
            \"state\": \"example string value\",
            \"postcode\": \"example string value\",
            \"country\": \"example string value\",
            \"email\": \"example string value\",
            \"phone\": \"example string value\"
        },
        \"projectAddress\": {
            \"address1\": \"example string value\",
            \"address2\": \"example string value\",
            \"city\": \"example string value\",
            \"state\": \"example string value\",
            \"postcode\": \"example string value\",
            \"country\": \"example string value\"
        },
        \"unity\": false
    }
]"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "name": "example string value",
        "user_id": "example string value",
        "address": "example string value",
        "location": {
            "type": "Point",
            "coordinates": [
                484.5507761857243
            ],
            "properties": {
                "example_property_name": "example string value"
            }
        },
        "created_at": 692,
        "updated_at": 621,
        "version": "-1",
        "postal_code": "example string value",
        "billingAddress": {
            "firstName": "example string value",
            "lastName": "example string value",
            "company": "example string value",
            "address1": "example string value",
            "address2": "example string value",
            "city": "example string value",
            "state": "example string value",
            "postcode": "example string value",
            "country": "example string value",
            "email": "example string value",
            "phone": "example string value"
        },
        "projectAddress": {
            "address1": "example string value",
            "address2": "example string value",
            "city": "example string value",
            "state": "example string value",
            "postcode": "example string value",
            "country": "example string value"
        },
        "unity": false
    }
]

HTTP Request

PATCH /api/v1/gardening/projects

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
Projects GardeningProject[ ] body true

GardeningProject

Name Type Required Description
id string false A unique string that can be used to identify and reference a specific project.
name string false A human-readable name for the project.
user_id string false
address string false A human-readable name for the project.
location Point false Location information
created_at integer false Unix timestamp of a project creation
updated_at integer false Unix timestamp of a project last update
version integer false Version of a project
postal_code string false Project’s postal code.
billingAddress BillingAddress false
projectAddress ProjectAddress false
unity boolean false

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

BillingAddress

Name Type Required Description
firstName string false
lastName string false
company string false
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false
email string false
phone string false

ProjectAddress

Name Type Required Description
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false

HTTP Responses

Code Description
200 OK
409 Conflict
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false A unique string that can be used to identify and reference a specific project.
name string false A human-readable name for the project.
user_id string false
address string false A human-readable name for the project.
location Point false Location information
created_at integer false Unix timestamp of a project creation
updated_at integer false Unix timestamp of a project last update
version integer false Version of a project
postal_code string false Project’s postal code.
billingAddress BillingAddress false
projectAddress ProjectAddress false
unity boolean false

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

BillingAddress

Name Type Required Description
firstName string false
lastName string false
company string false
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false
email string false
phone string false

ProjectAddress

Name Type Required Description
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false

Delete Projects owned by a user.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects?version=255" \
-X DELETE \
-H "Authorization: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value"

On success, the above request returns response like

no reponse

HTTP Request

DELETE /api/v1/gardening/projects

Request parameters

Name Type Part Required Description
Authorization string header true
Unity-Api-Gateway-Replace-UserId string header false
version integer query false version of Project

HTTP Responses

Code Description
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Search project by term

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/search?page=0&size=10&unity=0&searchTerm=example+string+value" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

[
    {
        "projects": [
            {
                "id": "example string value",
                "name": "example string value",
                "user_id": "example string value",
                "address": "example string value",
                "location": {
                    "type": "Point",
                    "coordinates": [
                        829.1770125875142
                    ],
                    "properties": {
                        "example_property_name": "example string value"
                    }
                },
                "created_at": 722,
                "updated_at": 120,
                "version": "-1",
                "postal_code": "example string value",
                "billingAddress": {
                    "firstName": "example string value",
                    "lastName": "example string value",
                    "company": "example string value",
                    "address1": "example string value",
                    "address2": "example string value",
                    "city": "example string value",
                    "state": "example string value",
                    "postcode": "example string value",
                    "country": "example string value",
                    "email": "example string value",
                    "phone": "example string value"
                },
                "projectAddress": {
                    "address1": "example string value",
                    "address2": "example string value",
                    "city": "example string value",
                    "state": "example string value",
                    "postcode": "example string value",
                    "country": "example string value"
                },
                "unity": true
            }
        ],
        "page": 609,
        "size": 723,
        "total": 606
    }
]

HTTP Request

GET /api/v1/gardening/projects/search

Request parameters

Name Type Part Required Description
Authorization string header true
page integer query false
size integer query false
unity boolean query false
searchTerm string query false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
projects Project[ ] false
page integer false
size integer false
total integer false

Project

Name Type Required Description
id string false A unique string that can be used to identify and reference a specific project.
name string false A human-readable name for the project.
user_id string false
address string false A human-readable name for the project.
location Point false Location information
created_at integer false Unix timestamp of a project creation
updated_at integer false Unix timestamp of a project last update
version integer false Version of a project
postal_code string false Project’s postal code.
billingAddress BillingAddress false
projectAddress ProjectAddress false
unity boolean false

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

BillingAddress

Name Type Required Description
firstName string false
lastName string false
company string false
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false
email string false
phone string false

ProjectAddress

Name Type Required Description
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false

Get Project by it’s id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}" \
-X GET \
-H "Authorization: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "name": "example string value",
    "user_id": "example string value",
    "address": "example string value",
    "location": {
        "type": "Point",
        "coordinates": [
            833
        ],
        "properties": {
            "example_property_name": "example string value"
        }
    },
    "created_at": 88,
    "updated_at": 441,
    "version": "-1",
    "postal_code": "example string value",
    "billingAddress": {
        "firstName": "example string value",
        "lastName": "example string value",
        "company": "example string value",
        "address1": "example string value",
        "address2": "example string value",
        "city": "example string value",
        "state": "example string value",
        "postcode": "example string value",
        "country": "example string value",
        "email": "example string value",
        "phone": "example string value"
    },
    "projectAddress": {
        "address1": "example string value",
        "address2": "example string value",
        "city": "example string value",
        "state": "example string value",
        "postcode": "example string value",
        "country": "example string value"
    },
    "unity": true
}

HTTP Request

GET /api/v1/gardening/projects/{projectId}

Request parameters

Name Type Part Required Description
Authorization string header true
Unity-Api-Gateway-Replace-UserId string header false
projectId string path true Project id

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false A unique string that can be used to identify and reference a specific project.
name string false A human-readable name for the project.
user_id string false
address string false A human-readable name for the project.
location Point false Location information
created_at integer false Unix timestamp of a project creation
updated_at integer false Unix timestamp of a project last update
version integer false Version of a project
postal_code string false Project’s postal code.
billingAddress BillingAddress false
projectAddress ProjectAddress false
unity boolean false

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

BillingAddress

Name Type Required Description
firstName string false
lastName string false
company string false
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false
email string false
phone string false

ProjectAddress

Name Type Required Description
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false

Delete Project by it’s id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}?version=386" \
-X DELETE \
-H "Authorization: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value"

On success, the above request returns response like

no reponse

HTTP Request

DELETE /api/v1/gardening/projects/{projectId}

Request parameters

Name Type Part Required Description
Authorization string header true
Unity-Api-Gateway-Replace-UserId string header false
projectId string path true id of Project
version integer query false version of Project

HTTP Responses

Code Description
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Update Project by it’s id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}?version=61" \
-X PUT \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value" \
--data "{
    \"id\": \"example string value\",
    \"name\": \"example string value\",
    \"user_id\": \"example string value\",
    \"address\": \"example string value\",
    \"location\": {
        \"type\": \"Point\",
        \"coordinates\": [
            417.25940463005537
        ],
        \"properties\": {
            \"example_property_name\": \"example string value\"
        }
    },
    \"created_at\": 29,
    \"updated_at\": 956,
    \"version\": \"-1\",
    \"postal_code\": \"example string value\",
    \"billingAddress\": {
        \"firstName\": \"example string value\",
        \"lastName\": \"example string value\",
        \"company\": \"example string value\",
        \"address1\": \"example string value\",
        \"address2\": \"example string value\",
        \"city\": \"example string value\",
        \"state\": \"example string value\",
        \"postcode\": \"example string value\",
        \"country\": \"example string value\",
        \"email\": \"example string value\",
        \"phone\": \"example string value\"
    },
    \"projectAddress\": {
        \"address1\": \"example string value\",
        \"address2\": \"example string value\",
        \"city\": \"example string value\",
        \"state\": \"example string value\",
        \"postcode\": \"example string value\",
        \"country\": \"example string value\"
    },
    \"unity\": false
}"

On success, the above request returns response like

{
    "id": "example string value",
    "name": "example string value",
    "user_id": "example string value",
    "address": "example string value",
    "location": {
        "type": "Point",
        "coordinates": [
            549
        ],
        "properties": {
            "example_property_name": "example string value"
        }
    },
    "created_at": 974,
    "updated_at": 866,
    "version": "-1",
    "postal_code": "example string value",
    "billingAddress": {
        "firstName": "example string value",
        "lastName": "example string value",
        "company": "example string value",
        "address1": "example string value",
        "address2": "example string value",
        "city": "example string value",
        "state": "example string value",
        "postcode": "example string value",
        "country": "example string value",
        "email": "example string value",
        "phone": "example string value"
    },
    "projectAddress": {
        "address1": "example string value",
        "address2": "example string value",
        "city": "example string value",
        "state": "example string value",
        "postcode": "example string value",
        "country": "example string value"
    },
    "unity": false
}

HTTP Request

PUT /api/v1/gardening/projects/{projectId}

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
Unity-Api-Gateway-Replace-UserId string header false
projectId string path true id of Project
Project GardeningProject body true
version integer query false version of Project

GardeningProject

Name Type Required Description
id string false A unique string that can be used to identify and reference a specific project.
name string false A human-readable name for the project.
user_id string false
address string false A human-readable name for the project.
location Point false Location information
created_at integer false Unix timestamp of a project creation
updated_at integer false Unix timestamp of a project last update
version integer false Version of a project
postal_code string false Project’s postal code.
billingAddress BillingAddress false
projectAddress ProjectAddress false
unity boolean false

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

BillingAddress

Name Type Required Description
firstName string false
lastName string false
company string false
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false
email string false
phone string false

ProjectAddress

Name Type Required Description
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false

HTTP Responses

Code Description
200 OK
404 Not Found
409 Conflict
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false A unique string that can be used to identify and reference a specific project.
name string false A human-readable name for the project.
user_id string false
address string false A human-readable name for the project.
location Point false Location information
created_at integer false Unix timestamp of a project creation
updated_at integer false Unix timestamp of a project last update
version integer false Version of a project
postal_code string false Project’s postal code.
billingAddress BillingAddress false
projectAddress ProjectAddress false
unity boolean false

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

BillingAddress

Name Type Required Description
firstName string false
lastName string false
company string false
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false
email string false
phone string false

ProjectAddress

Name Type Required Description
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false

V1 | Gardening Projects Revisions API

Use the Gardening Projects Revisions API to retrieve earlier versions of a project’s settings. The Gardening Snapshots API keeps a history of all the changes and their version numbers, you’ll use that version number to retrieve the details of the project’s state at that timestamp.

Get Project Revision by id

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects-revisions/{revisionId}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "timestamp": 212,
    "project": {
        "id": "example string value",
        "name": "example string value",
        "user_id": "example string value",
        "address": "example string value",
        "location": {
            "type": "Point",
            "coordinates": [
                590
            ],
            "properties": {
                "example_property_name": "example string value"
            }
        },
        "created_at": 134,
        "updated_at": 683,
        "version": "-1",
        "postal_code": "example string value",
        "billingAddress": {
            "firstName": "example string value",
            "lastName": "example string value",
            "company": "example string value",
            "address1": "example string value",
            "address2": "example string value",
            "city": "example string value",
            "state": "example string value",
            "postcode": "example string value",
            "country": "example string value",
            "email": "example string value",
            "phone": "example string value"
        },
        "projectAddress": {
            "address1": "example string value",
            "address2": "example string value",
            "city": "example string value",
            "state": "example string value",
            "postcode": "example string value",
            "country": "example string value"
        },
        "unity": false
    }
}

HTTP Request

GET /api/v1/gardening/projects-revisions/{revisionId}

Request parameters

Name Type Part Required Description
Authorization string header true
revisionId string path true

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
timestamp integer false
project Project false

Project

Name Type Required Description
id string false A unique string that can be used to identify and reference a specific project.
name string false A human-readable name for the project.
user_id string false
address string false A human-readable name for the project.
location Point false Location information
created_at integer false Unix timestamp of a project creation
updated_at integer false Unix timestamp of a project last update
version integer false Version of a project
postal_code string false Project’s postal code.
billingAddress BillingAddress false
projectAddress ProjectAddress false
unity boolean false

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

BillingAddress

Name Type Required Description
firstName string false
lastName string false
company string false
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false
email string false
phone string false

ProjectAddress

Name Type Required Description
address1 string false
address2 string false
city string false
state string false
postcode string false
country string false

V1 | Gardening Region Types API

The Gardening Region Types API provides a list of possible choices for types of vegetation, used to provide the available options when mapping areas.

Get Region Types Tree

Request

curl "https://developer-api.etwater.com/api/v1/gardening/region-types" \
-X GET \
-H "Authorization: example string value" \
-H "Content-Type: example string value"

On success, the above request returns response like

[]

HTTP Request

GET /api/v1/gardening/region-types

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true

HTTP Responses

Code Description
200 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

V1 | Gardening Regions API

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/regions?controllerId=example+string+value" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

[
    {
        "type": "Feature",
        "geometry": {
            "type": "MultiLineString",
            "coordinates": [
                [
                    [
                        532
                    ]
                ]
            ],
            "properties": {
                "example_property_name": "example string value"
            }
        },
        "properties": {
            "region_name": "example string value",
            "vegetation_type": 802,
            "sprinkler_type": 157,
            "shade_level": 548,
            "newly_planted": true,
            "user_id": "example string value",
            "local_region_id": 630,
            "remote_region_id": "example string value",
            "images": [
                {
                    "image_id": "example string value",
                    "imageFormat": "example string value",
                    "width": 849,
                    "height": 942,
                    "thumbnails": [
                        {
                            "image_id": "example string value",
                            "imageFormat": "example string value",
                            "width": 852,
                            "height": 910,
                            "thumbnails": [],
                            "updatedAt": 884,
                            "imageType": 17
                        }
                    ],
                    "updatedAt": 776,
                    "imageType": 625
                }
            ],
            "controller_serial": "example string value",
            "emitter_count": 455,
            "plant_area": 311.3725419674872,
            "zone_id": "example string value",
            "project_id": "example string value",
            "created_at": 913,
            "updated_at": 445,
            "plant_center_coordinates": [
                415
            ],
            "status": "DELETED",
            "parcel_id": "example string value",
            "parcelExists": false,
            "elevation": 885.4629741448271,
            "plantFactor": [
                341.86313782905376
            ],
            "onlyVegetation": "1",
            "extendAreaRegionType": "1",
            "version": "-1",
            "controllerId": "example string value",
            "areaId": "example string value"
        }
    }
]

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

{projectId} - project id value.

Response body field description:

geolocation pair of longitude/latitude. Example:[[[76.37695312499999, 15.749962572748768], [ 76.37695312499999, 18.396230138028827], [79.27734374999999, 18.396230138028827]]] * properties subentity - contains infomation about the region, subfields:

* region_name - name of region;

* (required) vegetation_type - type of vegetation, which

growth on region, possible values: 0 (TURF), 1 (SHRUBS), 2 (TREES), 3 (FLOWER_AND_VEGETABLES), 4 (CACTI_AND_SUCCULENTS);

* (required) sprinkler_type - type of emitter, which watering

the region, possible values: 0 (SPRAY), 1 (STREAM), 2 (BUBBLER), 3 (DRIP);

* shade_level - describes the shaded level of region, value

can be 0 - 100%;

* newly_planted - describe if plant is newly planted or not;

* user_id - id of owner user;

* local_region_id - id uses in mobile app;

* remote_region_id - id of region (regionId), uses for

get, update, delete methods;

* images - contains information about images on S3 Amazon

Service;

* controller_serial - serial number of controller;

* emitter_count - amount of emitters on region;

* plant_area - area of the region, square meters;

* zone_id - id of zone to which region related;

* project_id - id of project to which region related;

* created_at - date and time when region was created, epoch

millis in UTC;

* updated_at - date and time when region was updated, epoch

millis in UTC;

* plant_center_coordinates - array of geolocation pair of

longitude/latitude, which describe the center of region, example: [ 76.37695312499999, 18.396230138028827];

* status - status of region, can be: ACTIVE, DELETED;

* parcel_id - id of the parcel;

* parcelExists - describes if parcel exist for this region;

* elevation - elevation of the region;

* plantFactor - plant factor values per month.

HTTP Request

GET /api/v1/gardening/projects/{projectId}/regions

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true Project id
controllerId string query false

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
type string false
geometry Geometry false
properties RegionProperties false

Geometry is any of: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

MultiPoint

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

LineString

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

MultiLineString

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

Polygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

MultiPolygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ][ ] true
properties Object for field properties false

GeometryCollection

Name Type Required Description
type string true
geometries Geometry[ ] true

RegionProperties

Name Type Required Description
region_name string false
vegetation_type integer false
sprinkler_type integer false
shade_level integer false
newly_planted boolean false
user_id string false
local_region_id integer false
remote_region_id string false
images ImageInfo[ ] false
controller_serial string false
emitter_count integer false
plant_area number false
zone_id string false
project_id string false
created_at integer false
updated_at integer false
plant_center_coordinates number[ ] false
status string false
parcel_id string false
parcelExists boolean false
elevation number false
plantFactor number[ ] false
onlyVegetation boolean false
extendAreaRegionType boolean false
version integer false
controllerId string false
areaId string false

ImageInfo

Name Type Required Description
image_id string false
imageFormat string false
width integer false
height integer false
thumbnails ImageInfo[ ] false
updatedAt integer false
imageType integer false

Create a Region.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/regions?version=597" \
-X POST \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "{
    \"type\": \"Feature\",
    \"geometry\": {
        \"type\": \"MultiPoint\",
        \"coordinates\": [
            [
                916.9566970863177
            ]
        ],
        \"properties\": {
            \"example_property_name\": \"example string value\"
        }
    },
    \"properties\": {
        \"region_name\": \"example string value\",
        \"vegetation_type\": 852,
        \"sprinkler_type\": 691,
        \"shade_level\": 3,
        \"newly_planted\": true,
        \"user_id\": \"example string value\",
        \"local_region_id\": 294,
        \"remote_region_id\": \"example string value\",
        \"images\": [
            {
                \"image_id\": \"example string value\",
                \"imageFormat\": \"example string value\",
                \"width\": 85,
                \"height\": 208,
                \"thumbnails\": [
                    {
                        \"image_id\": \"example string value\",
                        \"imageFormat\": \"example string value\",
                        \"width\": 606,
                        \"height\": 366,
                        \"thumbnails\": [],
                        \"updatedAt\": 141,
                        \"imageType\": 922
                    }
                ],
                \"updatedAt\": 72,
                \"imageType\": 637
            }
        ],
        \"controller_serial\": \"example string value\",
        \"emitter_count\": 78,
        \"plant_area\": 502,
        \"zone_id\": \"example string value\",
        \"project_id\": \"example string value\",
        \"created_at\": 552,
        \"updated_at\": 292,
        \"plant_center_coordinates\": [
            283
        ],
        \"status\": \"DELETED\",
        \"parcel_id\": \"example string value\",
        \"parcelExists\": true,
        \"elevation\": 249.7557067543993,
        \"plantFactor\": [
            430
        ],
        \"onlyVegetation\": \"1\",
        \"extendAreaRegionType\": \"1\",
        \"version\": \"-1\",
        \"controllerId\": \"example string value\",
        \"areaId\": \"example string value\"
    }
}"

On success, the above request returns response like

no reponse

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

{projectId} - project id value.

Request body fields description:

Request body fields description the same as for response body.

Note, if you want correct ET calculation and watering schedule generation, following fields should be populated in request body: * controller_serial - serial number of controller. It requires for watering schedule generation. If region does not linked to controller, schedule for this region won’t be generated. Schedule is generated for controller; * zone_id - id of zone. It requires for watering schedule generation; * plant_center_coordinates - coordinates of region. Coordinates are used to gather weather and solar radiation information (used for ET calculation) and for getting soil information (used for watering schedule generation); * plant_area - cron size of the plant in case BUBBLER or DRIP emitter type is used otherwase 1 square meter value can be used.

Response body field description:

HTTP Request

POST /api/v1/gardening/projects/{projectId}/regions

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id
region GardeningRegion body true
version integer query false version of Project

GardeningRegion

Name Type Required Description
type string false
geometry Geometry false
properties RegionProperties false

Geometry is any of: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

MultiPoint

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

LineString

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

MultiLineString

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

Polygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

MultiPolygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ][ ] true
properties Object for field properties false

GeometryCollection

Name Type Required Description
type string true
geometries Geometry[ ] true

RegionProperties

Name Type Required Description
region_name string false
vegetation_type integer false
sprinkler_type integer false
shade_level integer false
newly_planted boolean false
user_id string false
local_region_id integer false
remote_region_id string false
images ImageInfo[ ] false
controller_serial string false
emitter_count integer false
plant_area number false
zone_id string false
project_id string false
created_at integer false
updated_at integer false
plant_center_coordinates number[ ] false
status string false
parcel_id string false
parcelExists boolean false
elevation number false
plantFactor number[ ] false
onlyVegetation boolean false
extendAreaRegionType boolean false
version integer false
controllerId string false
areaId string false

ImageInfo

Name Type Required Description
image_id string false
imageFormat string false
width integer false
height integer false
thumbnails ImageInfo[ ] false
updatedAt integer false
imageType integer false

HTTP Responses

Code Description
201 Created
404 Not Found
409 Conflict
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
type string false
geometry Geometry false
properties RegionProperties false

Geometry is any of: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

MultiPoint

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

LineString

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

MultiLineString

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

Polygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

MultiPolygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ][ ] true
properties Object for field properties false

GeometryCollection

Name Type Required Description
type string true
geometries Geometry[ ] true

RegionProperties

Name Type Required Description
region_name string false
vegetation_type integer false
sprinkler_type integer false
shade_level integer false
newly_planted boolean false
user_id string false
local_region_id integer false
remote_region_id string false
images ImageInfo[ ] false
controller_serial string false
emitter_count integer false
plant_area number false
zone_id string false
project_id string false
created_at integer false
updated_at integer false
plant_center_coordinates number[ ] false
status string false
parcel_id string false
parcelExists boolean false
elevation number false
plantFactor number[ ] false
onlyVegetation boolean false
extendAreaRegionType boolean false
version integer false
controllerId string false
areaId string false

ImageInfo

Name Type Required Description
image_id string false
imageFormat string false
width integer false
height integer false
thumbnails ImageInfo[ ] false
updatedAt integer false
imageType integer false

Create or update regions for project

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/regions?version=103" \
-X PATCH \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "[
    {
        \"type\": \"Feature\",
        \"geometry\": {
            \"type\": \"MultiLineString\",
            \"coordinates\": [
                [
                    [
                        210.72056945912567
                    ]
                ]
            ],
            \"properties\": {
                \"example_property_name\": \"example string value\"
            }
        },
        \"properties\": {
            \"region_name\": \"example string value\",
            \"vegetation_type\": 768,
            \"sprinkler_type\": 295,
            \"shade_level\": 165,
            \"newly_planted\": true,
            \"user_id\": \"example string value\",
            \"local_region_id\": 423,
            \"remote_region_id\": \"example string value\",
            \"images\": [
                {
                    \"image_id\": \"example string value\",
                    \"imageFormat\": \"example string value\",
                    \"width\": 144,
                    \"height\": 621,
                    \"thumbnails\": [
                        {
                            \"image_id\": \"example string value\",
                            \"imageFormat\": \"example string value\",
                            \"width\": 483,
                            \"height\": 296,
                            \"thumbnails\": [],
                            \"updatedAt\": 712,
                            \"imageType\": 736
                        }
                    ],
                    \"updatedAt\": 539,
                    \"imageType\": 930
                }
            ],
            \"controller_serial\": \"example string value\",
            \"emitter_count\": 408,
            \"plant_area\": 403.52409444913457,
            \"zone_id\": \"example string value\",
            \"project_id\": \"example string value\",
            \"created_at\": 412,
            \"updated_at\": 633,
            \"plant_center_coordinates\": [
                224.90631846008185
            ],
            \"status\": \"ACTIVE\",
            \"parcel_id\": \"example string value\",
            \"parcelExists\": false,
            \"elevation\": 40.96374290108855,
            \"plantFactor\": [
                662.5206459604766
            ],
            \"onlyVegetation\": \"1\",
            \"extendAreaRegionType\": \"1\",
            \"version\": \"-1\",
            \"controllerId\": \"example string value\",
            \"areaId\": \"example string value\"
        }
    }
]"

On success, the above request returns response like

[
    {
        "type": "Feature",
        "geometry": {
            "type": "MultiLineString",
            "coordinates": [
                [
                    [
                        127.60273652505258
                    ]
                ]
            ],
            "properties": {
                "example_property_name": "example string value"
            }
        },
        "properties": {
            "region_name": "example string value",
            "vegetation_type": 365,
            "sprinkler_type": 221,
            "shade_level": 420,
            "newly_planted": true,
            "user_id": "example string value",
            "local_region_id": 339,
            "remote_region_id": "example string value",
            "images": [
                {
                    "image_id": "example string value",
                    "imageFormat": "example string value",
                    "width": 468,
                    "height": 482,
                    "thumbnails": [
                        {
                            "image_id": "example string value",
                            "imageFormat": "example string value",
                            "width": 563,
                            "height": 324,
                            "thumbnails": [],
                            "updatedAt": 858,
                            "imageType": 32
                        }
                    ],
                    "updatedAt": 997,
                    "imageType": 503
                }
            ],
            "controller_serial": "example string value",
            "emitter_count": 207,
            "plant_area": 274.60176510484973,
            "zone_id": "example string value",
            "project_id": "example string value",
            "created_at": 983,
            "updated_at": 486,
            "plant_center_coordinates": [
                622
            ],
            "status": "DELETED",
            "parcel_id": "example string value",
            "parcelExists": true,
            "elevation": 709.8463371907576,
            "plantFactor": [
                772.6861810184486
            ],
            "onlyVegetation": "1",
            "extendAreaRegionType": "1",
            "version": "-1",
            "controllerId": "example string value",
            "areaId": "example string value"
        }
    }
]

HTTP Request

PATCH /api/v1/gardening/projects/{projectId}/regions

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id
Regions GardeningRegion[ ] body true
version integer query false version of Project

GardeningRegion

Name Type Required Description
type string false
geometry Geometry false
properties RegionProperties false

Geometry is any of: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

MultiPoint

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

LineString

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

MultiLineString

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

Polygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

MultiPolygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ][ ] true
properties Object for field properties false

GeometryCollection

Name Type Required Description
type string true
geometries Geometry[ ] true

RegionProperties

Name Type Required Description
region_name string false
vegetation_type integer false
sprinkler_type integer false
shade_level integer false
newly_planted boolean false
user_id string false
local_region_id integer false
remote_region_id string false
images ImageInfo[ ] false
controller_serial string false
emitter_count integer false
plant_area number false
zone_id string false
project_id string false
created_at integer false
updated_at integer false
plant_center_coordinates number[ ] false
status string false
parcel_id string false
parcelExists boolean false
elevation number false
plantFactor number[ ] false
onlyVegetation boolean false
extendAreaRegionType boolean false
version integer false
controllerId string false
areaId string false

ImageInfo

Name Type Required Description
image_id string false
imageFormat string false
width integer false
height integer false
thumbnails ImageInfo[ ] false
updatedAt integer false
imageType integer false

HTTP Responses

Code Description
200 OK
404 Not Found
409 Conflict
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
type string false
geometry Geometry false
properties RegionProperties false

Geometry is any of: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

MultiPoint

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

LineString

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

MultiLineString

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

Polygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

MultiPolygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ][ ] true
properties Object for field properties false

GeometryCollection

Name Type Required Description
type string true
geometries Geometry[ ] true

RegionProperties

Name Type Required Description
region_name string false
vegetation_type integer false
sprinkler_type integer false
shade_level integer false
newly_planted boolean false
user_id string false
local_region_id integer false
remote_region_id string false
images ImageInfo[ ] false
controller_serial string false
emitter_count integer false
plant_area number false
zone_id string false
project_id string false
created_at integer false
updated_at integer false
plant_center_coordinates number[ ] false
status string false
parcel_id string false
parcelExists boolean false
elevation number false
plantFactor number[ ] false
onlyVegetation boolean false
extendAreaRegionType boolean false
version integer false
controllerId string false
areaId string false

ImageInfo

Name Type Required Description
image_id string false
imageFormat string false
width integer false
height integer false
thumbnails ImageInfo[ ] false
updatedAt integer false
imageType integer false

Delete all regions for project

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/regions?version=591" \
-X DELETE \
-H "Authorization: example string value"

On success, the above request returns response like

no reponse

HTTP Request

DELETE /api/v1/gardening/projects/{projectId}/regions

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true Project id
version integer query false version of Project

HTTP Responses

Code Description
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Get Region by id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/regions/{regionId}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "type": "Feature",
    "geometry": {
        "type": "Point",
        "coordinates": [
            596.552221382294
        ],
        "properties": {
            "example_property_name": "example string value"
        }
    },
    "properties": {
        "region_name": "example string value",
        "vegetation_type": 19,
        "sprinkler_type": 117,
        "shade_level": 149,
        "newly_planted": true,
        "user_id": "example string value",
        "local_region_id": 108,
        "remote_region_id": "example string value",
        "images": [
            {
                "image_id": "example string value",
                "imageFormat": "example string value",
                "width": 347,
                "height": 69,
                "thumbnails": [
                    {
                        "image_id": "example string value",
                        "imageFormat": "example string value",
                        "width": 87,
                        "height": 942,
                        "thumbnails": [],
                        "updatedAt": 892,
                        "imageType": 67
                    }
                ],
                "updatedAt": 920,
                "imageType": 34
            }
        ],
        "controller_serial": "example string value",
        "emitter_count": 415,
        "plant_area": 882.2097302797296,
        "zone_id": "example string value",
        "project_id": "example string value",
        "created_at": 2,
        "updated_at": 912,
        "plant_center_coordinates": [
            813.1321616531965
        ],
        "status": "DELETED",
        "parcel_id": "example string value",
        "parcelExists": true,
        "elevation": 333.94172244423146,
        "plantFactor": [
            465
        ],
        "onlyVegetation": "1",
        "extendAreaRegionType": "1",
        "version": "-1",
        "controllerId": "example string value",
        "areaId": "example string value"
    }
}

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

Response body field description:

geolocation pair of longitude/latitude. Example:[ [76.37695312499999, 15.749962572748768], [ 76.37695312499999, 18.396230138028827], [79.27734374999999, 18.396230138028827]] * properties subentity - contains infomation about the region, subfields:

* region_name - name of region;

* (required) vegetation_type - type of vegetation, which

growth on region, possible values: 0 (TURF), 1 (SHRUBS), 2 (TREES), 3 (FLOWER_AND_VEGETABLES), 4 (CACTI_AND_SUCCULENTS);

* (required) sprinkler_type - type of emitter, which watering

the region, possible values: 0 (SPRAY), 1 (STREAM), 2 (BUBBLER), 3 (DRIP);

* shade_level - describes the shaded level of region, value

can be 0 - 100%;

* newly_planted - describe if plant is newly planted or not;

* user_id - id of owner user;

* local_region_id - id uses in mobile app;

* remote_region_id - id of region (regionId), uses for

get, update, delete methods;

* images - contains information about images on S3 Amazon

Service;

* controller_serial - serial number of controller;

* emitter_count - amount of emitters on region;

* plant_area - area of the region, square meters;

* zone_id - id of zone to which region related;

* project_id - id of project to which region related;

* created_at - date and time when region was created, epoch

millis in UTC;

* updated_at - date and time when region was updated, epoch

millis in UTC;

* plant_center_coordinates - array of geolocation pair of

longitude/latitude, which describe the center of region, example: [ 76.37695312499999, 18.396230138028827];

* status - status of region, can be: ACTIVE, DELETED;

* parcel_id - id of the parcel;

* parcelExists - describes if parcel exist for this region;

* elevation - elevation of the region;

* plantFactor - plant factor values per month.

HTTP Request

GET /api/v1/gardening/projects/{projectId}/regions/{regionId}

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true Project id
regionId string path true Region id

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
type string false
geometry Geometry false
properties RegionProperties false

Geometry is any of: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

MultiPoint

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

LineString

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

MultiLineString

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

Polygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

MultiPolygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ][ ] true
properties Object for field properties false

GeometryCollection

Name Type Required Description
type string true
geometries Geometry[ ] true

RegionProperties

Name Type Required Description
region_name string false
vegetation_type integer false
sprinkler_type integer false
shade_level integer false
newly_planted boolean false
user_id string false
local_region_id integer false
remote_region_id string false
images ImageInfo[ ] false
controller_serial string false
emitter_count integer false
plant_area number false
zone_id string false
project_id string false
created_at integer false
updated_at integer false
plant_center_coordinates number[ ] false
status string false
parcel_id string false
parcelExists boolean false
elevation number false
plantFactor number[ ] false
onlyVegetation boolean false
extendAreaRegionType boolean false
version integer false
controllerId string false
areaId string false

ImageInfo

Name Type Required Description
image_id string false
imageFormat string false
width integer false
height integer false
thumbnails ImageInfo[ ] false
updatedAt integer false
imageType integer false

Delete Region by id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/regions/{regionId}?version=153" \
-X DELETE \
-H "Authorization: example string value"

On success, the above request returns response like

no reponse

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

HTTP Request

DELETE /api/v1/gardening/projects/{projectId}/regions/{regionId}

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true Project id
regionId string path true id of Region
version integer query false version of Project

HTTP Responses

Code Description
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Update Area Region by id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/regions/{regionId}?version=613" \
-X PUT \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "{
    \"type\": \"Feature\",
    \"geometry\": {
        \"type\": \"MultiLineString\",
        \"coordinates\": [
            [
                [
                    977.4847049161255
                ]
            ]
        ],
        \"properties\": {
            \"example_property_name\": \"example string value\"
        }
    },
    \"properties\": {
        \"region_name\": \"example string value\",
        \"vegetation_type\": 149,
        \"sprinkler_type\": 133,
        \"shade_level\": 338,
        \"newly_planted\": false,
        \"user_id\": \"example string value\",
        \"local_region_id\": 418,
        \"remote_region_id\": \"example string value\",
        \"images\": [
            {
                \"image_id\": \"example string value\",
                \"imageFormat\": \"example string value\",
                \"width\": 582,
                \"height\": 303,
                \"thumbnails\": [
                    {
                        \"image_id\": \"example string value\",
                        \"imageFormat\": \"example string value\",
                        \"width\": 167,
                        \"height\": 87,
                        \"thumbnails\": [],
                        \"updatedAt\": 909,
                        \"imageType\": 833
                    }
                ],
                \"updatedAt\": 499,
                \"imageType\": 350
            }
        ],
        \"controller_serial\": \"example string value\",
        \"emitter_count\": 898,
        \"plant_area\": 496.3518029527514,
        \"zone_id\": \"example string value\",
        \"project_id\": \"example string value\",
        \"created_at\": 50,
        \"updated_at\": 441,
        \"plant_center_coordinates\": [
            742
        ],
        \"status\": \"DELETED\",
        \"parcel_id\": \"example string value\",
        \"parcelExists\": false,
        \"elevation\": 215,
        \"plantFactor\": [
            700.6376095584769
        ],
        \"onlyVegetation\": \"1\",
        \"extendAreaRegionType\": \"1\",
        \"version\": \"-1\",
        \"controllerId\": \"example string value\",
        \"areaId\": \"example string value\"
    }
}"

On success, the above request returns response like

{
    "type": "Feature",
    "geometry": {
        "type": "MultiLineString",
        "coordinates": [
            [
                [
                    184.5930540862461
                ]
            ]
        ],
        "properties": {
            "example_property_name": "example string value"
        }
    },
    "properties": {
        "region_name": "example string value",
        "vegetation_type": 256,
        "sprinkler_type": 620,
        "shade_level": 872,
        "newly_planted": true,
        "user_id": "example string value",
        "local_region_id": 111,
        "remote_region_id": "example string value",
        "images": [
            {
                "image_id": "example string value",
                "imageFormat": "example string value",
                "width": 830,
                "height": 61,
                "thumbnails": [
                    {
                        "image_id": "example string value",
                        "imageFormat": "example string value",
                        "width": 417,
                        "height": 46,
                        "thumbnails": [],
                        "updatedAt": 185,
                        "imageType": 16
                    }
                ],
                "updatedAt": 349,
                "imageType": 332
            }
        ],
        "controller_serial": "example string value",
        "emitter_count": 83,
        "plant_area": 566.6759840988907,
        "zone_id": "example string value",
        "project_id": "example string value",
        "created_at": 229,
        "updated_at": 388,
        "plant_center_coordinates": [
            684
        ],
        "status": "ACTIVE",
        "parcel_id": "example string value",
        "parcelExists": true,
        "elevation": 603.4072011725079,
        "plantFactor": [
            538
        ],
        "onlyVegetation": "1",
        "extendAreaRegionType": "1",
        "version": "-1",
        "controllerId": "example string value",
        "areaId": "example string value"
    }
}

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

Request body fields description:

The same as for response body.

Response body field description:

geolocation pair of longitude/latitude. Example:[ [76.37695312499999, 15.749962572748768], [ 76.37695312499999, 18.396230138028827], [79.27734374999999, 18.396230138028827]] * properties subentity - contains infomation about the region, subfields:

* region_name - name of region;

* (required) vegetation_type - type of vegetation, which

growth on region, possible values: 0 (TURF), 1 (SHRUBS), 2 (TREES), 3 (FLOWER_AND_VEGETABLES), 4 (CACTI_AND_SUCCULENTS);

* (required) sprinkler_type - type of emitter, which watering

the region, possible values: 0 (SPRAY), 1 (STREAM), 2 (BUBBLER), 3 (DRIP);

* shade_level - describes the shaded level of region, value

can be 0 - 100%;

* newly_planted - describe if plant is newly planted or not;

* user_id - id of owner user;

* local_region_id - id uses in mobile app;

* remote_region_id - id of region (regionId), uses for

get, update, delete methods;

* images - contains information about images on S3 Amazon

Service;

* controller_serial - serial number of controller;

* emitter_count - amount of emitters on region;

* plant_area - area of the region, square meters;

* zone_id - id of zone to which region related;

* project_id - id of project to which region related;

* created_at - date and time when region was created, epoch

millis in UTC;

* updated_at - date and time when region was updated, epoch

millis in UTC;

* plant_center_coordinates - array of geolocation pair of

longitude/latitude, which describe the center of region, example: [ 76.37695312499999, 18.396230138028827];

* status - status of region, can be: ACTIVE, DELETED;

* parcel_id - id of the parcel;

* parcelExists - describes if parcel exist for this region;

* elevation - elevation of the region;

* plantFactor - plant factor values per month.

HTTP Request

PUT /api/v1/gardening/projects/{projectId}/regions/{regionId}

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id
regionId string path true id of Region
region GardeningRegion body true
version integer query false version of Project

GardeningRegion

Name Type Required Description
type string false
geometry Geometry false
properties RegionProperties false

Geometry is any of: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

MultiPoint

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

LineString

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

MultiLineString

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

Polygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

MultiPolygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ][ ] true
properties Object for field properties false

GeometryCollection

Name Type Required Description
type string true
geometries Geometry[ ] true

RegionProperties

Name Type Required Description
region_name string false
vegetation_type integer false
sprinkler_type integer false
shade_level integer false
newly_planted boolean false
user_id string false
local_region_id integer false
remote_region_id string false
images ImageInfo[ ] false
controller_serial string false
emitter_count integer false
plant_area number false
zone_id string false
project_id string false
created_at integer false
updated_at integer false
plant_center_coordinates number[ ] false
status string false
parcel_id string false
parcelExists boolean false
elevation number false
plantFactor number[ ] false
onlyVegetation boolean false
extendAreaRegionType boolean false
version integer false
controllerId string false
areaId string false

ImageInfo

Name Type Required Description
image_id string false
imageFormat string false
width integer false
height integer false
thumbnails ImageInfo[ ] false
updatedAt integer false
imageType integer false

HTTP Responses

Code Description
200 OK
404 Not Found
409 Conflict
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
type string false
geometry Geometry false
properties RegionProperties false

Geometry is any of: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

MultiPoint

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

LineString

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

MultiLineString

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

Polygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

MultiPolygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ][ ] true
properties Object for field properties false

GeometryCollection

Name Type Required Description
type string true
geometries Geometry[ ] true

RegionProperties

Name Type Required Description
region_name string false
vegetation_type integer false
sprinkler_type integer false
shade_level integer false
newly_planted boolean false
user_id string false
local_region_id integer false
remote_region_id string false
images ImageInfo[ ] false
controller_serial string false
emitter_count integer false
plant_area number false
zone_id string false
project_id string false
created_at integer false
updated_at integer false
plant_center_coordinates number[ ] false
status string false
parcel_id string false
parcelExists boolean false
elevation number false
plantFactor number[ ] false
onlyVegetation boolean false
extendAreaRegionType boolean false
version integer false
controllerId string false
areaId string false

ImageInfo

Name Type Required Description
image_id string false
imageFormat string false
width integer false
height integer false
thumbnails ImageInfo[ ] false
updatedAt integer false
imageType integer false

V1 | Gardening Regions Revisions API

Use the Gardening Regions Revisions API to retrieve earlier versions of a region’s settings. The Gardening Snapshots API keeps a history of all the changes and their version numbers, and you’ll use that version number to retrieve the details of the region’s state at that timestamp.

Get Region Revision by id

Request

curl "https://developer-api.etwater.com/api/v1/gardening/regions-revisions/{revisionId}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "timestamp": 559,
    "areaRegion": {
        "id": "example string value",
        "type": 99,
        "geometry": {
            "type": "MultiLineString",
            "coordinates": [
                [
                    [
                        756.3634048012846
                    ]
                ]
            ],
            "properties": {
                "example_property_name": "example string value"
            }
        },
        "properties": {
            "name": "example string value",
            "areaRegionTypeId": 309,
            "areaRegionTypeName": "example string value",
            "emitterTypeId": 83,
            "shadeLevel": 484,
            "newlyPlanted": false,
            "userId": "example string value",
            "localRegionId": 346,
            "images": [
                {
                    "image_id": "example string value",
                    "imageFormat": "example string value",
                    "width": 209,
                    "height": 289,
                    "thumbnails": [
                        {
                            "image_id": "example string value",
                            "imageFormat": "example string value",
                            "width": 517,
                            "height": 267,
                            "thumbnails": [],
                            "updatedAt": 743,
                            "imageType": 300
                        }
                    ],
                    "updatedAt": 681,
                    "imageType": 315
                }
            ],
            "plantArea": 310.83754930218566,
            "zoneDetailsId": "example string value",
            "controllerSerial": "example string value",
            "parcelExists": false,
            "isVegetation": "1",
            "location": {
                "longitude": 329,
                "latitude": 194
            },
            "status": 705,
            "areaId": "example string value",
            "controllerId": "example string value",
            "projectId": "example string value",
            "parcelId": "example string value",
            "landscapeId": "example string value",
            "vegetationDetails": {
                "minDepletion": 79,
                "triggerIrrigationDepletion": 6,
                "defaultDepletion": 135,
                "maxDepletion": 693,
                "plantFactor": [
                    992.4669470602959
                ],
                "shadowFactor": 127,
                "rootDepth": 21,
                "rootDepthCustom": 425.9878808753508
            },
            "emitterDetails": {
                "emitterCount": 117,
                "name": "example string value",
                "rate": 472.7257515642446,
                "distributionUniformity": 95,
                "emitterFamily": 362,
                "rateCustom": 927,
                "distributionUniformityCustom": 392,
                "ignoreSoakTime": true,
                "rateMm": 720.1107855514208
            },
            "landscapeDetails": {
                "plantAvailableWater": 199,
                "soakRate": 950.1410210272953,
                "slopeDegree": 880,
                "allowedSurfaceAccumulation": 727,
                "fertigationLevel": 509,
                "elevation": 583.053409393436,
                "soilType": "example string value",
                "slopeTypeId": 484,
                "plantAvailableWaterCustom": 899,
                "soakRateCustom": 751.3262428116642,
                "allowedSurfaceAccumulationCustom": 774.8857870581029,
                "slopeDegreeCustom": 869
            },
            "zoneDetails": {
                "id": "example string value",
                "number": 191,
                "status": 223,
                "name": "example string value",
                "created_at": 317,
                "updated_at": 744,
                "weight": 526,
                "project_id": "example string value",
                "local_id": "example string value",
                "user_id": "example string value",
                "version": "-1",
                "controllerId": "example string value",
                "configured": false,
                "areaRegionStates": {
                    "example_property_name": false
                },
                "ignoreRain": false,
                "flagged": true,
                "description": "example string value",
                "flowComment": "example string value"
            },
            "suppressPump": true
        },
        "createdAt": 901,
        "updatedAt": 664
    }
}

HTTP Request

GET /api/v1/gardening/regions-revisions/{revisionId}

Request parameters

Name Type Part Required Description
Authorization string header true
revisionId string path true

HTTP Responses

Code Description
200 Successful Response
404 Error Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
timestamp integer false
areaRegion Vegetation false

Vegetation

Name Type Required Description
id string false
type integer false
geometry Geometry false
properties VegetationProperties false
createdAt integer false
updatedAt integer false

Geometry is any of: Point, MultiPoint, LineString, MultiLineString, Polygon, MultiPolygon, GeometryCollection

Point

Name Type Required Description
type string true
coordinates number[ ] true
properties Object for field properties false

Object for field properties

Name Type Required Description
* string false

MultiPoint

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

LineString

Name Type Required Description
type string true
coordinates number[ ][ ] true
properties Object for field properties false

MultiLineString

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

Polygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ] true
properties Object for field properties false

MultiPolygon

Name Type Required Description
type string true
coordinates number[ ][ ][ ][ ] true
properties Object for field properties false

GeometryCollection

Name Type Required Description
type string true
geometries Geometry[ ] true

VegetationProperties

Name Type Required Description
name string false
areaRegionTypeId integer false
areaRegionTypeName string false
emitterTypeId integer false
shadeLevel integer false
newlyPlanted boolean false
userId string false
localRegionId integer false
images ImageInfo[ ] false
plantArea number false
zoneDetailsId string false
controllerSerial string false
parcelExists boolean false
isVegetation boolean false
location GeoPoint false
status integer false
areaId string false
controllerId string false
projectId string false
parcelId string false
landscapeId string false
vegetationDetails VegetationDetails false
emitterDetails EmitterDetails false
landscapeDetails LandscapeDetails false
zoneDetails Zone false
suppressPump boolean false

ImageInfo

Name Type Required Description
image_id string false
imageFormat string false
width integer false
height integer false
thumbnails ImageInfo[ ] false
updatedAt integer false
imageType integer false

GeoPoint

Name Type Required Description
longitude number false
latitude number false

VegetationDetails

Name Type Required Description
minDepletion integer false
triggerIrrigationDepletion integer false
defaultDepletion integer false
maxDepletion integer false
plantFactor number[ ] false
shadowFactor number false
rootDepth number false
rootDepthCustom number false

EmitterDetails

Name Type Required Description
emitterCount integer false
name string false
rate number false
distributionUniformity integer false
emitterFamily integer false
rateCustom number false
distributionUniformityCustom integer false
ignoreSoakTime boolean false
rateMm number false

LandscapeDetails

Name Type Required Description
plantAvailableWater number false
soakRate number false
slopeDegree integer false
allowedSurfaceAccumulation number false
fertigationLevel integer false
elevation number false
soilType string false
slopeTypeId integer false
plantAvailableWaterCustom number false
soakRateCustom number false
allowedSurfaceAccumulationCustom number false
slopeDegreeCustom integer false

Zone

Name Type Required Description
id string false
number integer false
status integer false
name string false
created_at integer false
updated_at integer false
weight integer false
project_id string false
local_id string false
user_id string false
version integer false
controllerId string false
configured boolean false
areaRegionStates Object for field areaRegionStates false
ignoreRain boolean false
flagged boolean false
description string false
flowComment string false

Object for field areaRegionStates

Name Type Required Description
* boolean false

V1 | Gardening Snapshots API

The Gardening Snapshots API tracks all the changes to everything in project over time. It maintains a log of when what was changed and by whom. It stores the ID of the changed item, as well as its revision number. It does not store the actual changed data itself. That data you can retreive with the relevant Revisions API, such as the Gardening Regions Revisions API, the Gardening Zones Revisions API, the Gardeneing Parcels Revisions API and the Gardening Projects Revisions API.

Returns snapshots for project.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects-snapshots/{projectId}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "version": 971,
        "timestamp": 385,
        "userId": "example string value",
        "projectId": "example string value",
        "revisionProjectId": "example string value",
        "zoneRevisionIdMap": {
            "example_property_name": "example string value"
        },
        "areaRegionRevisionIdMap": {
            "example_property_name": "example string value"
        }
    }
]

HTTP Request

GET /api/v1/gardening/projects-snapshots/{projectId}

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true

HTTP Responses

Code Description
200 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false
version integer false
timestamp integer false
userId string false
projectId string false
revisionProjectId string false
zoneRevisionIdMap Object for field zoneRevisionIdMap false
areaRegionRevisionIdMap Object for field areaRegionRevisionIdMap false

Object for field zoneRevisionIdMap

Name Type Required Description
* string false

Object for field areaRegionRevisionIdMap

Name Type Required Description
* string false

Checkout project snapshot version

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects-snapshots/{projectId}/checkout?version=124" \
-X POST \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "version": 322,
    "timestamp": 349,
    "userId": "example string value",
    "projectId": "example string value",
    "revisionProjectId": "example string value",
    "zoneRevisionIdMap": {
        "example_property_name": "example string value"
    },
    "areaRegionRevisionIdMap": {
        "example_property_name": "example string value"
    }
}

HTTP Request

POST /api/v1/gardening/projects-snapshots/{projectId}/checkout

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true
version integer query true

HTTP Responses

Code Description
200 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
version integer false
timestamp integer false
userId string false
projectId string false
revisionProjectId string false
zoneRevisionIdMap Object for field zoneRevisionIdMap false
areaRegionRevisionIdMap Object for field areaRegionRevisionIdMap false

Object for field zoneRevisionIdMap

Name Type Required Description
* string false

Object for field areaRegionRevisionIdMap

Name Type Required Description
* string false

Returns diff between snapshots for a project.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects-snapshots/{projectId}/diff?version=example+string+value&versionCompareWith=example+string+value" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "version": 725,
    "timestamp": 658,
    "userId": "example string value",
    "projectId": "example string value",
    "revisionProjectId": "example string value",
    "zoneRevisionIdMap": {
        "example_property_name": "example string value"
    },
    "areaRegionRevisionIdMap": {
        "example_property_name": "example string value"
    }
}

HTTP Request

GET /api/v1/gardening/projects-snapshots/{projectId}/diff

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true
version string query true
versionCompareWith string query false in case parametert is not passed, latest version will be used

HTTP Responses

Code Description
200 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
version integer false
timestamp integer false
userId string false
projectId string false
revisionProjectId string false
zoneRevisionIdMap Object for field zoneRevisionIdMap false
areaRegionRevisionIdMap Object for field areaRegionRevisionIdMap false

Object for field zoneRevisionIdMap

Name Type Required Description
* string false

Object for field areaRegionRevisionIdMap

Name Type Required Description
* string false

Returns latest snapshot for project.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects-snapshots/{projectId}/latest" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "version": 161,
    "timestamp": 59,
    "userId": "example string value",
    "projectId": "example string value",
    "revisionProjectId": "example string value",
    "zoneRevisionIdMap": {
        "example_property_name": "example string value"
    },
    "areaRegionRevisionIdMap": {
        "example_property_name": "example string value"
    }
}

HTTP Request

GET /api/v1/gardening/projects-snapshots/{projectId}/latest

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true

HTTP Responses

Code Description
200 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
version integer false
timestamp integer false
userId string false
projectId string false
revisionProjectId string false
zoneRevisionIdMap Object for field zoneRevisionIdMap false
areaRegionRevisionIdMap Object for field areaRegionRevisionIdMap false

Object for field zoneRevisionIdMap

Name Type Required Description
* string false

Object for field areaRegionRevisionIdMap

Name Type Required Description
* string false

V1 | Gardening Zones API

Get all Zones.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/zones?controllerId=example+string+value&flagged=0" \
-X GET \
-H "Authorization: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value"

On success, the above request returns response like

[]

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

{projectId} - project id value.

Response body fields description:

HTTP Request

GET /api/v1/gardening/projects/{projectId}/zones

Request parameters

Name Type Part Required Description
Authorization string header true
Unity-Api-Gateway-Replace-UserId string header false
projectId string path true Project id
controllerId string query false
flagged boolean query false

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Create a Zone.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/zones?version=491" \
-X POST \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "{
    \"id\": \"example string value\",
    \"number\": 798,
    \"status\": 930,
    \"name\": \"example string value\",
    \"created_at\": 603,
    \"updated_at\": 270,
    \"weight\": 516,
    \"project_id\": \"example string value\",
    \"local_id\": \"example string value\",
    \"version\": \"-1\",
    \"controllerId\": \"example string value\",
    \"configured\": false,
    \"areaRegionStates\": {
        \"example_property_name\": false
    },
    \"ignoreRain\": false,
    \"flagged\": true,
    \"description\": \"example string value\"
}"

On success, the above request returns response like

no reponse

Zone has “Many to One” relation with Project, so for Zone creation project id is required.

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

{projectId} - project id value.

Request body fields description:

The same as for response body.

Response body fields description:

HTTP Request

POST /api/v1/gardening/projects/{projectId}/zones

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id
Zone GardeningZone body true
version integer query false version of Project

GardeningZone

Name Type Required Description
id string false
number integer false
status integer false
name string false
created_at integer false
updated_at integer false
weight integer false
project_id string false
local_id string false
version integer false
controllerId string false
configured boolean false
areaRegionStates Object for field areaRegionStates false
ignoreRain boolean false
flagged boolean false
description string false

Object for field areaRegionStates

Name Type Required Description
* boolean false

HTTP Responses

Code Description
201 Created
404 Not Found
409 Conflict
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
number integer false
status integer false
name string false
created_at integer false
updated_at integer false
weight integer false
project_id string false
local_id string false
version integer false
controllerId string false
configured boolean false
areaRegionStates Object for field areaRegionStates false
ignoreRain boolean false
flagged boolean false
description string false

Object for field areaRegionStates

Name Type Required Description
* boolean false

Create or update zones for project

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/zones?version=33" \
-X PATCH \
-H "Authorization: example string value" \
--data "[
    {
        \"id\": \"example string value\",
        \"number\": 263,
        \"status\": 554,
        \"name\": \"example string value\",
        \"created_at\": 878,
        \"updated_at\": 791,
        \"weight\": 939,
        \"project_id\": \"example string value\",
        \"local_id\": \"example string value\",
        \"version\": \"-1\",
        \"controllerId\": \"example string value\",
        \"configured\": false,
        \"areaRegionStates\": {
            \"example_property_name\": true
        },
        \"ignoreRain\": false,
        \"flagged\": true,
        \"description\": \"example string value\"
    }
]"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "number": 290,
        "status": 676,
        "name": "example string value",
        "created_at": 345,
        "updated_at": 158,
        "weight": 337,
        "project_id": "example string value",
        "local_id": "example string value",
        "version": "-1",
        "controllerId": "example string value",
        "configured": false,
        "areaRegionStates": {
            "example_property_name": true
        },
        "ignoreRain": false,
        "flagged": true,
        "description": "example string value"
    }
]

HTTP Request

PATCH /api/v1/gardening/projects/{projectId}/zones

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true Project id
Zones GardeningZone[ ] body true
version integer query false version of Project

GardeningZone

Name Type Required Description
id string false
number integer false
status integer false
name string false
created_at integer false
updated_at integer false
weight integer false
project_id string false
local_id string false
version integer false
controllerId string false
configured boolean false
areaRegionStates Object for field areaRegionStates false
ignoreRain boolean false
flagged boolean false
description string false

Object for field areaRegionStates

Name Type Required Description
* boolean false

HTTP Responses

Code Description
200 OK
404 Not Found
409 Conflict
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false
number integer false
status integer false
name string false
created_at integer false
updated_at integer false
weight integer false
project_id string false
local_id string false
version integer false
controllerId string false
configured boolean false
areaRegionStates Object for field areaRegionStates false
ignoreRain boolean false
flagged boolean false
description string false

Object for field areaRegionStates

Name Type Required Description
* boolean false

Delete all zones for project

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/zones?version=998" \
-X DELETE \
-H "Authorization: example string value"

On success, the above request returns response like

no reponse

HTTP Request

DELETE /api/v1/gardening/projects/{projectId}/zones

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true Project id
version integer query false version of Project

HTTP Responses

Code Description
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Get Zone by id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/zones/{zoneId}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "number": 947,
    "status": 26,
    "name": "example string value",
    "created_at": 578,
    "updated_at": 359,
    "weight": 335,
    "project_id": "example string value",
    "local_id": "example string value",
    "version": "-1",
    "controllerId": "example string value",
    "configured": false,
    "areaRegionStates": {
        "example_property_name": false
    },
    "ignoreRain": true,
    "flagged": true,
    "description": "example string value"
}

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

Response body fields description:

HTTP Request

GET /api/v1/gardening/projects/{projectId}/zones/{zoneId}

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true Project id
zoneId string path true Zone id

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
number integer false
status integer false
name string false
created_at integer false
updated_at integer false
weight integer false
project_id string false
local_id string false
version integer false
controllerId string false
configured boolean false
areaRegionStates Object for field areaRegionStates false
ignoreRain boolean false
flagged boolean false
description string false

Object for field areaRegionStates

Name Type Required Description
* boolean false

Delete Zone by id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/zones/{zoneId}?version=834" \
-X DELETE \
-H "Authorization: example string value"

On success, the above request returns response like

no reponse

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

HTTP Request

DELETE /api/v1/gardening/projects/{projectId}/zones/{zoneId}

Request parameters

Name Type Part Required Description
Authorization string header true
projectId string path true Project id
zoneId string path true id of Zone
version integer query false version of Project

HTTP Responses

Code Description
204 No Content
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Update/Merge Zone by id.

Request

curl "https://developer-api.etwater.com/api/v1/gardening/projects/{projectId}/zones/{zoneId}?version=232" \
-X PUT \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "{
    \"id\": \"example string value\",
    \"number\": 566,
    \"status\": 640,
    \"name\": \"example string value\",
    \"created_at\": 907,
    \"updated_at\": 623,
    \"weight\": 594,
    \"project_id\": \"example string value\",
    \"local_id\": \"example string value\",
    \"version\": \"-1\",
    \"controllerId\": \"example string value\",
    \"configured\": false,
    \"areaRegionStates\": {
        \"example_property_name\": false
    },
    \"ignoreRain\": true,
    \"flagged\": true,
    \"description\": \"example string value\"
}"

On success, the above request returns response like

{
    "id": "example string value",
    "number": 223,
    "status": 26,
    "name": "example string value",
    "created_at": 279,
    "updated_at": 199,
    "weight": 718,
    "project_id": "example string value",
    "local_id": "example string value",
    "version": "-1",
    "controllerId": "example string value",
    "configured": false,
    "areaRegionStates": {
        "example_property_name": true
    },
    "ignoreRain": true,
    "flagged": true,
    "description": "example string value"
}

Dependent on:

Headers example:

where: {access_token} access token value.

Path parameter description

Request body fields description:

The same as for response body.

Response body fields description:

HTTP Request

PUT /api/v1/gardening/projects/{projectId}/zones/{zoneId}

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
projectId string path true Project id
zoneId string path true id of Zone
Zone GardeningZone body true
version integer query false version of Project

GardeningZone

Name Type Required Description
id string false
number integer false
status integer false
name string false
created_at integer false
updated_at integer false
weight integer false
project_id string false
local_id string false
version integer false
controllerId string false
configured boolean false
areaRegionStates Object for field areaRegionStates false
ignoreRain boolean false
flagged boolean false
description string false

Object for field areaRegionStates

Name Type Required Description
* boolean false

HTTP Responses

Code Description
200 OK
404 Not Found
409 Conflict
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
number integer false
status integer false
name string false
created_at integer false
updated_at integer false
weight integer false
project_id string false
local_id string false
version integer false
controllerId string false
configured boolean false
areaRegionStates Object for field areaRegionStates false
ignoreRain boolean false
flagged boolean false
description string false

Object for field areaRegionStates

Name Type Required Description
* boolean false

V1 | Gardening Zones Revisions API

Use the Gardening Zones Revisions API to retrieve earlier versions of a zone’s settings. The Gardening Snapshots API keeps a history of all the changes and their version numbers, and you’ll use that version number to retrieve the details of the zone’s state at that timestamp.

GET /api/v1/gardening/zones-revisions/{revisionId}

Request

curl "https://developer-api.etwater.com/api/v1/gardening/zones-revisions/{revisionId}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "timestamp": 437,
    "zone": {
        "id": "example string value",
        "number": 410,
        "status": 742,
        "name": "example string value",
        "created_at": 669,
        "updated_at": 964,
        "weight": 227,
        "project_id": "example string value",
        "local_id": "example string value",
        "user_id": "example string value",
        "version": "-1",
        "controllerId": "example string value",
        "configured": false,
        "areaRegionStates": {
            "example_property_name": false
        },
        "ignoreRain": false,
        "flagged": false,
        "description": "example string value",
        "flowComment": "example string value"
    }
}

HTTP Request

GET /api/v1/gardening/zones-revisions/{revisionId}

Request parameters

Name Type Part Required Description
Authorization string header true
revisionId string path true

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
timestamp integer false
zone Zone false

Zone

Name Type Required Description
id string false
number integer false
status integer false
name string false
created_at integer false
updated_at integer false
weight integer false
project_id string false
local_id string false
user_id string false
version integer false
controllerId string false
configured boolean false
areaRegionStates Object for field areaRegionStates false
ignoreRain boolean false
flagged boolean false
description string false
flowComment string false

Object for field areaRegionStates

Name Type Required Description
* boolean false

V1 | Measured Water Usage Report API

Create measured water usage report

Request

curl "https://developer-api.etwater.com/api/v1/reports/measured-water-usage-report?startDate=example+string+value&endDate=example+string+value&interval=example+string+value&measureUnits=example+string+value" \
-X POST \
-H "Authorization: example string value" \
--data "{
    \"filters\": {
        \"projectControllers\": {
            \"projectControllers\": [
                {
                    \"projectId\": \"example string value\",
                    \"controllerIdList\": [
                        \"example string value\"
                    ]
                }
            ]
        },
        \"measureUnits\": {
            \"units\": \"HCF\"
        },
        \"period\": {
            \"startDate\": \"example string value\",
            \"endDate\": \"example string value\",
            \"interval\": \"DAY\"
        }
    },
    \"meta\": {
        \"example_property_name\": \"example string value\"
    }
}"

On success, the above request returns response like

{
    "id": "example string value",
    "status": "IN_PROGRESS",
    "userId": "example string value",
    "data": {
        "total": {
            "dateStart": "example string value",
            "dateEnd": "example string value",
            "manualUsage": 133,
            "scheduledUsage": 623,
            "otherUsage": 210,
            "projects": [
                {
                    "projectId": "example string value",
                    "name": "example string value",
                    "manualUsage": 920,
                    "scheduledUsage": 864,
                    "otherUsage": 560.1786298491892,
                    "controllers": [
                        {
                            "controllerId": "example string value",
                            "name": "example string value",
                            "manualUsage": 268,
                            "scheduledUsage": 33,
                            "otherUsage": 509,
                            "zones": [
                                {
                                    "zoneNumber": 552,
                                    "name": "example string value",
                                    "manualUsage": 593,
                                    "scheduledUsage": 546
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        "buckets": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "manualUsage": 299.9544601421591,
                "scheduledUsage": 77.17188637571964,
                "otherUsage": 547,
                "projects": [
                    {
                        "projectId": "example string value",
                        "name": "example string value",
                        "manualUsage": 342.0001479526982,
                        "scheduledUsage": 757.068058362728,
                        "otherUsage": 67,
                        "controllers": [
                            {
                                "controllerId": "example string value",
                                "name": "example string value",
                                "manualUsage": 459,
                                "scheduledUsage": 327.0565636116343,
                                "otherUsage": 803,
                                "zones": [
                                    {
                                        "zoneNumber": 494,
                                        "name": "example string value",
                                        "manualUsage": 989,
                                        "scheduledUsage": 236
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ],
        "bucketsTotal": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "manualUsage": 58.33343605433285,
                "scheduledUsage": 139.88952531474155,
                "otherUsage": 502.7731477761516
            }
        ]
    },
    "filters": {
        "projectControllers": {
            "projectControllers": [
                {
                    "projectId": "example string value",
                    "controllerIdList": [
                        "example string value"
                    ]
                }
            ]
        },
        "measureUnits": {
            "units": "GALLONS"
        },
        "period": {
            "startDate": "example string value",
            "endDate": "example string value",
            "interval": "MONTH"
        }
    },
    "meta": {
        "example_property_name": "example string value"
    }
}

HTTP Request

POST /api/v1/reports/measured-water-usage-report

Request parameters

Name Type Part Required Description
Authorization string header true
startDate string query true
endDate string query true
interval string query false
measureUnits string query false
MeasuredWaterUsageReportCreateRequest MeasuredWaterUsageReportCreateRequest body true

MeasuredWaterUsageReportCreateRequest

Name Type Required Description
filters ReportFilters false
meta Object for field meta false

ReportFilters

Name Type Required Description
projectControllers ProjectControllersFilter false
measureUnits WateringMeasureUnitsFilter false
period PeriodFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

WateringMeasureUnitsFilter

Name Type Required Description
units string false

PeriodFilter

Name Type Required Description
startDate string false
endDate string false
interval string false

Object for field meta

Name Type Required Description
* string false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
status string false
userId string false
data ReportData false
filters ReportFilters false
meta Object for field meta false

ReportData

Name Type Required Description
total Bucket false
buckets Bucket[ ] false
bucketsTotal BucketTotal[ ] false

Bucket

Name Type Required Description
dateStart string false
dateEnd string false
manualUsage number false
scheduledUsage number false
otherUsage number false
projects Project[ ] false

Project

Name Type Required Description
projectId string false
name string false
manualUsage number false
scheduledUsage number false
otherUsage number false
controllers Controller[ ] false

Controller

Name Type Required Description
controllerId string false
name string false
manualUsage number false
scheduledUsage number false
otherUsage number false
zones Zone[ ] false

Zone

Name Type Required Description
zoneNumber integer false
name string false
manualUsage number false
scheduledUsage number false

BucketTotal

Name Type Required Description
dateStart string false
dateEnd string false
manualUsage number false
scheduledUsage number false
otherUsage number false

ReportFilters

Name Type Required Description
projectControllers ProjectControllersFilter false
measureUnits WateringMeasureUnitsFilter false
period PeriodFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

WateringMeasureUnitsFilter

Name Type Required Description
units string false

PeriodFilter

Name Type Required Description
startDate string false
endDate string false
interval string false

Object for field meta

Name Type Required Description
* string false

Get measured water usage report

Request

curl "https://developer-api.etwater.com/api/v1/reports/measured-water-usage-report/{id}" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

{
    "id": "example string value",
    "status": "UNPROCESSABLE",
    "userId": "example string value",
    "data": {
        "total": {
            "dateStart": "example string value",
            "dateEnd": "example string value",
            "manualUsage": 911,
            "scheduledUsage": 232.72346203807902,
            "otherUsage": 876,
            "projects": [
                {
                    "projectId": "example string value",
                    "name": "example string value",
                    "manualUsage": 789,
                    "scheduledUsage": 190,
                    "otherUsage": 975.5724999008572,
                    "controllers": [
                        {
                            "controllerId": "example string value",
                            "name": "example string value",
                            "manualUsage": 317,
                            "scheduledUsage": 99.48917902050968,
                            "otherUsage": 923.0151022425923,
                            "zones": [
                                {
                                    "zoneNumber": 317,
                                    "name": "example string value",
                                    "manualUsage": 982,
                                    "scheduledUsage": 409
                                }
                            ]
                        }
                    ]
                }
            ]
        },
        "buckets": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "manualUsage": 415.3865167942767,
                "scheduledUsage": 101.54985734333744,
                "otherUsage": 897,
                "projects": [
                    {
                        "projectId": "example string value",
                        "name": "example string value",
                        "manualUsage": 112,
                        "scheduledUsage": 112,
                        "otherUsage": 251,
                        "controllers": [
                            {
                                "controllerId": "example string value",
                                "name": "example string value",
                                "manualUsage": 490.04312487786785,
                                "scheduledUsage": 394,
                                "otherUsage": 764.3410553058335,
                                "zones": [
                                    {
                                        "zoneNumber": 424,
                                        "name": "example string value",
                                        "manualUsage": 723.1357548027931,
                                        "scheduledUsage": 643
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }
        ],
        "bucketsTotal": [
            {
                "dateStart": "example string value",
                "dateEnd": "example string value",
                "manualUsage": 936,
                "scheduledUsage": 263.5990754997353,
                "otherUsage": 251.8633782173802
            }
        ]
    },
    "filters": {
        "projectControllers": {
            "projectControllers": [
                {
                    "projectId": "example string value",
                    "controllerIdList": [
                        "example string value"
                    ]
                }
            ]
        },
        "measureUnits": {
            "units": "GALLONS"
        },
        "period": {
            "startDate": "example string value",
            "endDate": "example string value",
            "interval": "DAY"
        }
    },
    "meta": {
        "example_property_name": "example string value"
    }
}

HTTP Request

GET /api/v1/reports/measured-water-usage-report/{id}

Request parameters

Name Type Part Required Description
Authorization string header true
id string path true

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
id string false
status string false
userId string false
data ReportData false
filters ReportFilters false
meta Object for field meta false

ReportData

Name Type Required Description
total Bucket false
buckets Bucket[ ] false
bucketsTotal BucketTotal[ ] false

Bucket

Name Type Required Description
dateStart string false
dateEnd string false
manualUsage number false
scheduledUsage number false
otherUsage number false
projects Project[ ] false

Project

Name Type Required Description
projectId string false
name string false
manualUsage number false
scheduledUsage number false
otherUsage number false
controllers Controller[ ] false

Controller

Name Type Required Description
controllerId string false
name string false
manualUsage number false
scheduledUsage number false
otherUsage number false
zones Zone[ ] false

Zone

Name Type Required Description
zoneNumber integer false
name string false
manualUsage number false
scheduledUsage number false

BucketTotal

Name Type Required Description
dateStart string false
dateEnd string false
manualUsage number false
scheduledUsage number false
otherUsage number false

ReportFilters

Name Type Required Description
projectControllers ProjectControllersFilter false
measureUnits WateringMeasureUnitsFilter false
period PeriodFilter false

ProjectControllersFilter

Name Type Required Description
projectControllers ProjectControllersValue[ ] false

ProjectControllersValue

Name Type Required Description
projectId string false
controllerIdList string[ ] false

WateringMeasureUnitsFilter

Name Type Required Description
units string false

PeriodFilter

Name Type Required Description
startDate string false
endDate string false
interval string false

Object for field meta

Name Type Required Description
* string false

V1 | Notifications User Preferences

Get all user configurations

Request

curl "https://developer-api.etwater.com/api/v1/users/{userId}/notification-preferences" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "userId": "example string value",
        "notificationKey": "example string value",
        "notificationTimePeriod": 421,
        "lastEmailSentTime": 291,
        "unsubscribe": false,
        "notificationName": "example string value"
    }
]

HTTP Request

GET /api/v1/users/{userId}/notification-preferences

Request parameters

Name Type Part Required Description
Authorization string header true
userId string path true

HTTP Responses

Code Description
200 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false
userId string false
notificationKey string false
notificationTimePeriod integer false
lastEmailSentTime integer false
unsubscribe boolean false
notificationName string false

Update user configurations

Request

curl "https://developer-api.etwater.com/api/v1/users/{userId}/notification-preferences" \
-X PATCH \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "[
    {
        \"id\": \"example string value\",
        \"userId\": \"example string value\",
        \"notificationKey\": \"example string value\",
        \"notificationTimePeriod\": 91,
        \"lastEmailSentTime\": 697,
        \"unsubscribe\": false,
        \"notificationName\": \"example string value\"
    }
]"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "userId": "example string value",
        "notificationKey": "example string value",
        "notificationTimePeriod": 948,
        "lastEmailSentTime": 484,
        "unsubscribe": true,
        "notificationName": "example string value"
    }
]

HTTP Request

PATCH /api/v1/users/{userId}/notification-preferences

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
UserNotificationConfigs UserNotificationConfig[ ] body true

UserNotificationConfig

Name Type Required Description
id string false
userId string false
notificationKey string false
notificationTimePeriod integer false
lastEmailSentTime integer false
unsubscribe boolean false
notificationName string false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false
userId string false
notificationKey string false
notificationTimePeriod integer false
lastEmailSentTime integer false
unsubscribe boolean false
notificationName string false

V1 | PRIVATE Notifications User Preferences

Get all user configurations

Request

curl "https://developer-api.etwater.com/api/v1/private/users/{userId}/notification-preferences" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "userId": "example string value",
        "notificationKey": "example string value",
        "notificationTimePeriod": 990,
        "lastEmailSentTime": 344,
        "unsubscribe": false,
        "notificationName": "example string value"
    }
]

HTTP Request

GET /api/v1/private/users/{userId}/notification-preferences

Request parameters

Name Type Part Required Description
Authorization string header true
userId string path true

HTTP Responses

Code Description
200 Successful Response
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false
userId string false
notificationKey string false
notificationTimePeriod integer false
lastEmailSentTime integer false
unsubscribe boolean false
notificationName string false

Update user configurations

Request

curl "https://developer-api.etwater.com/api/v1/private/users/{userId}/notification-preferences" \
-X PATCH \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "[
    {
        \"id\": \"example string value\",
        \"userId\": \"example string value\",
        \"notificationKey\": \"example string value\",
        \"notificationTimePeriod\": 637,
        \"lastEmailSentTime\": 91,
        \"unsubscribe\": false,
        \"notificationName\": \"example string value\"
    }
]"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "userId": "example string value",
        "notificationKey": "example string value",
        "notificationTimePeriod": 958,
        "lastEmailSentTime": 480,
        "unsubscribe": false,
        "notificationName": "example string value"
    }
]

HTTP Request

PATCH /api/v1/private/users/{userId}/notification-preferences

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
UserNotificationConfigs UserNotificationConfig[ ] body true

UserNotificationConfig

Name Type Required Description
id string false
userId string false
notificationKey string false
notificationTimePeriod integer false
lastEmailSentTime integer false
unsubscribe boolean false
notificationName string false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false
userId string false
notificationKey string false
notificationTimePeriod integer false
lastEmailSentTime integer false
unsubscribe boolean false
notificationName string false

V1 | Restrictions Schedule

Get a Schedule Restriction by controllerId

Request

curl "https://developer-api.etwater.com/api/v1/restrictions/schedule?controllerId=example+string+value" \
-X GET \
-H "Authorization: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value"

On success, the above request returns response like

[
    {
        "controllerId": "example string value",
        "zoneConstraints": {
            "example_property_name": {
                "minIrrigationMm": 290,
                "minIrrigationMinutes": 927,
                "minIrrigationPercentage": 445,
                "maxIrrigationMm": 683,
                "maxIrrigationMinutes": 678,
                "maxIrrigationPercentage": 82,
                "minOneCycleMm": 619,
                "minOneCycleMinutes": 319,
                "minOneCyclePercentage": 92,
                "maxOneCycleMm": 964,
                "maxOneCycleMinutes": 229,
                "maxOneCyclePercentage": 737,
                "maxCyclesCount": 430
            }
        },
        "createdAt": 684,
        "updatedAt": 185,
        "userId": "example string value",
        "id": "example string value"
    }
]

HTTP Request

GET /api/v1/restrictions/schedule

Request parameters

Name Type Part Required Description
Authorization string header true
Unity-Api-Gateway-Replace-UserId string header false
controllerId string query true

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
controllerId string false
zoneConstraints Object for field zoneConstraints false
createdAt integer false
updatedAt integer false
userId string false
id string false

Object for field zoneConstraints

Name Type Required Description
* ProgramConstraints false

ProgramConstraints

Name Type Required Description
minIrrigationMm integer false
minIrrigationMinutes integer false
minIrrigationPercentage integer false
maxIrrigationMm integer false
maxIrrigationMinutes integer false
maxIrrigationPercentage integer false
minOneCycleMm integer false
minOneCycleMinutes integer false
minOneCyclePercentage integer false
maxOneCycleMm integer false
maxOneCycleMinutes integer false
maxOneCyclePercentage integer false
maxCyclesCount integer false

Create a Schedule Restriction

Request

curl "https://developer-api.etwater.com/api/v1/restrictions/schedule" \
-X POST \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value" \
--data "{
    \"controllerId\": \"example string value\",
    \"zoneConstraints\": {
        \"example_property_name\": {
            \"minIrrigationMm\": 113,
            \"minIrrigationMinutes\": 416,
            \"minIrrigationPercentage\": 860,
            \"maxIrrigationMm\": 541,
            \"maxIrrigationMinutes\": 549,
            \"maxIrrigationPercentage\": 126,
            \"minOneCycleMm\": 316,
            \"minOneCycleMinutes\": 613,
            \"minOneCyclePercentage\": 916,
            \"maxOneCycleMm\": 235,
            \"maxOneCycleMinutes\": 686,
            \"maxOneCyclePercentage\": 810,
            \"maxCyclesCount\": 28
        }
    },
    \"createdAt\": 147,
    \"updatedAt\": 125,
    \"userId\": \"example string value\",
    \"id\": \"example string value\"
}"

On success, the above request returns response like

no reponse

HTTP Request

POST /api/v1/restrictions/schedule

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
Unity-Api-Gateway-Replace-UserId string header false
ScheduleConstraints ScheduleConstraints body true

ScheduleConstraints

Name Type Required Description
controllerId string false
zoneConstraints Object for field zoneConstraints false
createdAt integer false
updatedAt integer false
userId string false
id string false

Object for field zoneConstraints

Name Type Required Description
* ProgramConstraints false

ProgramConstraints

Name Type Required Description
minIrrigationMm integer false
minIrrigationMinutes integer false
minIrrigationPercentage integer false
maxIrrigationMm integer false
maxIrrigationMinutes integer false
maxIrrigationPercentage integer false
minOneCycleMm integer false
minOneCycleMinutes integer false
minOneCyclePercentage integer false
maxOneCycleMm integer false
maxOneCycleMinutes integer false
maxOneCyclePercentage integer false
maxCyclesCount integer false

HTTP Responses

Code Description
201 Created
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
controllerId string false
zoneConstraints Object for field zoneConstraints false
createdAt integer false
updatedAt integer false
userId string false
id string false

Object for field zoneConstraints

Name Type Required Description
* ProgramConstraints false

ProgramConstraints

Name Type Required Description
minIrrigationMm integer false
minIrrigationMinutes integer false
minIrrigationPercentage integer false
maxIrrigationMm integer false
maxIrrigationMinutes integer false
maxIrrigationPercentage integer false
minOneCycleMm integer false
minOneCycleMinutes integer false
minOneCyclePercentage integer false
maxOneCycleMm integer false
maxOneCycleMinutes integer false
maxOneCyclePercentage integer false
maxCyclesCount integer false

Get a Schedule Restriction by id

Request

curl "https://developer-api.etwater.com/api/v1/restrictions/schedule/{id}" \
-X GET \
-H "Authorization: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value"

On success, the above request returns response like

{
    "controllerId": "example string value",
    "zoneConstraints": {
        "example_property_name": {
            "minIrrigationMm": 237,
            "minIrrigationMinutes": 827,
            "minIrrigationPercentage": 868,
            "maxIrrigationMm": 284,
            "maxIrrigationMinutes": 23,
            "maxIrrigationPercentage": 834,
            "minOneCycleMm": 367,
            "minOneCycleMinutes": 962,
            "minOneCyclePercentage": 645,
            "maxOneCycleMm": 73,
            "maxOneCycleMinutes": 878,
            "maxOneCyclePercentage": 334,
            "maxCyclesCount": 265
        }
    },
    "createdAt": 215,
    "updatedAt": 569,
    "userId": "example string value",
    "id": "example string value"
}

HTTP Request

GET /api/v1/restrictions/schedule/{id}

Request parameters

Name Type Part Required Description
Authorization string header true
Unity-Api-Gateway-Replace-UserId string header false
id string path true

HTTP Responses

Code Description
200 OK
404 Not Found
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
controllerId string false
zoneConstraints Object for field zoneConstraints false
createdAt integer false
updatedAt integer false
userId string false
id string false

Object for field zoneConstraints

Name Type Required Description
* ProgramConstraints false

ProgramConstraints

Name Type Required Description
minIrrigationMm integer false
minIrrigationMinutes integer false
minIrrigationPercentage integer false
maxIrrigationMm integer false
maxIrrigationMinutes integer false
maxIrrigationPercentage integer false
minOneCycleMm integer false
minOneCycleMinutes integer false
minOneCyclePercentage integer false
maxOneCycleMm integer false
maxOneCycleMinutes integer false
maxOneCyclePercentage integer false
maxCyclesCount integer false

Delete a Schedule Restriction by id

Request

curl "https://developer-api.etwater.com/api/v1/restrictions/schedule/{id}" \
-X DELETE \
-H "Authorization: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value"

On success, the above request returns response like

no reponse

HTTP Request

DELETE /api/v1/restrictions/schedule/{id}

Request parameters

Name Type Part Required Description
Authorization string header true
Unity-Api-Gateway-Replace-UserId string header false
id string path true

HTTP Responses

Code Description
204 No Content
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Update a Schedule Restriction by id

Request

curl "https://developer-api.etwater.com/api/v1/restrictions/schedule/{id}" \
-X PUT \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
-H "Unity-Api-Gateway-Replace-UserId: example string value" \
--data "{
    \"controllerId\": \"example string value\",
    \"zoneConstraints\": {
        \"example_property_name\": {
            \"minIrrigationMm\": 982,
            \"minIrrigationMinutes\": 35,
            \"minIrrigationPercentage\": 227,
            \"maxIrrigationMm\": 13,
            \"maxIrrigationMinutes\": 662,
            \"maxIrrigationPercentage\": 549,
            \"minOneCycleMm\": 347,
            \"minOneCycleMinutes\": 23,
            \"minOneCyclePercentage\": 147,
            \"maxOneCycleMm\": 885,
            \"maxOneCycleMinutes\": 591,
            \"maxOneCyclePercentage\": 530,
            \"maxCyclesCount\": 433
        }
    },
    \"createdAt\": 379,
    \"updatedAt\": 767,
    \"userId\": \"example string value\",
    \"id\": \"example string value\"
}"

On success, the above request returns response like

{
    "controllerId": "example string value",
    "zoneConstraints": {
        "example_property_name": {
            "minIrrigationMm": 328,
            "minIrrigationMinutes": 1,
            "minIrrigationPercentage": 339,
            "maxIrrigationMm": 760,
            "maxIrrigationMinutes": 953,
            "maxIrrigationPercentage": 535,
            "minOneCycleMm": 607,
            "minOneCycleMinutes": 132,
            "minOneCyclePercentage": 986,
            "maxOneCycleMm": 370,
            "maxOneCycleMinutes": 158,
            "maxOneCyclePercentage": 306,
            "maxCyclesCount": 598
        }
    },
    "createdAt": 540,
    "updatedAt": 465,
    "userId": "example string value",
    "id": "example string value"
}

HTTP Request

PUT /api/v1/restrictions/schedule/{id}

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
Unity-Api-Gateway-Replace-UserId string header false
id string path true
ScheduleConstraints ScheduleConstraints body true

ScheduleConstraints

Name Type Required Description
controllerId string false
zoneConstraints Object for field zoneConstraints false
createdAt integer false
updatedAt integer false
userId string false
id string false

Object for field zoneConstraints

Name Type Required Description
* ProgramConstraints false

ProgramConstraints

Name Type Required Description
minIrrigationMm integer false
minIrrigationMinutes integer false
minIrrigationPercentage integer false
maxIrrigationMm integer false
maxIrrigationMinutes integer false
maxIrrigationPercentage integer false
minOneCycleMm integer false
minOneCycleMinutes integer false
minOneCyclePercentage integer false
maxOneCycleMm integer false
maxOneCycleMinutes integer false
maxOneCyclePercentage integer false
maxCyclesCount integer false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response

Name Type Required Description
controllerId string false
zoneConstraints Object for field zoneConstraints false
createdAt integer false
updatedAt integer false
userId string false
id string false

Object for field zoneConstraints

Name Type Required Description
* ProgramConstraints false

ProgramConstraints

Name Type Required Description
minIrrigationMm integer false
minIrrigationMinutes integer false
minIrrigationPercentage integer false
maxIrrigationMm integer false
maxIrrigationMinutes integer false
maxIrrigationPercentage integer false
minOneCycleMm integer false
minOneCycleMinutes integer false
minOneCyclePercentage integer false
maxOneCycleMm integer false
maxOneCycleMinutes integer false
maxOneCyclePercentage integer false
maxCyclesCount integer false

V1 | Restrictions Suspension

Find Suspension Restrictions

Request

curl "https://developer-api.etwater.com/api/v1/restrictions/suspension?controllerId=example+string+value" \
-X GET \
-H "Authorization: example string value"

On success, the above request returns response like

[
    {
        "id": "example string value",
        "controllerId": "example string value",
        "userId": "example string value",
        "startSuspension": 480,
        "endSuspension": 72
    }
]

HTTP Request

GET /api/v1/restrictions/suspension

Request parameters

Name Type Part Required Description
Authorization string header true
controllerId string query false

HTTP Responses

Code Description
200 OK
400 Bad Request
401 Unauthorized
403 Forbidden
500 Internal Server Error
504 Gateway Timeout

Successful response is array of

Name Type Required Description
id string false
controllerId string false
userId string false
startSuspension integer false
endSuspension integer false

Create a Municipal Restriction

Request

curl "https://developer-api.etwater.com/api/v1/restrictions/suspension" \
-X POST \
-H "Authorization: example string value" \
-H "Content-Type: example string value" \
--data "{
    \"id\": \"example string value\",
    \"controllerId\": \"example string value\",
    \"userId\": \"example string value\",
    \"startSuspension\": 870,
    \"endSuspension\": 253
}"

On success, the above request returns response like

no reponse

HTTP Request

POST /api/v1/restrictions/suspension

Request parameters

Name Type Part Required Description
Authorization string header true
Content-Type string header true
RestrictionsSuspension RestrictionsSuspension body true

RestrictionsSuspension