This is the RESTful API intended for use in production with the WilderWatch Client built with Python, Django, and Django REST Framework.
Note: If you are interested in pulling the wilder-watch-api down to run locally, you will need to use the demo version that uses a generic SECRET_KEY for development purposes
Click here for WilderWatch demo server
https://wilder-watch-api-iknch.ondigitalocean.app/
Authenticates an existing user
Body:
{
"username": "string",
"password": "string"
}Response 200:
{
"valid": "boolean",
"token": "string"
}Registers a new user
Body:
{
"username": "string",
"password": "string",
"email": "string",
"first_name": "string",
"last_name": "string"
}Response 200:
{
"valid": "boolean",
"token": "string"
}Retrieves all regions
Response 200:
[
{
"id": "integer",
"label": "string"
},
{
"id": "integer",
"label": "string"
},
]Retrieves single region
Response 200:
{
"id": "integer",
"label": "string"
}Retrieves all study types
Response 200:
[
{
"id": "integer",
"label": "string"
},
{
"id": "integer",
"label": "string"
},
]Retrieves single study type
Response 200:
{
"id": "integer",
"label": "string"
}Retrieves all studies
Response 200:
[
{
"id": "integer",
"title": "string",
"author": {
"id": "integer",
"user": {
"id": "integer",
"username": "string",
"first_name": "string",
"last_name": "string",
"is_staff": "boolean"
},
"bio": "string",
"flair": "string",
"image_url": "string",
"is_researcher": "boolean",
"full_name": "string"
},
"subject": "string",
"summary": "string",
"details": "string",
"start_date": "date",
"end_date": "date",
"is_complete": "boolean",
"study_type": {
"id": "integer",
"label": "string"
},
"region": {
"id": "integer",
"label": "string"
},
"image_url": "string",
"observations": [
{
"id": "integer",
"participant": "integer",
"study": "integer",
"latitude": "float",
"longitude": "float",
"description": "string",
"image": "string",
"date": "date",
"participant_name": "string",
"study_title": "string"
}
],
"average_longitude": "float",
"average_latitude": "float",
"furthest_longitude": "float",
"furthest_latitude": "float"
},
]Retrieves single study
Response 200:
{
"id": "integer",
"title": "string",
"author": {
"id": "integer",
"user": {
"id": "integer",
"username": "string",
"first_name": "string",
"last_name": "string",
"is_staff": "boolean"
},
"bio": "string",
"flair": "string",
"image_url": "string",
"is_researcher": "boolean",
"full_name": "string"
},
"subject": "string",
"summary": "string",
"details": "string",
"start_date": "date",
"end_date": "date",
"is_complete": "boolean",
"study_type": {
"id": "integer",
"label": "string"
},
"region": {
"id": "integer",
"label": "string"
},
"image_url": "string",
"observations": [
{
"id": "integer",
"participant": "integer",
"study": "integer",
"latitude": "float",
"longitude": "float",
"description": "string",
"image": "string",
"date": "date",
"participant_name": "string",
"study_title": "string"
}
],
"average_longitude": "float",
"average_latitude": "float",
"furthest_longitude": "float",
"furthest_latitude": "float"
}Creates a new study
Headers:
"Authorization": "Token <Auth token goes here>"
Body:
{
"title": "string",
"subject": "string",
"summary": "string",
"details": "string",
"startDate": "date",
"endDate": "date",
"studyTypeId": "integer",
"regionId": "integer",
"imageUrl": "string"
}Response 201 Created:
{
"id": "integer",
"title": "string",
"author": {
"id": "integer",
"user": {
"id": "integer",
"username": "string",
"first_name": "string",
"last_name": "string",
"is_staff": "boolean"
},
"bio": "string",
"flair": "string",
"image_url": "string",
"is_researcher": "boolean",
"full_name": "string"
},
"subject": "string",
"summary": "string",
"details": "string",
"start_date": "date",
"end_date": "date",
"is_complete": "boolean",
"study_type": {
"id": "integer",
"label": "string"
},
"region": {
"id": "integer",
"label": "string"
},
"image_url": "string",
"observations": [
{
"id": "integer",
"participant": "integer",
"study": "integer",
"latitude": "float",
"longitude": "float",
"description": "string",
"image": "string",
"date": "date",
"participant_name": "string",
"study_title": "string"
}
],
"average_longitude": "float",
"average_latitude": "float",
"furthest_longitude": "float",
"furthest_latitude": "float"
}Updates an existing study
Headers:
"Authorization": "Token <Auth token goes here>"
Body:
{
"title": "string",
"subject": "string",
"summary": "string",
"details": "string",
"startDate": "date",
"endDate": "date",
"studyTypeId": "integer",
"regionId": "integer",
"imageUrl": "string"
}Response: 204 No Content
Deletes an existing study
Headers:
"Authorization": "Token <Auth token goes here>"
Response: 204 No Content
Adds an observation to an existing study
Headers:
"Authorization": "Token <Auth token goes here>"
Body:
{
"latitude": "float",
"longitude": "float",
"description": "string",
"image": "string",
"date": "date"
}Response 201 Created:
{
"id": "integer",
"participant": "integer",
"study": "integer",
"latitude": "float",
"longitude": "float",
"description": "string",
"image": "string",
"date": "date",
"participant_name": "string",
"study_title": "string"
}Retrieves all users
Response 200:
[
{
"id": "integer",
"user": {
"id": "integer",
"username": "string",
"first_name": "string",
"last_name": "string",
"is_staff": "boolean"
},
"bio": "string",
"flair": "string",
"image_url": "string",
"is_researcher": "boolean",
"full_name": "string"
},
]Retrieves single user
Response 200:
{
"id": "integer",
"user": {
"id": "integer",
"username": "string",
"first_name": "string",
"last_name": "string",
"is_staff": "boolean"
},
"bio": "string",
"flair": "string",
"image_url": "string",
"is_researcher": "boolean",
"full_name": "string"
}Retrieves all studies that a user has participated in
Response 200:
[
{
"id": "integer",
"title": "string",
"author": {
"id": "integer",
"user": {
"id": "integer",
"username": "string",
"first_name": "string",
"last_name": "string",
"is_staff": "boolean"
},
"bio": "string",
"flair": "string",
"image_url": "string",
"is_researcher": "boolean",
"full_name": "string"
},
"subject": "string",
"summary": "string",
"details": "string",
"start_date": "date",
"end_date": "date",
"is_complete": "boolean",
"study_type": {
"id": "integer",
"label": "string"
},
"region": {
"id": "integer",
"label": "string"
},
"image_url": "string",
"observations": [
{
"id": "integer",
"participant": "integer",
"study": "integer",
"latitude": "float",
"longitude": "float",
"description": "string",
"image": "string",
"date": "date",
"participant_name": "string",
"study_title": "string"
}
],
"average_longitude": "float",
"average_latitude": "float",
"furthest_longitude": "float",
"furthest_latitude": "float"
},
]Retrieves all studies that a user has authored
Response 200:
[
{
"id": "integer",
"title": "string",
"author": {
"id": "integer",
"user": {
"id": "integer",
"username": "string",
"first_name": "string",
"last_name": "string",
"is_staff": "boolean"
},
"bio": "string",
"flair": "string",
"image_url": "string",
"is_researcher": "boolean",
"full_name": "string"
},
"subject": "string",
"summary": "string",
"details": "string",
"start_date": "date",
"end_date": "date",
"is_complete": "boolean",
"study_type": {
"id": "integer",
"label": "string"
},
"region": {
"id": "integer",
"label": "string"
},
"image_url": "string",
"observations": [
{
"id": "integer",
"participant": "integer",
"study": "integer",
"latitude": "float",
"longitude": "float",
"description": "string",
"image": "string",
"date": "date",
"participant_name": "string",
"study_title": "string"
}
],
"average_longitude": "float",
"average_latitude": "float",
"furthest_longitude": "float",
"furthest_latitude": "float"
},
]