The Wildlife Trusts

Data Site API Documentation

Introduction

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.


Access

Currently access is limited to individual Wildlife Trust's, however access may be granted on a per request basis. Please contact Shaun Gill for more information.


Authentication

Authenticate your account when using the API by including your secret API key in the request. You can manage your API keys by logging in, please ensure you keep them secret! Do not share your secret API with anybody you do not trust.

Authentication to the API is performed via HTTP Basic Auth. Provide your API key as the basic auth username value. You do not need to provide a password.

All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.,


Errors

The Wildlife Trusts API uses conventional HTTP response codes to indicate the success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that failed given the information provided, and codes in the 5xx range indicate an a server error.

Not all errors map cleanly onto HTTP response codes, however. When a request is valid but does not complete successfully, we return a 402 error code.

Attributes
code HTTP Status code providing type of error
message Human-readable message providing details of the possible cause to the error

Handling Errors

There could be a number of reasons why the API library generates an error, such as authentication error, reserve/event not exisiting or being forbidden to updating a reserve not belonging to your trust. We suggest writing code that gracefully handles all possible API exceptions

HTTP Status Codes

200 - OK Everything worked fine
400 - Bad Request The request was unacceptable, often due to missing a required parameter.
401 - Unauthorised API key either unprovided or invalid
402 - Request Failed The request is valid but failed
403 - Forbidden Valid API key provided, but the request is not available to the current user
404 - Not Found The resource requested does not exist
405 - Method Not Allowed Request is trying to access a valid resource through a method which is not allowed
418 - I'm a Teapot The request attempted to brew coffee
5xx - Server Errors Something went wrong on the server

Example Output

POST /reserves/1 HTTP/1.1
Host: api.wildlifetrusts.org
Content-Type: application/json
Content-Length: 58

{
	"status": 405,
	"error": "Only accept GET Requests"
}

Versioning

API version is in the format of X.Y.Z where X=Major, Y=Minor and Z=Security/Bugfix release. When a change to the API has been made which is not backwards compatible, we will release this as a new major version. API version is controlled through the URI.

We define backwards compatible changes as:

  • Adding new resources
  • Adding new parameters to existing methods
  • Adding new properties to existing responses

Events

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo.


Create an event

Parameters

uuid
required
string
Unique ID - see PHP uniqid()
title
required
string
The event name
dates
required
array of timestamps
Child attributes:[start] [end]
time_details string
Any supporting information regarding the timings of the event
body string
Detailed information of the event
summary string
Summary of event information (usually introduction text)
img array of strings
Details of the promotional image
Child attributes:[url] [title] [alt]
booking_required boolean - 0
Is booking required for the event
capacity int
Attendee capacity. Default: 0 = No limit
admission_charge int
Cost of the event. Default: 0 = free
admission_details string
Supporting information regarding admission
joining_instructions string
Additional joining instructions
audience int
ID of audience taxonomy
contact_name string
Contact name for the event organiser
contact_number string
Contact telephone number for the event organiser
contact_email string
Contact email address for the event organiser
registration_details ?? Find out!!
mobility_info string
Disability access information
wheelchair_info string
Information to whether the event is suitable for wheelchair access
dogs string
Infomation to whether dogs are aloud
what_to_bring string
Additional information if the attendee is required to bring anything extra to the event
location_id
required
int
ID of location resource where the event is taking place
meeting_info string
Addition information with regards to meeting place
published boolean - 1
Whether the event is published or not
event_type int
Taxonomy ID

POST /events/

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Event created"
}

Audience ID's

0 - All
1 - Families
2 - Children
3 - Adults
4 - Experts
5 - Beginners

Event Types

0 - Adult
1 - Learning / Education
2 - Open Day
3 - Other
4 - Outdoor Activity
5 - Sale
6 - Talk
7 - Training
8 - Volunteering
9 - Walk
10 - Wildlife Watch

Retrieve an event

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.

GET /events/:uuid

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Blah"
}

Update an event

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.

PUT /events/:uuid

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Blah"
}

Delete an event

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.

DELETE /events/:uuid

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Blah"
}

List events

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.

GET /events/

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Blah"
}

List events by Trust

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.

GET /events/trust/:id

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Blah"
}

Locations


Create a location

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.

POST /locations/

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Blah"
}

Retrieve a location

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.

GET /locations/:uuid

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Blah"
}

Update a location

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.

PUT /locations/:uuid

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Blah"
}

List locations

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer sollicitudin condimentum felis in consectetur. Nullam at ornare libero. Duis a dolor posuere, tristique mi vel, pharetra ante. Etiam vel egestas eros. Nam scelerisque, lectus vel egestas blandit, eros tortor suscipit augue, ac ornare arcu odio vitae libero. Proin sed velit in erat aliquet aliquam a quis orci. Morbi ultrices malesuada purus vel dapibus. Nullam mattis, sapien id accumsan vehicula, mauris orci viverra leo, a lobortis sem dolor non dui. Maecenas eu erat a libero elementum efficitur eu sit amet magna. Phasellus tellus elit, blandit et tellus vitae, porttitor euismod mauris. Quisque sagittis nisl eget eros accumsan, ut tempor ipsum rhoncus. Suspendisse suscipit ex eu tincidunt gravida. Vivamus lobortis ornare vulputate. Mauris ultrices feugiat purus, ut pellentesque lacus.

GET /locations

Example Response

HTTP/1.1 200 OK
Server: apache
Content-Type: application/json
Cache-Control: no-cache, private
Date: Mon, 24 Sep 2016 16:52:12 GMT

{
	"status": 200,
	"message": "Blah"
}

Reserves


Species


Trusts