NAV Navigation
Shell HTTP JavaScript Ruby Python PHP Java Go

RedEye DMS API v3.0.0

Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.

The RedEye DMS API is a set of HTTP endpoints that help you integrate with RedEye DMS and allow you to work with data in your bucket, including artefacts and metadata keys.

Code samples are provided in this documentation to help you get started faster.

Base URLs:

Authentication

Artefacts

getArtefacts

Code samples

curl --request GET \
--url http://localhost/api/v1/artefacts \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/artefacts HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/artefacts");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/artefacts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/artefacts")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/artefacts

Returns the list of artefacts in the bucket

Parameters

Name In Type Required Description
page query integer false Denotes the page number. Typically used in conjunction with ‘limit’ to perform pagination of results.
limit query integer false Limits the number of results returned in the search.

Example responses

200 Response

{
"limit": 0,
"offset": 0,
"results": [
{
"id": 0,
"name": "string",
"number": "string",
"score": "string",
"type": "string"
}
],
"total": 0
}

Responses

Status Meaning Description Schema
200 OK ArtefactListResponse ArtefactListResponse
default Default ResponseError ResponseError

getArtefactsModifiedSince

Code samples

curl --request POST \
--url http://localhost/api/v1/artefacts/changed \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}' \
--header 'Content-Type: application/json' \
--data '{"timestamp":"string"}'
POST /api/v1/artefacts/changed HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
Content-Length: 22

{"timestamp":"string"}
const data = JSON.stringify({
"timestamp": "string"
});

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("POST", "http://localhost/api/v1/artefacts/changed");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/changed")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'
request.body = "{\"timestamp\":\"string\"}"

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

payload = "{\"timestamp\":\"string\"}"

headers = {
'Content-Type': "application/json",
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("POST", "/api/v1/artefacts/changed", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/changed",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"timestamp\":\"string\"}",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.post("http://localhost/api/v1/artefacts/changed")
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.body("{\"timestamp\":\"string\"}")
.asString();
package main

import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/changed"

payload := strings.NewReader("{\"timestamp\":\"string\"}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

POST /api/v1/artefacts/changed

Returns the list of artefact ID’s that have been modified since a given time

Body parameter

{
"timestamp": "string"
}

Parameters

Name In Type Required Description
body body ModifiedQuery false none

Example responses

200 Response

{
"id": 0
}

Responses

Status Meaning Description Schema
200 OK ArtefactIds ArtefactIds
400 Bad Request ResponseError ResponseError
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

getDeletedArtefacts

Code samples

curl --request GET \
--url http://localhost/api/v1/artefacts/deleted \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/artefacts/deleted HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/artefacts/deleted");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/deleted")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/artefacts/deleted", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/deleted",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/artefacts/deleted")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/deleted"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/artefacts/deleted

Parameters

Name In Type Required Description
page query integer false Page number to fetch
limit query integer false Limit to fetch
deletedAfter query string false Limit artefacts to deleted after value given
deletedBefore query string false Limit artefacts to deleted before value given

Example responses

200 Response

{
"deletedArtefacts": [
"string"
],
"limit": 0,
"offset": 0,
"total": 0
}

Responses

Status Meaning Description Schema
200 OK Deleted artefacts DeletedArtefacts
default Default Error response ResponseError

getLinkedArtefacts

Code samples

curl --request GET \
--url http://localhost/api/v1/artefacts/linked/string \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/artefacts/linked/string HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/artefacts/linked/string");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/linked/string")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/artefacts/linked/string", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/linked/string",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/artefacts/linked/string")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/linked/string"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/artefacts/linked/{entityName}

Parameters

Name In Type Required Description
entityName path string true Entity name (currently only ‘assets’ supported)
page query integer false Page number to fetch
limit query integer false Limit to fetch
modifiedAfter query string false Limit to artefacts modified after value given
modifiedBefore query string false Limit artefacts modified before value given

Example responses

200 Response

{
"artefacts": [
{
"uuid": "string",
"artefactNumber": "string",
"artefactTitle": "string",
"artefactVersion": "string",
"revisionStatusUUID": "string",
"assets": [
"string"
]
}
],
"limit": 0,
"offset": 0,
"total": 0
}

Responses

Status Meaning Description Schema
200 OK Artefacts by parameters LinkedArtefacts
default Default Error response ResponseError

artefact

Code samples

curl --request GET \
--url http://localhost/api/v1/artefacts/0 \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/artefacts/0 HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/artefacts/0");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/0")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/artefacts/0", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/0",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/artefacts/0")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/0"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/artefacts/{Id}

Returns information for an artefact for the latest approved revision

Parameters

Name In Type Required Description
Id path integer(int64) true none

Example responses

200 Response

{
"created": "string",
"groups": [
{
"id": 0,
"name": "string"
}
],
"id": 0,
"locations": {
"lat": "string",
"lon": "string"
},
"metadata": [
{
"id": 0,
"key_id": 0,
"key_name": "string",
"value": "string"
}
],
"modified": "string",
"number": "string",
"revisions": [
{
"comment": "string",
"id": 0,
"preview": "string",
"status": "string",
"thumbnail": "string",
"timestamp": "string",
"version": 0
}
],
"state": {
"is_destructible": true,
"is_modifiable": true,
"is_viewable": true,
"name": "string"
},
"title": "string",
"type": "string",
"workflow": {
"id": 0,
"name": "string",
"step": {
"id": 0,
"name": "string",
"type": {
"id": 0,
"name": "string"
}
}
},
"geometry": {
"type": "Feature",
"bbox": [
0
]
}
}

Responses

Status Meaning Description Schema
200 OK ArtefactResponse Artefact
400 Bad Request ResponseError ResponseError
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

updateArtefact

Code samples

curl --request POST \
--url http://localhost/api/v1/artefacts/0 \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}' \
--header 'Content-Type: application/json' \
--data '{"title":"string","number":"string","metadata":[{"name":"string","value":["string"]}],"geometry":{"type":"Feature","bbox":[0]}}'
POST /api/v1/artefacts/0 HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
Content-Length: 127

{"title":"string","number":"string","metadata":[{"name":"string","value":["string"]}],"geometry":{"type":"Feature","bbox":[0]}}
const data = JSON.stringify({
"title": "string",
"number": "string",
"metadata": [
{
"name": "string",
"value": [
"string"
]
}
],
"geometry": {
"type": "Feature",
"bbox": [
0
]
}
});

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("POST", "http://localhost/api/v1/artefacts/0");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/0")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'
request.body = "{\"title\":\"string\",\"number\":\"string\",\"metadata\":[{\"name\":\"string\",\"value\":[\"string\"]}],\"geometry\":{\"type\":\"Feature\",\"bbox\":[0]}}"

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

payload = "{\"title\":\"string\",\"number\":\"string\",\"metadata\":[{\"name\":\"string\",\"value\":[\"string\"]}],\"geometry\":{\"type\":\"Feature\",\"bbox\":[0]}}"

headers = {
'Content-Type': "application/json",
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("POST", "/api/v1/artefacts/0", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/0",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"title\":\"string\",\"number\":\"string\",\"metadata\":[{\"name\":\"string\",\"value\":[\"string\"]}],\"geometry\":{\"type\":\"Feature\",\"bbox\":[0]}}",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.post("http://localhost/api/v1/artefacts/0")
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.body("{\"title\":\"string\",\"number\":\"string\",\"metadata\":[{\"name\":\"string\",\"value\":[\"string\"]}],\"geometry\":{\"type\":\"Feature\",\"bbox\":[0]}}")
.asString();
package main

import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/0"

payload := strings.NewReader("{\"title\":\"string\",\"number\":\"string\",\"metadata\":[{\"name\":\"string\",\"value\":[\"string\"]}],\"geometry\":{\"type\":\"Feature\",\"bbox\":[0]}}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

POST /api/v1/artefacts/{Id}

Updates an Artefact and/or the metadata on the current revision.

Body parameter

{
"title": "string",
"number": "string",
"metadata": [
{
"name": "string",
"value": [
"string"
]
}
],
"geometry": {
"type": "Feature",
"bbox": [
0
]
}
}

Parameters

Name In Type Required Description
Id path integer(int64) true none
body body UpdateRequest false none

Example responses

400 Response

{
"code": 0,
"error": "string",
"title": "string"
}

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request ResponseError ResponseError
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

downloadNativeFile

Code samples

curl --request GET \
--url http://localhost/api/v1/artefacts/0/download \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/artefacts/0/download HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/artefacts/0/download");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/0/download")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/artefacts/0/download", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/0/download",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/artefacts/0/download")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/0/download"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/artefacts/{Id}/download

Returns the native file download link of the latest approved revision of an artefact

Parameters

Name In Type Required Description
Id path integer(int64) true none

Example responses

200 Response

{
"id": 0,
"url": "string"
}

Responses

Status Meaning Description Schema
200 OK ArtefactLink ArtefactLink
400 Bad Request ResponseError ResponseError
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

deleteGeometry

Code samples

curl --request DELETE \
--url http://localhost/api/v1/artefacts/0/geometry \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
DELETE /api/v1/artefacts/0/geometry HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("DELETE", "http://localhost/api/v1/artefacts/0/geometry");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/0/geometry")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Delete.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("DELETE", "/api/v1/artefacts/0/geometry", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/0/geometry",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "DELETE",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.delete("http://localhost/api/v1/artefacts/0/geometry")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/0/geometry"

req, _ := http.NewRequest("DELETE", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

DELETE /api/v1/artefacts/{Id}/geometry

Clears out Geometry for Existing Artefact

Parameters

Name In Type Required Description
Id path integer(int64) true none

Example responses

400 Response

{
"code": 0,
"error": "string",
"title": "string"
}

Responses

Status Meaning Description Schema
200 OK OK None
400 Bad Request ResponseError ResponseError
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

downloadPreview

Code samples

curl --request GET \
--url http://localhost/api/v1/artefacts/0/preview \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/artefacts/0/preview HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/artefacts/0/preview");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/0/preview")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/artefacts/0/preview", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/0/preview",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/artefacts/0/preview")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/0/preview"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/artefacts/{Id}/preview

Returns the preview download link of the latest approved revision of an artefact

Parameters

Name In Type Required Description
Id path integer(int64) true none

Example responses

200 Response

{
"id": 0,
"url": "string"
}

Responses

Status Meaning Description Schema
200 OK ArtefactLink ArtefactLink
400 Bad Request ResponseError ResponseError
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

downloadThumbnail

Code samples

curl --request GET \
--url http://localhost/api/v1/artefacts/0/thumbnail \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/artefacts/0/thumbnail HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/artefacts/0/thumbnail");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/0/thumbnail")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/artefacts/0/thumbnail", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/0/thumbnail",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/artefacts/0/thumbnail")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/0/thumbnail"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/artefacts/{Id}/thumbnail

Returns the thumbnail download link of the latest approved revision of an artefact

Parameters

Name In Type Required Description
Id path integer(int64) true none

Example responses

200 Response

{
"id": 0,
"url": "string"
}

Responses

Status Meaning Description Schema
200 OK ArtefactLink ArtefactLink
400 Bad Request ResponseError ResponseError
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

getVersionHistory

Code samples

curl --request GET \
--url http://localhost/api/v1/artefacts/0/versionhistory \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/artefacts/0/versionhistory HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/artefacts/0/versionhistory");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/artefacts/0/versionhistory")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/artefacts/0/versionhistory", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/artefacts/0/versionhistory",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/artefacts/0/versionhistory")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/artefacts/0/versionhistory"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/artefacts/{Id}/versionhistory

Returns the version history of an artefact

Parameters

Name In Type Required Description
Id path integer(int64) true none

Example responses

200 Response

{
"revision": {
"comment": "string",
"id": 0,
"preview": "string",
"status": "string",
"thumbnail": "string",
"timestamp": "string",
"version": 0
}
}

Responses

Status Meaning Description Schema
200 OK ArtefactRevisionInfo ArtefactRevisionInfo
400 Bad Request ResponseError ResponseError
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

Groups

getGroups

Code samples

curl --request GET \
--url http://localhost/api/v1/groups \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/groups HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/groups");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/groups")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/groups", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/groups",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/groups")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/groups"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/groups

Returns the list of groups in the bucket

Example responses

200 Response

{
"items": [
{
"id": 0,
"name": "string"
}
]
}

Responses

Status Meaning Description Schema
200 OK Groups Groups
default Default ResponseError ResponseError

MetadataKeys

getMetadata

Code samples

curl --request GET \
--url http://localhost/api/v1/metadata \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/metadata HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/metadata");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/metadata")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/metadata", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/metadata",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/metadata")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/metadata"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/metadata

This endpoint is deprecated and will be removed in v.3.0.0 Returns the list of metadata keys in the bucket.

Example responses

200 Response

{
"items": [
{
"description": "string",
"id": 0,
"name": "string"
}
]
}

Responses

Status Meaning Description Schema
200 OK MetadataKeys MetadataKeys

getMetadataKeys

Code samples

curl --request GET \
--url http://localhost/api/v1/metadata-keys \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/metadata-keys HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/metadata-keys");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/metadata-keys")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/metadata-keys", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/metadata-keys",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/metadata-keys")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/metadata-keys"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/metadata-keys

Returns the list of metadata keys in the bucket

Example responses

200 Response

{
"items": [
{
"description": "string",
"id": 0,
"name": "string"
}
]
}

Responses

Status Meaning Description Schema
200 OK MetadataKeys MetadataKeys
default Default ResponseError ResponseError

Search

Code samples

curl --request POST \
--url http://localhost/api/v1/search \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}' \
--header 'Content-Type: application/json' \
--data '{"advanced":{"and":[{"exact":true,"key_id":"string","property":"group","value":"string","relation":"intersects"}],"not":[{"exact":true,"key_id":"string","property":"group","value":"string","relation":"intersects"}],"or":[{"exact":true,"key_id":"string","property":"group","value":"string","relation":"intersects"}]},"query":"string","type":["string"]}'
POST /api/v1/search HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
Content-Length: 351

{"advanced":{"and":[{"exact":true,"key_id":"string","property":"group","value":"string","relation":"intersects"}],"not":[{"exact":true,"key_id":"string","property":"group","value":"string","relation":"intersects"}],"or":[{"exact":true,"key_id":"string","property":"group","value":"string","relation":"intersects"}]},"query":"string","type":["string"]}
const data = JSON.stringify({
"advanced": {
"and": [
{
"exact": true,
"key_id": "string",
"property": "group",
"value": "string",
"relation": "intersects"
}
],
"not": [
{
"exact": true,
"key_id": "string",
"property": "group",
"value": "string",
"relation": "intersects"
}
],
"or": [
{
"exact": true,
"key_id": "string",
"property": "group",
"value": "string",
"relation": "intersects"
}
]
},
"query": "string",
"type": [
"string"
]
});

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("POST", "http://localhost/api/v1/search");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/search")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'
request.body = "{\"advanced\":{\"and\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"not\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"or\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}]},\"query\":\"string\",\"type\":[\"string\"]}"

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

payload = "{\"advanced\":{\"and\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"not\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"or\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}]},\"query\":\"string\",\"type\":[\"string\"]}"

headers = {
'Content-Type': "application/json",
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("POST", "/api/v1/search", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/search",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"advanced\":{\"and\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"not\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"or\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}]},\"query\":\"string\",\"type\":[\"string\"]}",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.post("http://localhost/api/v1/search")
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.body("{\"advanced\":{\"and\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"not\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"or\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}]},\"query\":\"string\",\"type\":[\"string\"]}")
.asString();
package main

import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/search"

payload := strings.NewReader("{\"advanced\":{\"and\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"not\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}],\"or\":[{\"exact\":true,\"key_id\":\"string\",\"property\":\"group\",\"value\":\"string\",\"relation\":\"intersects\"}]},\"query\":\"string\",\"type\":[\"string\"]}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

POST /api/v1/search

Search Artefacts in the bucket

Body parameter

{
"advanced": {
"and": [
{
"exact": true,
"key_id": "string",
"property": "group",
"value": "string",
"relation": "intersects"
}
],
"not": [
{
"exact": true,
"key_id": "string",
"property": "group",
"value": "string",
"relation": "intersects"
}
],
"or": [
{
"exact": true,
"key_id": "string",
"property": "group",
"value": "string",
"relation": "intersects"
}
]
},
"query": "string",
"type": [
"string"
]
}

Parameters

Name In Type Required Description
page query integer false Denotes the page number. Typically used in conjunction with ‘limit’ to perform pagination of results.
limit query integer false Limits the number of results returned in the search.
sort_by query string false Sort results by the specified field key.
direction query string false Sort direction for results. Values are ‘desc’ for descending, ‘asc’ for ascending values. Default ascending.
createdSince query string false Search artefacts that have been created on or after the specified date.
createdUntil query string false Search artefacts that have been created on or before the specified date.
modifiedSince query string false Search artefacts that have been modified on or after the specified date.
modifiedUntil query string false Search artefacts that have been modified on or before the specified date.
body body SearchQuery false none

Example responses

200 Response

{
"items": [
{
"created": "string",
"groups": [
{
"id": 0,
"name": "string"
}
],
"id": 0,
"locations": {
"lat": "string",
"lon": "string"
},
"metadata": [
{
"id": 0,
"key_id": 0,
"key_name": "string",
"value": "string"
}
],
"modified": "string",
"number": "string",
"revisions": [
{
"comment": "string",
"id": 0,
"preview": "string",
"status": "string",
"thumbnail": "string",
"timestamp": "string",
"version": 0
}
],
"state": {
"is_destructible": true,
"is_modifiable": true,
"is_viewable": true,
"name": "string"
},
"title": "string",
"type": "string",
"workflow": {
"id": 0,
"name": "string",
"step": {
"id": 0,
"name": "string",
"type": {
"id": 0,
"name": "string"
}
}
},
"geometry": {
"type": "Feature",
"bbox": [
0
]
}
}
]
}

Responses

Status Meaning Description Schema
200 OK Artefacts Artefacts
400 Bad Request ResponseError ResponseError
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

Users

getUsers

Code samples

curl --request GET \
--url http://localhost/api/v1/users \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}'
GET /api/v1/users HTTP/1.1
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
const data = null;

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("GET", "http://localhost/api/v1/users");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v1/users")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Get.new(url)
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

headers = {
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("GET", "/api/v1/users", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v1/users",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.get("http://localhost/api/v1/users")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.asString();
package main

import (
"fmt"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v1/users"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

GET /api/v1/users

Search users in the bucket

Parameters

Name In Type Required Description
page query integer false Denotes the page number. Typically used in conjunction with ‘limit’ to perform pagination of results.
limit query integer false Limits the number of results returned in the search.

Example responses

200 Response

{
"data": {
"items": [
{
"bucketRoles": [
{
"ID": 0,
"Name": "string"
}
],
"department": "string",
"email": "string",
"enabled": true,
"firstName": "string",
"groups": [
{
"ID": 0,
"Name": "string",
"Roles": [
{
"ID": 0,
"Name": "string"
}
]
}
],
"id": 0,
"jobTitle": "string",
"lastName": "string",
"organisation": "string",
"phoneNumber": "string"
}
]
},
"length": 0,
"totalPages": 0,
"page": 0,
"total": 0
}

Responses

Status Meaning Description Schema
200 OK UsersResponse UsersResponse
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

Upload

checkFilesExist

Code samples

curl --request POST \
--url http://localhost/api/v2/files/exist \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}' \
--header 'Content-Type: application/json' \
--data '{"hashes":["string"]}'
POST /api/v2/files/exist HTTP/1.1
Content-Type: application/json
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
Content-Length: 21

{"hashes":["string"]}
const data = JSON.stringify({
"hashes": [
"string"
]
});

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("POST", "http://localhost/api/v2/files/exist");
xhr.setRequestHeader("Content-Type", "application/json");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v2/files/exist")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'
request.body = "{\"hashes\":[\"string\"]}"

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

payload = "{\"hashes\":[\"string\"]}"

headers = {
'Content-Type': "application/json",
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("POST", "/api/v2/files/exist", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v2/files/exist",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "{\"hashes\":[\"string\"]}",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}",
"Content-Type: application/json"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.post("http://localhost/api/v2/files/exist")
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.body("{\"hashes\":[\"string\"]}")
.asString();
package main

import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v2/files/exist"

payload := strings.NewReader("{\"hashes\":[\"string\"]}")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "application/json")
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

POST /api/v2/files/exist

Returns the list of file hashes that already exist in the bucket

Body parameter

{
"hashes": [
"string"
]
}

Parameters

Name In Type Required Description
body body FileHashes false none

Example responses

200 Response

{
"items": [
"string"
]
}

Responses

Status Meaning Description Schema
200 OK File-hashes Response FileHashesResp
404 Not Found ResponseError ResponseError
default Default ResponseError ResponseError

upload

Code samples

curl --request POST \
--url http://localhost/api/v2/upload \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {access-token}' \
--header 'Content-Type: multipart/form-data; boundary=---011000010111000001101001' \
--form file=string \
--form data=string
POST /api/v2/upload HTTP/1.1
Content-Type: multipart/form-data; boundary=---011000010111000001101001
Accept: application/json
Authorization: Bearer {access-token}
Host: localhost
Content-Length: 205

-----011000010111000001101001
Content-Disposition: form-data; name="file"

string
-----011000010111000001101001
Content-Disposition: form-data; name="data"

string
-----011000010111000001101001--
const data = new FormData();
data.append("file", "string");
data.append("data", "string");

const xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
if (this.readyState === this.DONE) {
console.log(this.responseText);
}
});

xhr.open("POST", "http://localhost/api/v2/upload");
xhr.setRequestHeader("Accept", "application/json");
xhr.setRequestHeader("Authorization", "Bearer {access-token}");

xhr.send(data);
require 'uri'
require 'net/http'

url = URI("http://localhost/api/v2/upload")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'multipart/form-data; boundary=---011000010111000001101001'
request["Accept"] = 'application/json'
request["Authorization"] = 'Bearer {access-token}'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\nstring\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\nstring\r\n-----011000010111000001101001--\r\n"

response = http.request(request)
puts response.read_body
import http.client

conn = http.client.HTTPConnection("localhost")

payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\nstring\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\nstring\r\n-----011000010111000001101001--\r\n"

headers = {
'Content-Type': "multipart/form-data; boundary=---011000010111000001101001",
'Accept': "application/json",
'Authorization': "Bearer {access-token}"
}

conn.request("POST", "/api/v2/upload", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "http://localhost/api/v2/upload",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\nstring\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\nstring\r\n-----011000010111000001101001--\r\n",
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Bearer {access-token}",
"Content-Type: multipart/form-data; boundary=---011000010111000001101001"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
HttpResponse<String> response = Unirest.post("http://localhost/api/v2/upload")
.header("Content-Type", "multipart/form-data; boundary=---011000010111000001101001")
.header("Accept", "application/json")
.header("Authorization", "Bearer {access-token}")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\nstring\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\nstring\r\n-----011000010111000001101001--\r\n")
.asString();
package main

import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)

func main() {

url := "http://localhost/api/v2/upload"

payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"file\"\r\n\r\nstring\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"data\"\r\n\r\nstring\r\n-----011000010111000001101001--\r\n")

req, _ := http.NewRequest("POST", url, payload)

req.Header.Add("Content-Type", "multipart/form-data; boundary=---011000010111000001101001")
req.Header.Add("Accept", "application/json")
req.Header.Add("Authorization", "Bearer {access-token}")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)

fmt.Println(res)
fmt.Println(string(body))

}

POST /api/v2/upload

Upload a new Artefact to the bucket

This endpoint is a multipart/form-data that takes 2 parameters

Body parameter

file: string
data: string

Parameters

Name In Type Required Description
async query boolean false Process upload in the background and do not wait until processing is complete before returning.
body body UploadBody false none

Example responses

200 Response

{
"artefact": {
"created": "string",
"groups": [
{
"id": 0,
"name": "string"
}
],
"id": 0,
"locations": {
"lat": "string",
"lon": "string"
},
"metadata": [
{
"id": 0,
"key_id": 0,
"key_name": "string",
"value": "string"
}
],
"modified": "string",
"number": "string",
"revisions": [
{
"comment": "string",
"id": 0,
"preview": "string",
"status": "string",
"thumbnail": "string",
"timestamp": "string",
"version": 0
}
],
"state": {
"is_destructible": true,
"is_modifiable": true,
"is_viewable": true,
"name": "string"
},
"title": "string",
"type": "string",
"workflow": {
"id": 0,
"name": "string",
"step": {
"id": 0,
"name": "string",
"type": {
"id": 0,
"name": "string"
}
}
},
"geometry": {
"type": "Feature",
"bbox": [
0
]
}
},
"artefact_id": 0,
"message": "string",
"post_upload_actions": [
"string"
],
"revision_action": "string"
}

Responses

Status Meaning Description Schema
200 OK UploadResponseView UploadResponseView
404 Not Found ResponseError ResponseError
500 Internal Server Error ResponseError ResponseError
default Default ResponseError ResponseError

Schemas

AdvanceSearchQuery

and:
- exact: true
key_id: string
property: group
value: string
relation: intersects
not:
- exact: true
key_id: string
property: group
value: string
relation: intersects
or:
- exact: true
key_id: string
property: group
value: string
relation: intersects

Properties

Name Type Required Restrictions Description
and [SearchProperty] false none none
not [SearchProperty] false none none
or [SearchProperty] false none none

Artefact

created: string
groups:
- id: 0
name: string
id: 0
locations:
lat: string
lon: string
metadata:
- id: 0
key_id: 0
key_name: string
value: string
modified: string
number: string
revisions:
- comment: string
id: 0
preview: string
status: string
thumbnail: string
timestamp: string
version: 0
state:
is_destructible: true
is_modifiable: true
is_viewable: true
name: string
title: string
type: string
workflow:
id: 0
name: string
step:
id: 0
name: string
type:
id: 0
name: string
geometry:
type: Feature
bbox:
- 0

Properties

Name Type Required Restrictions Description
created string false none none
groups [Group] false none none
id integer false none none
locations ElasticLocation false none none
metadata [Metadata] false none none
modified string false none none
number string false none none
revisions [Revision] false none none
state State false none none
title string false none none
type string false none none
workflow Workflow false none none
geometry object false none GeoJSon object
The coordinate reference system for all GeoJSON coordinates is a geographic coordinate reference system, using the World Geodetic System 1984 (WGS 84) datum, with longitude and latitude units of decimal degrees. This is equivalent to the coordinate reference system identified by the Open Geospatial Consortium (OGC) URN An OPTIONAL third-position element SHALL be the height in meters above or below the WGS 84 reference ellipsoid. In the absence of elevation values, applications sensitive to height or depth SHOULD interpret positions as being at local ground or sea level.
» type string true none none
» bbox [number] false none A GeoJSON object MAY have a member named “bbox” to include information on the coordinate range for its Geometries, Features, or FeatureCollections. The value of the bbox member MUST be an array of length 2*n where n is the number of dimensions represented in the contained geometries, with all axes of the most southwesterly point followed by all axes of the more northeasterly point. The axes order of a bbox follows the axes order of geometries.

Enumerated Values

Property Value
type Feature
type FeatureCollection
type Point
type MultiPoint
type LineString
type MultiLineString
type Polygon
type MultiPolygon
type GeometryCollection

ArtefactIds

id: 0

Properties

Name Type Required Restrictions Description
id integer false none none
id: 0
url: string

Properties

Name Type Required Restrictions Description
id integer false none none
url string false none none

ArtefactListResponse

limit: 0
offset: 0
results:
- id: 0
name: string
number: string
score: string
type: string
total: 0

Properties

Name Type Required Restrictions Description
limit integer false none none
offset integer false none none
results [SimpleArtefact] false none none
total integer false none none

ArtefactRevisionInfo

revision:
comment: string
id: 0
preview: string
status: string
thumbnail: string
timestamp: string
version: 0

Properties

Name Type Required Restrictions Description
revision Revision false none none

Artefacts

items:
- created: string
groups:
- id: 0
name: string
id: 0
locations:
lat: string
lon: string
metadata:
- id: 0
key_id: 0
key_name: string
value: string
modified: string
number: string
revisions:
- comment: string
id: 0
preview: string
status: string
thumbnail: string
timestamp: string
version: 0
state:
is_destructible: true
is_modifiable: true
is_viewable: true
name: string
title: string
type: string
workflow:
id: 0
name: string
step:
id: 0
name: string
type:
id: 0
name: string
geometry:
type: Feature
bbox:
- 0

Properties

Name Type Required Restrictions Description
items [Artefact] false none none

DeletedArtefacts

deletedArtefacts:
- string
limit: 0
offset: 0
total: 0

Properties

Name Type Required Restrictions Description
deletedArtefacts [string] true none Array of deleted artefact UUIDs
limit integer true none none
offset integer true none none
total integer true none none

ElasticLocation

lat: string
lon: string

Properties

Name Type Required Restrictions Description
lat string false none none
lon string false none none

FileHashes

hashes:
- string

Properties

Name Type Required Restrictions Description
hashes [string] false none none

FileHashesResp

items:
- string

Properties

Name Type Required Restrictions Description
items [string] false none none

Group

id: 0
name: string

Properties

Name Type Required Restrictions Description
id integer false none none
name string false none none

GroupRoles

ID: 0
Name: string
Roles:
- ID: 0
Name: string

Properties

Name Type Required Restrictions Description
ID integer false none none
Name string false none none
Roles [RolePerms] false none none

Groups

items:
- id: 0
name: string

Properties

Name Type Required Restrictions Description
items [Group] false none none

Hash

md5: string
sha256: string

Properties

Name Type Required Restrictions Description
md5 string false none none
sha256 string false none none

InputMetadataKeyValuePair

name: DRAWING_NUMBER
value:
- string

Properties

Name Type Required Restrictions Description
name string true none The name of the metadata key or arbitrary key
value [string] false none The values to use with the key

Enumerated Values

Property Value
name DRAWING_NUMBER
name DRAWING_TITLE
name Name of metadata key eg. Asset Number
name Name of bucket rule key eg. target_group_name

InputUploadRequest

artefactHash:
md5: string
sha256: string
fileHash: string
metadata:
- name: DRAWING_NUMBER
value:
- string
noFile: true
type: drawing

Properties

Name Type Required Restrictions Description
artefactHash Hash false none none
fileHash string false none none
metadata [InputMetadataKeyValuePair] false none List of keys and their values. Keys can either be the name of your bucket metadata keys, or arbitrary keys required by your bucket upload rules
noFile boolean false none When true, creates a placeholder
type string true none The Artefact type

Enumerated Values

Property Value
type drawing
type document
type media

LinkedArtefact

uuid: string
artefactNumber: string
artefactTitle: string
artefactVersion: string
revisionStatusUUID: string
assets:
- string

Properties

Name Type Required Restrictions Description
uuid string true none Artefact UUID
artefactNumber string false none Artefact Number
artefactTitle string false none Artefact Title
artefactVersion string true none Revision Metadata on Artefact
revisionStatusUUID string true none RevisionStatus UUID
assets [string] true none UUIDs of asset metadata values

LinkedArtefacts

artefacts:
- uuid: string
artefactNumber: string
artefactTitle: string
artefactVersion: string
revisionStatusUUID: string
assets:
- string
limit: 0
offset: 0
total: 0

Properties

Name Type Required Restrictions Description
artefacts [LinkedArtefact] true none none
limit integer true none none
offset integer true none none
total integer true none none

Metadata

id: 0
key_id: 0
key_name: string
value: string

Properties

Name Type Required Restrictions Description
id integer false none none
key_id integer false none none
key_name string false none none
value string false none none

MetadataKey

description: string
id: 0
name: string

Properties

Name Type Required Restrictions Description
description string true none user friendly description of the metadata key
id integer true none ID of the metadata key to use in the search endpoint
name string true none user friendly name of the metadata key

MetadataKeys

items:
- description: string
id: 0
name: string

Properties

Name Type Required Restrictions Description
items [MetadataKey] false none none

ModifiedQuery

timestamp: string

Properties

Name Type Required Restrictions Description
timestamp string false none none

ResponseError

code: 0
error: string
title: string

Properties

Name Type Required Restrictions Description
code integer false none Response error code eg 404
error string false none Error message
title string false none Error type title eg BadRequest

Revision

comment: string
id: 0
preview: string
status: string
thumbnail: string
timestamp: string
version: 0

Properties

Name Type Required Restrictions Description
comment string false none none
id integer false none none
preview string false none none
status string false none none
thumbnail string false none none
timestamp string false none none
version integer false none none

RolePerms

ID: 0
Name: string

Properties

Name Type Required Restrictions Description
ID integer false none none
Name string false none none

SearchProperty

exact: true
key_id: string
property: group
value: string
relation: intersects

Properties

Name Type Required Restrictions Description
exact boolean false none When true, it will filter the exact value without wildcards. Default
key_id string false none The key_id is the metadata key ID
property string true none The property to filter against.
value string true none The value to filter against. Where the ‘property’ is set to ‘geometry’, The value is expected to be a GeoJSON object or a WKT string input.
relation string false none Spatial searching filter
* intersects - (default) Return all artefacts whose geometry property intersects the query geometry
* disjoint - Return all artefacts whose geometry property has nothing in common with the query geometry
* within - Return all artefats whose geometry property is within the query geometry. Line geometries are not supported.
* contains - Return all artefacts whose geometry property contains the query geometry.

Enumerated Values

Property Value
property group
property metadata
property title
property number
property geometry
relation intersects
relation disjoint
relation within
relation contains

SearchQuery

advanced:
and:
- exact: true
key_id: string
property: group
value: string
relation: intersects
not:
- exact: true
key_id: string
property: group
value: string
relation: intersects
or:
- exact: true
key_id: string
property: group
value: string
relation: intersects
query: string
type:
- string

Properties

Name Type Required Restrictions Description
advanced AdvanceSearchQuery false none none
query string false none Query string to search across all title, number, and metadata values
type [string] false none List of artefact types to filter against

SimpleArtefact

id: 0
name: string
number: string
score: string
type: string

Properties

Name Type Required Restrictions Description
id integer false none none
name string false none none
number string false none none
score string false none none
type string false none none

State

is_destructible: true
is_modifiable: true
is_viewable: true
name: string

Properties

Name Type Required Restrictions Description
is_destructible boolean false none none
is_modifiable boolean false none none
is_viewable boolean false none none
name string false none none

StepType

id: 0
name: string

Properties

Name Type Required Restrictions Description
id integer false none none
name string false none none

UpdateMetadata

name: string
value:
- string

Properties

Name Type Required Restrictions Description
name string false none MetadataKey name
value [string] false none Metadata values

UpdateRequest

title: string
number: string
metadata:
- name: string
value:
- string
geometry:
type: Feature
bbox:
- 0

Properties

Name Type Required Restrictions Description
title string false none Title of the artefact
number string false none Code of the artefact
metadata [UpdateMetadata] false none Metadata of the artefact
geometry Artefact/properties/geometry false none GeoJSon object
The coordinate reference system for all GeoJSON coordinates is a geographic coordinate reference system, using the World Geodetic System 1984 (WGS 84) datum, with longitude and latitude units of decimal degrees. This is equivalent to the coordinate reference system identified by the Open Geospatial Consortium (OGC) URN An OPTIONAL third-position element SHALL be the height in meters above or below the WGS 84 reference ellipsoid. In the absence of elevation values, applications sensitive to height or depth SHOULD interpret positions as being at local ground or sea level.

UploadBody

file: string
data: string

Properties

Name Type Required Restrictions Description
file string false none none
data string false none none

UploadResponseView

artefact:
created: string
groups:
- id: 0
name: string
id: 0
locations:
lat: string
lon: string
metadata:
- id: 0
key_id: 0
key_name: string
value: string
modified: string
number: string
revisions:
- comment: string
id: 0
preview: string
status: string
thumbnail: string
timestamp: string
version: 0
state:
is_destructible: true
is_modifiable: true
is_viewable: true
name: string
title: string
type: string
workflow:
id: 0
name: string
step:
id: 0
name: string
type:
id: 0
name: string
geometry:
type: Feature
bbox:
- 0
artefact_id: 0
message: string
post_upload_actions:
- string
revision_action: string

Properties

Name Type Required Restrictions Description
artefact Artefact false none none
artefact_id integer false none none
message string false none none
post_upload_actions [string] false none none
revision_action string false none none

UserRoles

bucketRoles:
- ID: 0
Name: string
department: string
email: string
enabled: true
firstName: string
groups:
- ID: 0
Name: string
Roles:
- ID: 0
Name: string
id: 0
jobTitle: string
lastName: string
organisation: string
phoneNumber: string

Properties

Name Type Required Restrictions Description
bucketRoles [RolePerms] false none none
department string false none none
email string false none none
enabled boolean false none none
firstName string false none none
groups [GroupRoles] false none none
id integer false none none
jobTitle string false none none
lastName string false none none
organisation string false none none
phoneNumber string false none none

UserRolesList

items:
- bucketRoles:
- ID: 0
Name: string
department: string
email: string
enabled: true
firstName: string
groups:
- ID: 0
Name: string
Roles:
- ID: 0
Name: string
id: 0
jobTitle: string
lastName: string
organisation: string
phoneNumber: string

Properties

Name Type Required Restrictions Description
items [UserRoles] false none none

UsersResponse

data:
items:
- bucketRoles:
- ID: 0
Name: string
department: string
email: string
enabled: true
firstName: string
groups:
- ID: 0
Name: string
Roles:
- ID: 0
Name: string
id: 0
jobTitle: string
lastName: string
organisation: string
phoneNumber: string
length: 0
totalPages: 0
page: 0
total: 0

Properties

Name Type Required Restrictions Description
data UserRolesList false none none
length integer false none none
totalPages integer false none none
page integer false none none
total integer false none none

Workflow

id: 0
name: string
step:
id: 0
name: string
type:
id: 0
name: string

Properties

Name Type Required Restrictions Description
id integer false none none
name string false none none
step WorkflowStep false none none

WorkflowStep

id: 0
name: string
type:
id: 0
name: string

Properties

Name Type Required Restrictions Description
id integer false none none
name string false none none
type StepType false none none