StraboSpot REST API
The StraboSpot REST API uses HTTP Basic Auth for authentication. An account can be obtained
by clicking on the "ACCOUNT->REGISTER" link above. Once an account is created, it will need
to be validated by email. When using the StraboSpot REST API, you will use your email address as the username and your
password as entered during registration. Alternatively, the StraboSpot system also supports JWT (JSON Web Tokens) for
access all API endpoints. The path for JWT access is "/jwtdb/" instead of "/db/" for all requests. JSON web tokens can
be acquired by clicking here.
Upload Spots(s)
Example request
Example response
-
POST:https://strabospot.org/db/datasetspots/12345
-
Where: 12345 is the dataset id.
-
Accept: application/json; charset=UTF-8
-
Note: This function accepts a GeoJSON FeatureCollection and populates it as individual spot(s) for the given dataset. An existing dataset is required.
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "images": [ { "height": 1999, "id": 1122334455667788991, "annotated": true, "title": "new image here", "width": 720, "caption": "caption here" }, { "height": 999, "id": 1122334455667788992, "annotated": true, "title": "title of image here", "width": 720, "caption": "caption here" }, { "height": 669, "id": 1122334455667788993, "annotated": false, "title": "", "width": 500, "caption": "caption here" } ], "time": "2016-02-18T21:10:35.000Z", "id": 12345678901, "orientation_data": [ { "dip_direction": 65, "strike": 55, "dip": 45, "facing": "upright", "orientation_type": "planar_orientation" } ], "modified_timestamp": 1455830604745, "date": "2016-02-18T21:10:35.000Z", "samples": [ { "sample_id_name": "id2", "oriented_sample": "yes", "sample_description": "Hhh", "sample_orientation_notes": "Fffhhh" } ], "name": "My test point1" }, "geometry": { "type": "Point", "coordinates": [ -97.678707920763003, 38.576879262485001 ] } }, { "type": "Feature", "properties": { "images": [ { "height": 1999, "id": 1122334455667788994, "annotated": true, "title": "new image here", "width": 720, "caption": "caption here" }, { "height": 999, "id": 1122334455667788995, "annotated": true, "title": "title of image here", "width": 720, "caption": "caption here" }, { "height": 669, "id": 1122334455667788996, "annotated": false, "title": "", "width": 500, "caption": "caption here" } ], "time": "2016-02-18T21:10:35.000Z", "id": 12345678902, "orientation_data": [ { "dip_direction": 65, "strike": 55, "dip": 45, "facing": "upright", "orientation_type": "planar_orientation" } ], "modified_timestamp": 1455830604745, "date": "2016-02-18T21:10:35.000Z", "samples": [ { "sample_id_name": "id3", "oriented_sample": "yes", "sample_description": "Hhh", "sample_orientation_notes": "Fffhhh" } ], "name": "My test point2" }, "geometry": { "type": "Point", "coordinates": [ -97.678707920763003, 38.576879262485001 ] } }, { "type": "Feature", "properties": { "images": [ { "height": 1999, "id": 1122334455667788997, "annotated": true, "title": "new image here", "width": 720, "caption": "caption here" }, { "height": 999, "id": 1122334455667788998, "annotated": true, "title": "title of image here", "width": 720, "caption": "caption here" }, { "height": 669, "id": 1122334455667788999, "annotated": false, "title": "", "width": 500, "caption": "caption here" } ], "time": "2016-02-18T21:10:35.000Z", "id": 12345678903, "orientation_data": [ { "dip_direction": 65, "strike": 55, "dip": 45, "facing": "upright", "orientation_type": "planar_orientation" } ], "modified_timestamp": 1455830604745, "date": "2016-02-18T21:10:35.000Z", "samples": [ { "sample_id_name": "id3", "oriented_sample": "yes", "sample_description": "Hhh", "sample_orientation_notes": "Fffhhh" } ], "name": "My test point3" }, "geometry": { "type": "Point", "coordinates": [ -97.678707920763003, 38.576879262485001 ] } } ] }
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { "images": [ { "height": 1999, "id": 1122334455667788991, "annotated": true, "title": "new image here", "width": 720, "caption": "caption here", "self": "https://strabospot.org/image/1122334455667788991" }, { "height": 999, "id": 1122334455667788992, "annotated": true, "title": "title of image here", "width": 720, "caption": "caption here", "self": "https://strabospot.org/image/1122334455667788992" }, { "height": 669, "id": 1122334455667788993, "annotated": false, "title": "", "width": 500, "caption": "caption here", "self": "https://strabospot.org/image/1122334455667788993" } ], "time": "2016-02-18T21:10:35.000Z", "id": 12345678901, "self": "https://strabospot.org/feature/12345678901", "orientation_data": [ { "dip_direction": 65, "strike": 55, "dip": 45, "facing": "upright", "orientation_type": "planar_orientation" } ], "modified_timestamp": 1455830604745, "date": "2016-02-18T21:10:35.000Z", "samples": [ { "sample_id_name": "id2", "oriented_sample": "yes", "sample_description": "Hhh", "sample_orientation_notes": "Fffhhh" } ], "name": "My test point1" }, "geometry": { "type": "Point", "coordinates": [ -97.678707920763003, 38.576879262485001 ] } }, { "type": "Feature", "properties": { "images": [ { "height": 1999, "id": 1122334455667788994, "annotated": true, "title": "new image here", "width": 720, "caption": "caption here", "self": "https://strabospot.org/image/1122334455667788994" }, { "height": 999, "id": 1122334455667788995, "annotated": true, "title": "title of image here", "width": 720, "caption": "caption here", "self": "https://strabospot.org/image/1122334455667788995" }, { "height": 669, "id": 1122334455667788996, "annotated": false, "title": "", "width": 500, "caption": "caption here", "self": "https://strabospot.org/image/1122334455667788996" } ], "time": "2016-02-18T21:10:35.000Z", "id": 12345678902, "self": "https://strabospot.org/feature/12345678902", "orientation_data": [ { "dip_direction": 65, "strike": 55, "dip": 45, "facing": "upright", "orientation_type": "planar_orientation" } ], "modified_timestamp": 1455830604745, "date": "2016-02-18T21:10:35.000Z", "samples": [ { "sample_id_name": "id3", "oriented_sample": "yes", "sample_description": "Hhh", "sample_orientation_notes": "Fffhhh" } ], "name": "My test point2" }, "geometry": { "type": "Point", "coordinates": [ -97.678707920763003, 38.576879262485001 ] } }, { "type": "Feature", "properties": { "images": [ { "height": 1999, "id": 1122334455667788997, "annotated": true, "title": "new image here", "width": 720, "caption": "caption here", "self": "https://strabospot.org/image/1122334455667788997" }, { "height": 999, "id": 1122334455667788998, "annotated": true, "title": "title of image here", "width": 720, "caption": "caption here", "self": "https://strabospot.org/image/1122334455667788998" }, { "height": 669, "id": 1122334455667788999, "annotated": false, "title": "", "width": 500, "caption": "caption here", "self": "https://strabospot.org/image/1122334455667788999" } ], "time": "2016-02-18T21:10:35.000Z", "id": 12345678903, "self": "https://strabospot.org/feature/12345678903", "orientation_data": [ { "dip_direction": 65, "strike": 55, "dip": 45, "facing": "upright", "orientation_type": "planar_orientation" } ], "modified_timestamp": 1455830604745, "date": "2016-02-18T21:10:35.000Z", "samples": [ { "sample_id_name": "id3", "oriented_sample": "yes", "sample_description": "Hhh", "sample_orientation_notes": "Fffhhh" } ], "name": "My test point3" }, "geometry": { "type": "Point", "coordinates": [ -97.678707920763003, 38.576879262485001 ] } } ] }
Get Spot
Example request
Example response
-
GET: https://strabospot.org/db/feature/14309503161234,
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "geometry" : { "type" : "Polygon", "coordinates" : [[ [100,0], [101,0], [101,1], [100,1],[100,0] ]] }, "properties" : { "id": 14309503161234, "date" : "2014-11-20", "name" : "My Test Feature Polygon Name", "self" : "https://strabospot.org/db/feature/1234" }, "type" : "Feature" }
Delete Spot
Example request
Example response
-
DELETE: https://strabospot.org/db/feature/14309503161234,
-
Accept: application/json; charset=UTF-8
-
204: No Content
Get My Spots (Return all spots of authorized user)
Example request
Example response
-
GET: https://strabospot.org/db/myFeatures
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "type" : "FeatureCollection", "features" : [ { "geometry" : { "type" : "Polygon", "coordinates" : [[ [100,0], [101,0], [101,1], [100,1],[100,0] ]] }, "properties" : { "id" : 14309503161234, "date" : "2014-11-20", "name" : "Test 3", "self" : "https://strabospot.org/db/feature/1242" }, "type" : "Feature" }, { "geometry" : { "type" : "Polygon", "coordinates" : [[ [100,0], [101,0], [101,1], [100,1],[100,0] ]] }, "properties" : { "id": 14309503161235, "date" : "2014-11-20", "name" : "Test 2", "self" : "https://strabospot.org/db/feature/1241" }, "type" : "Feature" }, { "geometry" : { "type" : "Polygon", "coordinates" : [[ [100,0], [101,0], [101,1], [100,1],[100,0] ]] }, "properties" : { "id" : 14309503161236, "date" : "2014-11-20", "name" : "Test 1", "self" : "https://strabospot.org/db/feature/1240" }, "type" : "Feature" }, { "geometry" : { "type" : "Polygon", "coordinates" : [[ [100,0], [101,0], [101,1], [100,1],[100,0] ]] }, "properties" : { "id" : 14309503161237, "date" : "2014-11-20", "name" : "Test Poly", "self" : "https://strabospot.org/db/feature/1239" }, "type" : "Feature" } ] }
Delete All of My Spots (Delete all spots of authorized user)
Example request
Example response
-
DELETE: https://strabospot.org/db/myFeatures
-
Accept: application/json; charset=UTF-8
-
204: No Content
Authenticate User
Example request
Example response
-
POST: https://strabospot.org/userAuthenticate
-
Accept: application/json; charset=UTF-8
{ "email" : "foo@foo.com", "password" : "bar" }
-
200: OK
-
Content-Type: application/json
{ "valid" : "true" }or
{ "valid" : "false" }
Upload Image
Example request
Example response
This page can be found at: https://strabospot.org/imageupload.
-
POST: https://strabospot.org/db/image
-
Accept: application/json; charset=UTF-8
Due to a file being uploaded, this service accepts multiple POST variables: Variable Name: "id" - ID of image being uploaded. (required) Variable Name: "modified_timestamp" - Unix timestamp when image last modified. (optional) Variable Name: "image_file" - File containing image to be uploaded. (required) Also, please note the the encapsulation type MUST be set to "multipart/form-data".
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{"self":"https://strabospot.org/db/image/531","id":"531"}Note: Due to the complexity of using multipart/form-data, a test page has been created to test this service.
This page can be found at: https://strabospot.org/imageupload.
Get Image
Example request
Example response
-
GET: https://strabospot.org/db/image/527
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: image/jpg
File content of image is returned.
Delete Image
Example request
Example response
-
DELETE: https://strabospot.org/db/image/1234
-
Accept: application/json; charset=UTF-8
-
204: No Content
Verify Image Existence
Example request
Example response
-
GET: https://strabospot.org/db/verifyimage/1234
-
Accept: application/json; charset=UTF-8
-
200: Success
-
404: Not Found
Verify Multiple Images Existence
Example request
Example response
-
POST: https://strabospot.org/db/verifyImages
-
Accept: application/json; charset=UTF-8
-
Note: This function accepts an array of image IDs and returns an array of those NOT found on the server.
[ "14933043023319", "15638104924629", "15638106581721", "15638107960818", "15638108757466", "15638112859644", "15638120791554", "15638121473783", "15638133655910", "15638138515003", "15638215868385", "15639009840188" ]
-
200: Valid Request
-
Content-Type: application/json; charset=UTF-8
[ "15638121473783", "15638133655910", "15638138515003" ]
Note: The returned array of image IDs represents those NOT found on the server (of those provided).
Create Dataset
Example request
Example response
-
POST: https://strabospot.org/db/dataset
-
Accept: application/json; charset=UTF-8
{ "id": 14573623121234, "name": "MyDatasetName", "modified_timestamp": 1457377455, "date": "03/08/2016" }
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{ "datasettype" : "app", "name": "MyDatasetName", "id": 14573623121234, "self" : "https://strabospot.org/db/dataset/123456", "modified_timestamp": 1457377455, "date": "03/08/2016" }
Update Dataset
Example request
Example response
-
POST: https://strabospot.org/db/dataset/14573623121234
-
Accept: application/json; charset=UTF-8
-
Warning: All attributes will be overwritten with provided JSON values.
{ "name": "MyNewDatasetName" }
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{ "datasettype" : "app", "name": "MyNewDatasetName", "id": 14573623121234, "self" : "https://strabospot.org/db/dataset/14573623121234", "modified_timestamp": 1457377455, "date": "03/08/2016" }
Get Dataset
Example request
Example response
-
GET: https://strabospot.org/db/dataset/"id": 14573623121234,
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "datasettype" : "app", "name": "MyNewDatasetName", "id": 14573623121234, "self" : "https://strabospot.org/db/dataset/123456", "modified_timestamp": 1457377455, "date": "03/08/2016" }
Delete Dataset (also deletes spots)
Example request
Example response
-
DELETE: https://strabospot.org/db/dataset/123456
-
Accept: application/json; charset=UTF-8
-
204: No Content
Get My Datasets (Return all datasets of authorized user)
Example request
Example response
-
GET: https://strabospot.org/db/myDatasets
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "datasets" : [ { "datasettype" : "app", "self" : "https://strabospot.org/db/dataset/14573623121234", "id" : 14573623121234, "name" : "MyNewDatasetName", "modified_timestamp": 1457362312, "date": "03/08/2016" }, { "datasettype" : "app", "self" : "https://strabospot.org/db/dataset/14573623121235", "id" : 14573623121235, "name" : "Second Dataset", "modified_timestamp": 1457362312, "date": "03/08/2016" }, { "datasettype" : "app", "self" : "https://strabospot.org/db/dataset/14573623121236", "id" : 14573623121236, "name" : "ThirdDataset", "modified_timestamp": 1457362312, "date": "03/08/2016" }, { "datasettype" : "app", "self" : "https://strabospot.org/db/dataset/14573623121237", "id" : 14573623121237, "name" : "FourthDataset", "modified_timestamp": 1457362312, "date": "03/08/2016" } ] }
Add Spot to Dataset
Example request
Example response
-
POST: https://strabospot.org/db/datasetSpots/123456
-
Where: 123456 is the dataset id.
-
Accept: application/json; charset=UTF-8
{ "id":14309503161234 }
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{ "message" : "Spot 14309503161234 added to dataset 123456." }
Move Spot to Dataset
Example request
-
POST: https://strabospot.org/db/moveSpotToDataset
-
Accept: application/json; charset=UTF-8
{ "spot_id": 17049235492898, "dataset_id": 17049235120641, "modified_timestamp": 1704923569635 }
Note: This endpoint moves the spot provided to the dataset provided and updates the modified timestamps
of the project(s), original dataset, new dataset, and spot using the modified_timestamp provided.
Example response
of the project(s), original dataset, new dataset, and spot using the modified_timestamp provided.
-
201: Success
-
Content-Type: application/json; charset=UTF-8
{ "message": "Spot 17049235492898 moved to dataset 17049235120641." }
Get all Spots for Given Dataset
Example request
Example response
-
GET: https://strabospot.org/db/datasetSpots/123456
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "type" : "FeatureCollection", "features" : [ { "geometry" : { "type" : "Polygon", "coordinates" : [[ [100,0], [101,0], [101,1], [100,1],[100,0] ]] }, "properties" : { "id" : 14309503161234, "date" : "2014-11-20", "name" : "Test 3", "self" : "https://strabospot.org/db/feature/1242" }, "type" : "Feature" }, { "geometry" : { "type" : "Polygon", "coordinates" : [[ [100,0], [101,0], [101,1], [100,1],[100,0] ]] }, "properties" : { "id": 14309503161235, "date" : "2014-11-20", "name" : "Test 2", "self" : "https://strabospot.org/db/feature/1241" }, "type" : "Feature" }, { "geometry" : { "type" : "Polygon", "coordinates" : [[ [100,0], [101,0], [101,1], [100,1],[100,0] ]] }, "properties" : { "id" : 14309503161236, "date" : "2014-11-20", "name" : "Test 1", "self" : "https://strabospot.org/db/feature/1240" }, "type" : "Feature" }, { "geometry" : { "type" : "Polygon", "coordinates" : [[ [100,0], [101,0], [101,1], [100,1],[100,0] ]] }, "properties" : { "id" : 14309503161237, "date" : "2014-11-20", "name" : "Test Poly", "self" : "https://strabospot.org/db/feature/1239" }, "type" : "Feature" } ] }
Get all Fields that are populated for Given Dataset
Example request
Example response
-
GET: https://strabospot.org/db/datasetFields/123456
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
[ "id", "self", "name", "date", "time", "modified_timestamp", "strike", "dip_direction", "dip", "facing", "label", "trend", "plunge", "rake", "rake_calculated" ]
-
Optional: An optional point/line/polygon can be added to this request to limit the output to a specific feature type, e.g.,
https://strabospot.org/db/datasetFields/123456/point
or
https://strabospot.org/db/datasetFields/123456/polygon
Delete All Spots for Given Dataset (removes linking, but spots remain intact)
Example request
Example response
-
DELETE: https://strabospot.org/db/datasetSpots/123456
-
Accept: application/json; charset=UTF-8
-
204: No Content
Create Project
Example request
Example response
-
POST: https://strabospot.org/db/project
-
Accept: application/json; charset=UTF-8
{ "id": 14573774551234, "date": "03/08/2016", "modified_timestamp": 1457377455, "description": { "project_name": "My Project Name", "start_date": "startdate", "end_date": "enddate", "purpose_of_study": "purposeofstudy", "other_team_members": "otherteammembers", "area_of_interest": "areaofinterest", "spot_prefix": "spotprefixlabel", "starting_number_for_spot": "startingnumberforspots", "sample_prefix": "sampleprefixlabel", "instruments": "instrumentsused", "gps_datum": "gpsdatum", "magnetic_declination": "magneticdeclination", "Notes": "notes" }, "daily_setup": { "foo": "foo" }, "rock_units": [ { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" }, { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" } ], "preferences": { "orientation": false, "_3dstructures": false, "images": false, "sample": false, "inferences": false, "nesting": false, "right_hand_rule": false, "drop_down_to_finish": false, "student_mode": false } }
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{ "description": { "project_name": "My Project Name", "start_date": "startdate", "end_date": "enddate", "purpose_of_study": "purposeofstudy", "other_team_members": "otherteammembers", "area_of_interest": "areaofinterest", "spot_prefix": "spotprefixlabel", "starting_number_for_spot": "startingnumberforspots", "sample_prefix": "sampleprefixlabel", "instruments": "instrumentsused", "gps_datum": "gpsdatum", "magnetic_declination": "magneticdeclination", "Notes": "notes" }, "daily_setup": { "foo": "foo" }, "rock_units": [ { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" }, { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" } ], "preferences": { "orientation": false, "_3dstructures": false, "images": false, "sample": false, "inferences": false, "nesting": false, "right_hand_rule": false, "drop_down_to_finish": false, "student_mode": false }, "projecttype": "app", "self": "https://strabospot.org/db/project/14573774551234", "id": 14573774551234, "date": "03/08/2016", "modified_timestamp": 1457377455 }
Update Project
Example request
Example response
-
POST: https://strabospot.org/db/project/14573774551234
-
Accept: application/json; charset=UTF-8
-
Warning: All attributes will be overwritten with provided JSON values.
{ "description": { "project_name": "My New Project Name", "start_date": "startdate", "end_date": "enddate", "purpose_of_study": "purposeofstudy", "other_team_members": "otherteammembers", "area_of_interest": "areaofinterest", "spot_prefix": "spotprefixlabel", "starting_number_for_spot": "startingnumberforspots", "sample_prefix": "sampleprefixlabel", "instruments": "instrumentsused", "gps_datum": "gpsdatum", "magnetic_declination": "magneticdeclination", "Notes": "notes" }, "daily_setup": { "foo": "foo" }, "rock_units": [ { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" }, { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" } ], "preferences": { "orientation": false, "_3dstructures": false, "images": false, "sample": false, "inferences": false, "nesting": false, "right_hand_rule": false, "drop_down_to_finish": false, "student_mode": false }, "modified_timestamp": 1457377455 }
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{ "description": { "project_name": "My New Project Name", "start_date": "startdate", "end_date": "enddate", "purpose_of_study": "purposeofstudy", "other_team_members": "otherteammembers", "area_of_interest": "areaofinterest", "spot_prefix": "spotprefixlabel", "starting_number_for_spot": "startingnumberforspots", "sample_prefix": "sampleprefixlabel", "instruments": "instrumentsused", "gps_datum": "gpsdatum", "magnetic_declination": "magneticdeclination", "Notes": "notes" }, "daily_setup": { "foo": "foo" }, "rock_units": [ { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" }, { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" } ], "preferences": { "orientation": false, "_3dstructures": false, "images": false, "sample": false, "inferences": false, "nesting": false, "right_hand_rule": false, "drop_down_to_finish": false, "student_mode": false }, "projecttype": "app", "self": "https://strabospot.org/db/project/204006", "id": 14573774551234, "date": "03/08/2016", "modified_timestamp": 1457377455 }
Get Project
Example request
Example response
-
GET: https://strabospot.org/db/project/14573774551234
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "description": { "project_name": "My Project Name", "start_date": "startdate", "end_date": "enddate", "purpose_of_study": "purposeofstudy", "other_team_members": "otherteammembers", "area_of_interest": "areaofinterest", "spot_prefix": "spotprefixlabel", "starting_number_for_spot": "startingnumberforspots", "sample_prefix": "sampleprefixlabel", "instruments": "instrumentsused", "gps_datum": "gpsdatum", "magnetic_declination": "magneticdeclination", "Notes": "notes" }, "daily_setup": { "foo": "foo" }, "rock_units": [ { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" }, { "unit_label_abbreviation": "unitlabel", "map_unit_name": "unitorformationname", "member_name": "membername", "submember_name": "submembername", "absolute_age_of_geologic_unit": "absoluteageofgeologicunit", "age_uncertainty": "ageuncertainty", "group_unit_type": "groupunittype", "rock_type": "rocktype", "sediment_type": "sedimenttype", "other_sediment_type": "othersedimenttype", "sedimentary_rock_type": "sedimentaryrocktype", "igneous_rock_class": "igneousrockclass", "volcanic_rock_type": "volcanicrocktype", "other_volcanic_rock_type": "othervolcanicrocktype", "plutonic_rock_types": "plutonicrocktypes", "other_plutonic_rock_type": "otherplutonicrocktypes", "metamorphic_rock_types": "metamorphicrocktypes", "other_metamorphic_rock_type": "othermetamorphicrocktype", "group_geologic_age": "groupgeologicage", "epoch": "epoch", "other_epoch": "otherepoch", "period": "period", "era": "era", "eon": "eon", "age_modifier": "agemodifier", "description": "description", "Notes": "notes" } ], "preferences": { "orientation": false, "_3dstructures": false, "images": false, "sample": false, "inferences": false, "nesting": false, "right_hand_rule": false, "drop_down_to_finish": false, "student_mode": false }, "projecttype": "app", "self": "https://strabospot.org/db/project/14573774551234", "id": 14573774551234, "date": "03/08/2016", "modified_timestamp": 1457377455 }
Delete Project (also deletes datasets)
Example request
Example response
-
DELETE: https://strabospot.org/db/project/123456
-
Accept: application/json; charset=UTF-8
-
204: No Content
Get My Projects (Return all projects of authorized user)
Example request
Example response
-
GET: https://strabospot.org/db/myProjects
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "projects": [ { "projecttype": "app", "name": "My Project Name", "self": "https://strabospot.org/db/project/14573774551234", "id": 14573774551234, "date": "03/08/2016", "modified_timestamp": 1457377455 }, { "projecttype": "app", "name": "new project name", "self": "https://strabospot.org/db/project/14573774551235", "id": 14573774551235, "date": "03/08/2016", "modified_timestamp": 1457377455 } ] }
Add Dataset to Project
Example request
Example response
-
POST: https://strabospot.org/db/projectDatasets/123456
-
Where: 123456 is the project id.
-
Accept: application/json; charset=UTF-8
{ "id":654321 }
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{ "message" : "Dataset 654321 added to Project 123456." }
Get all Datasets for Given Project
Example request
Example response
-
GET: https://strabospot.org/db/projectDatasets/123456
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "datasets": [ { "datasettype": "app", "name": "My Dataset Name", "self": "https://strabospot.org/db/dataset/14573774551234", "id": 14573774551234, "date": "03/08/2016", "modified_timestamp": 1457377455 }, { "datasettype": "app", "name": "My New Dataset Name", "self": "https://strabospot.org/db/dataset/14573774551235", "id": 14573774551235, "date": "03/08/2016", "modified_timestamp": 1457377455 }, { "datasettype": "app", "name": "Another Dataset Name", "self": "https://strabospot.org/db/dataset/14573774551236", "id": 14573774551236, "date": "03/08/2016", "modified_timestamp": 1457377455 } ] }
Delete All Datasets for Given Project (removes linking, but datasets remain intact)
Example request
Example response
-
DELETE: https://strabospot.org/db/projectDatasets/123456
-
Accept: application/json; charset=UTF-8
-
204: No Content
Get all Images for Given Project
Example request
Example response
-
GET: https://strabospot.org/db/projectImages/123456
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "images": [ { "id": 14761235708763, "modified_timestamp": 1476123123 }, { "id": 14761235603555, "modified_timestamp": 1476123134 }, { "id": 14759541269574, "modified_timestamp": 1476123234 }, { "id": 14759526677778, "modified_timestamp": 1476123345 }, { "id": 14759532056864, "modified_timestamp": 1476123456 } ] }
Delete Account
Example request
Example response
-
DELETE: https://strabospot.org/db/account,
-
Accept: application/json; charset=UTF-8
-
204: No Content
Create Profile
Example request
Example response
-
POST: https://strabospot.org/db/profile
-
Accept: application/json; charset=UTF-8
-
Note: "name" parameter is not accepted, as this information is gathered from the credentials table
{ "mapbox_access_token": "lkajsdflkj" }
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{ "name": "John Doe", "mapbox_access_token": "lkajsdflkj" }
Update Profile
Example request
Example response
-
POST: https://strabospot.org/db/profile
-
Accept: application/json; charset=UTF-8
-
Note: "name" parameter is not accepted, as this information is gathered from the credentials table
-
Warning: All attributes will be overwritten with provided JSON values.
{ "mapbox_access_token": "lkajsdflkj" }
-
201: Created
-
Content-Type: application/json; charset=UTF-8
{ "name": "John Doe", "mapbox_access_token": "lkajsdflkj" }
Get Profile
Example request
Example response
-
GET: https://strabospot.org/db/profile
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "name": "John Doe", "mapbox_access_token": "lkajsdflkj" }
Delete Profile (doesn't delete name)
Example request
Example response
-
DELETE: https://strabospot.org/db/profile
-
Accept: application/json; charset=UTF-8
-
204: No Content
Upload Profile Image
Example request
Example response
-
POST: https://strabospot.org/db/profileimage
-
Accept: application/json; charset=UTF-8
This service accepts the following POST variable: Variable Name: "image_file" - File containing image to be uploaded. (required) Also, please note the the encapsulation type MUST be set to "multipart/form-data".
-
201: Created
-
Content-Type: application/json; charset=UTF-8
Note: Due to the complexity of using multipart/form-data, a test page has been created to test this service.
This page can be found at: https://strabospot.org/profileimageupload.
This page can be found at: https://strabospot.org/profileimageupload.
Get Profile Image
Example request
Example response
-
GET: https://strabospot.org/db/profileimage
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: image/jpg
File content of image is returned.
Delete Profile Image
Example request
Example response
-
DELETE: https://strabospot.org/db/profileimage
-
Accept: application/json; charset=UTF-8
-
204: No Content
-
Content-Type: application/json; charset=UTF-8
{ "message": "Profile image deleted." }
Get My Projects (Return all micro projects of authorized user)
Example request
Example response
-
GET: https://strabospot.org/microdb/myProjects
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "projects": [ { "id": "16461495923123", "name": "My Micro Project", "self": "https://strabospot.org/microdb/project/16461495923123" }, { "id": "16470197040567", "name": "Another Micro Project", "self": "https://strabospot.org/microdb/project/16470197040567" } ] }
Get Project (Return Micro project with given id)
Example request
Example response
-
GET: https://strabospot.org/microdb/project/16470197040123
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: application/json; charset=UTF-8
{ "count": 1, "projectDetails": { "id": "16470197040405", "name": "TestProject", "purposeOfStudy": "", "otherTeamMembers": "", "areaOfInterest": "", "gpsDatum": "", "magneticDeclination": "", "notes": "", "projectLocation": "local", "datasets": [ { "id": "16470197055239", "name": "Default", "samples": [ { "id": "16470197135869", "label": "Samp1", "sampleID": "Samp1", "mainSamplingPurpose": "", "sampleDescription": "", "materialType": "", "inplacenessOfSample": "", "orientedSample": "", "sampleSize": "", "degreeOfWeathering": "", "sampleNotes": "", "sampleType": "", "color": "", "lithology": "", "sampleUnit": "", "otherMaterialType": "", "sampleOrientationNotes": "", "micrographs": [ { "id": "16470197593827", "name": "MG1", "imageType": "Hs", "width": 2500, "height": 1855, "polish": false, "polishDescription": "", "notes": "", "scalePixelsPerCentimeter": 250.51012595621313, "mineralogy": { "percentageCalculationMethod": "Qualitative Estimate", "mineralogyMethod": "Optical", "minerals": [ { "name": "Jadeite", "operator": "eq", "percentage": 44 }, { "name": "Zircon", "operator": "eq", "percentage": 4 } ], "notes": "Mineralogy Notes Here..." }, "spots": [ { "id": "16470265571146", "name": "spot1", "labelColor": "0xffffffff", "showLabel": false, "color": "0xff8080ff", "date": "2022-03-11T19:22:32.562Z", "time": "2022-03-11T19:22:32.562Z", "notes": "", "modifiedTimestamp": 1647026552563, "geometryType": "polygon", "points": [ { "X": 460.0484261501211, "Y": 436.84422921711047 }, { "X": 639.6287328490719, "Y": 348.0629539951573 }, { "X": 827.2800645682001, "Y": 557.9096045197739 }, { "X": 589.1848264729621, "Y": 598.2647296206617 } ], "extinctionMicrostructureInfo": { "extinctionMicrostructures": [ { "phase": "Jadeite", "dislocations": [ { "type": "Dislocation" } ], "subDislocations": [ { "type": "Edge" } ], "heterogeneousExtinctions": [ { "type": "Chessboard" } ] }, { "phase": "Zircon", "dislocations": [ { "type": "Dislocation" }, { "type": "Tangle or pile-up" } ], "subDislocations": [ { "type": "Edge" }, { "type": "Screw" }, { "type": "Unknown" } ], "heterogeneousExtinctions": [ { "type": "Patchy" }, { "type": "Undulose" }, { "type": "Chessboard" }, { "type": "Sweeping undulose" } ], "subGrainStructures": [ { "type": "Low-angle grain boundary" } ], "extinctionBands": [ { "type": "Wide extinction bands" }, { "type": "Fine extinction bands" }, { "type": "Localized extinction bands" } ], "subWideExtinctionBands": [ { "type": "Kink bands" }, { "type": "Deformation bands" } ], "subFineExtinctionBands": [ { "type": "Deformation lamellae" }, { "type": "Small wavelength undulatory extinction" } ] } ], "notes": "spot ext notes" } } ], "orientationInfo": { "orientationMethod": "unoriented" }, "instrument": { "instrumentType": "Scanning Electron Microscopy (SEM)", "dataType": "Energy Dispersive X-ray Spectroscopy (EDS)", "instrumentBrand": "Tescan", "instrumentModel": "Lyra-3 Model GMH", "university": "Texas A&M", "laboratory": "Materials Characterization Facility", "dataCollectionSoftware": "Aztec", "dataCollectionSoftwareVersion": "", "postProcessingSoftware": "Aztec", "postProcessingSoftwareVersion": "", "filamentType": "Fil Type 3", "instrumentDetectors": [ { "detectorType": "EDS", "detectorMake": "Oxford", "detectorModel": "X- MaxN 50" }, { "detectorType": "Secondary Electron", "detectorMake": "", "detectorModel": "" }, { "detectorType": "Backscattered Electron", "detectorMake": "", "detectorModel": "" } ], "instrumentNotes": "" }, "grainBoundaryInfo": { "boundaries": [ { "typeOfBoundary": "grain", "phase1": "Jadeite", "phase2": "Zircon", "morphologies": [ { "type": "Serrated" }, { "type": "Lobate" } ], "descriptors": [ { "type": "Filling/Decoration", "subTypes": [ { "type": "Minor Phase" } ] } ] } ], "notes": "Some notes here..." }, "extinctionMicrostructureInfo": { "extinctionMicrostructures": [ { "phase": "Jadeite", "dislocations": [ { "type": "Dislocation" }, { "type": "Tangle or pile-up" } ], "subDislocations": [ { "type": "Edge" }, { "type": "Screw" }, { "type": "Unknown" } ], "heterogeneousExtinctions": [ { "type": "Patchy" }, { "type": "Undulose" }, { "type": "Chessboard" }, { "type": "Sweeping undulose" } ], "subGrainStructures": [ { "type": "Low-angle grain boundary" } ], "extinctionBands": [ { "type": "Wide extinction bands" }, { "type": "Fine extinction bands" }, { "type": "Localized extinction bands" } ], "subWideExtinctionBands": [ { "type": "Kink bands" }, { "type": "Deformation bands" } ], "subFineExtinctionBands": [ { "type": "Deformation lamellae" }, { "type": "Small wavelength undulatory extinction" } ] }, { "phase": "Jadeite", "dislocations": [ { "type": "Dislocation" } ] }, { "phase": "Zircon", "dislocations": [ { "type": "Dislocation" }, { "type": "Tangle or pile-up" } ], "subDislocations": [ { "type": "Edge" }, { "type": "Screw" }, { "type": "Unknown" } ] } ], "notes": "Some Ext Min Notes Here..." }, "isMicroVisible": true, "imageURL": "https://strabospot.org/microdb/image/16470197593827" } ] } ] } ] } }
Get Micrograph Image
Example request
Example response
-
GET: https://strabospot.org/microdb/image/16470197593123
-
Accept: application/json; charset=UTF-8
-
200: OK
-
Content-Type: image/jpg
File content of micrograph image is returned.