API getting started

Page last updated: Friday, 20 September 2019 - 12:21pm

Please note: This content may be out of date and is currently under review.

The API's all offer a test harness to make it easy to start to interact with them, but you need to be a registered user to obtain an API Key.

Please be aware of the Terms and Conditions for use of DPIRD APIs.

API How to use.

Please fill out the DPIRD API Registration Form to obtain an API key.

Note, that your old API keys will not work with the new and updated versions of the APIs. Please fill out the form linked above to request a new one.

Once you have an API key you can then call the API service from whatever technology you are using. To simply test you can use a simple command line utility called 'cURL'. curl is available by default on Linux operating systems but for windows you can download an installation to install the additional library http://curl.haxx.se/

To test the service you can then type the following from a command line.

curl -X GET -k -H "api-key:yourkeyhere" "https://api.agric.wa.gov.au/v1/weatherstations.json"

Example response

{
  "result": [
    {
      "station_id": "MP",
      "name": "Manypeaks",
      "latitude": "-34.76794444",
      "longitude": "118.2245556",
      "station_owner": "Department of Agriculture and Food",
      "start_date": "1993-05-04",
      "end_date": ""
    },
    {
      "station_id": "RA",
      "name": "Ravensthorpe",
      "latitude": "-33.435863",
      "longitude": "119.730175",
      "station_owner": "Department of Agriculture and Food",
      "start_date": "1999-12-16",
      "end_date": ""
    },
 

If the API Key is valid you will get the data returned in the format expected. An invalid API Key will return an 'Unauthorised response' ;

Example: Unauthorised response

{
    "error": {
        "code": 401,
        "message": "Unauthorized"
    },
    "debug": {
        "source": "Restler.php:891 at authenticate stage",
        "stages": {
            "success": [
                "get",
                "route",
                "negotiate"
            ],
            "failure": [
                "authenticate",
                "message"
            ]
        }
    }
}