Speckle v1.0.0-beta
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
Speckle is an open source design/AEC data communication protocol and platform.
Base URLs:
Email: SpeckleWorks Web: SpeckleWorks License: MIT
Authentication
- API Key (JWT)
- Parameter Name: Authorization, in: header. A JWT token acquired from the /accounts/login endpoint.
Accounts
Register, Login and more.
UserRegister
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/accounts/register \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/accounts/register HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/accounts/register',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"role": "string",
"avatar": "string",
"apitoken": "string",
"token": "string",
"email": "string",
"name": "string",
"surname": "string",
"company": "string",
"logins": []
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/accounts/register',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/accounts/register',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/accounts/register', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/accounts/register");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/accounts/register", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /accounts/register
Registers a new user.
Body parameter
{
"_id": "string",
"role": "string",
"avatar": "string",
"apitoken": "string",
"token": "string",
"email": "string",
"name": "string",
"surname": "string",
"company": "string",
"logins": []
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | User | true | The user object to register. |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | New user successfully registered. | ResponseUser |
| 400 | Bad Request | Failed to register a new user. | ResponseBase |
UserLogin
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/accounts/login \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/accounts/login HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/accounts/login',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"role": "string",
"avatar": "string",
"apitoken": "string",
"token": "string",
"email": "string",
"name": "string",
"surname": "string",
"company": "string",
"logins": []
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/accounts/login',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/accounts/login',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/accounts/login', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/accounts/login");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/accounts/login", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /accounts/login
Login and get jwt token.
Body parameter
{
"_id": "string",
"role": "string",
"avatar": "string",
"apitoken": "string",
"token": "string",
"email": "string",
"name": "string",
"surname": "string",
"company": "string",
"logins": []
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | User | true | The only required elements are email and password. |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | You've logged in. | ResponseUser |
| 400 | Bad Request | Fail whale. | ResponseBase |
UserSearch
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/accounts/search \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/accounts/search HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/accounts/search',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"role": "string",
"avatar": "string",
"apitoken": "string",
"token": "string",
"email": "string",
"name": "string",
"surname": "string",
"company": "string",
"logins": []
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/accounts/search',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/accounts/search',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/accounts/search', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/accounts/search");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/accounts/search", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /accounts/search
Search for a user by substrings of name, surname, and company.
Body parameter
{
"_id": "string",
"role": "string",
"avatar": "string",
"apitoken": "string",
"token": "string",
"email": "string",
"name": "string",
"surname": "string",
"company": "string",
"logins": []
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | User | true | No elements are required. The name, surname, and company are used to constrain the search. |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | New user successfully registered. | ResponseUser |
| 400 | Bad Request | Fail whale. | ResponseBase |
UserGet
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/accounts \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/accounts HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/accounts',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/accounts',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/accounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/accounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/accounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /accounts
Gets your profile.
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | New user successfully registered. | ResponseUser |
| 400 | Bad Request | Fail. | ResponseBase |
UserUpdateProfile
Code samples
# You can also use wget
curl -X PUT https://hestia.speckle.works/api/accounts \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
PUT https://hestia.speckle.works/api/accounts HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/accounts',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"role": "string",
"avatar": "string",
"apitoken": "string",
"token": "string",
"email": "string",
"name": "string",
"surname": "string",
"company": "string",
"logins": []
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/accounts',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put 'https://hestia.speckle.works/api/accounts',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put('https://hestia.speckle.works/api/accounts', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/accounts");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://hestia.speckle.works/api/accounts", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /accounts
Updates your profile.
Body parameter
{
"_id": "string",
"role": "string",
"avatar": "string",
"apitoken": "string",
"token": "string",
"email": "string",
"name": "string",
"surname": "string",
"company": "string",
"logins": []
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | User | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | Things are looking good yo. | ResponseBase |
| 400 | Bad Request | Fail. | ResponseBase |
UserGetProfileById
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/accounts/{userId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/accounts/{userId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/accounts/{userId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/accounts/{userId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/accounts/{userId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/accounts/{userId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/accounts/{userId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/accounts/{userId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /accounts/{userId}
Gets a user's profile.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| userId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | New user successfully registered. | ResponseUser |
| 400 | Bad Request | Fail whale. | ResponseBase |
Clients
Create, get and update application clients.
ClientGetAll
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/clients \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/clients HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/clients',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/clients',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/clients',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/clients', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/clients");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/clients", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /clients
Gets a user's profile.
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All the users's clients. | ResponseClient |
| 400 | Bad Request | Fail whale. | ResponseBase |
ClientCreate
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/clients \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/clients HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/clients',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"role": "string",
"documentGuid": "string",
"documentName": "string",
"documentType": "string",
"documentLocation": "string",
"streamId": "string",
"online": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/clients',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/clients',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/clients', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/clients");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/clients", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /clients
Create a client
Body parameter
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"role": "string",
"documentGuid": "string",
"documentName": "string",
"documentType": "string",
"documentLocation": "string",
"streamId": "string",
"online": true
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | AppClient | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All the users's clients. | ResponseClient |
| 400 | Bad Request | Fail whale. | ResponseBase |
ClientUpdate
Code samples
# You can also use wget
curl -X PUT https://hestia.speckle.works/api/clients/{clientId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
PUT https://hestia.speckle.works/api/clients/{clientId} HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/clients/{clientId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"role": "string",
"documentGuid": "string",
"documentName": "string",
"documentType": "string",
"documentLocation": "string",
"streamId": "string",
"online": true
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/clients/{clientId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put 'https://hestia.speckle.works/api/clients/{clientId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put('https://hestia.speckle.works/api/clients/{clientId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/clients/{clientId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://hestia.speckle.works/api/clients/{clientId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /clients/{clientId}
Update a client
Body parameter
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"role": "string",
"documentGuid": "string",
"documentName": "string",
"documentType": "string",
"documentLocation": "string",
"streamId": "string",
"online": true
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| clientId | path | string | true | none |
| body | body | AppClient | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All the users's clients. | ResponseClient |
| 400 | Bad Request | Fail whale. | ResponseBase |
ClientGet
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/clients/{clientId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/clients/{clientId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/clients/{clientId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/clients/{clientId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/clients/{clientId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/clients/{clientId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/clients/{clientId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/clients/{clientId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /clients/{clientId}
Get a client
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| clientId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | The client. | ResponseClient |
| 400 | Bad Request | Fail whale. | ResponseBase |
ClientDelete
Code samples
# You can also use wget
curl -X DELETE https://hestia.speckle.works/api/clients/{clientId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
DELETE https://hestia.speckle.works/api/clients/{clientId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/clients/{clientId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/clients/{clientId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.delete 'https://hestia.speckle.works/api/clients/{clientId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.delete('https://hestia.speckle.works/api/clients/{clientId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/clients/{clientId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://hestia.speckle.works/api/clients/{clientId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /clients/{clientId}
Deletes a client
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| clientId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseBase |
| 400 | Bad Request | Fail whale. | ResponseBase |
Projects
Create, get and update projects.
ProjectGetAll
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/projects \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/projects HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/projects',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/projects',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/projects',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/projects', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/projects");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/projects", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /projects
Gets a user's projects.
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All the users's projects. | ResponseProject |
| 400 | Bad Request | Fail whale. | ResponseBase |
ProjectCreate
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/projects \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/projects HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/projects',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"name": "string",
"number": "string",
"users": [],
"streams": [],
"subProjects": []
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/projects',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/projects',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/projects', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/projects");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/projects", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /projects
Create a project
Body parameter
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"name": "string",
"number": "string",
"users": [],
"streams": [],
"subProjects": []
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | Project | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All the users's clients. | ResponseProject |
| 400 | Bad Request | Fail whale. | ResponseBase |
ProjectUpdate
Code samples
# You can also use wget
curl -X PUT https://hestia.speckle.works/api/projects/{projectId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
PUT https://hestia.speckle.works/api/projects/{projectId} HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/projects/{projectId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"name": "string",
"number": "string",
"users": [],
"streams": [],
"subProjects": []
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/projects/{projectId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put 'https://hestia.speckle.works/api/projects/{projectId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put('https://hestia.speckle.works/api/projects/{projectId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/projects/{projectId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://hestia.speckle.works/api/projects/{projectId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /projects/{projectId}
Update a project
Body parameter
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"name": "string",
"number": "string",
"users": [],
"streams": [],
"subProjects": []
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| projectId | path | string | true | none |
| body | body | Project | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All the users's projects. | ResponseProject |
| 400 | Bad Request | Fail whale. | ResponseBase |
ProjectGet
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/projects/{projectId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/projects/{projectId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/projects/{projectId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/projects/{projectId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/projects/{projectId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/projects/{projectId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/projects/{projectId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/projects/{projectId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /projects/{projectId}
Get a project
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| projectId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | The client. | ResponseProject |
| 400 | Bad Request | Fail whale. | ResponseBase |
ProjectDelete
Code samples
# You can also use wget
curl -X DELETE https://hestia.speckle.works/api/projects/{projectId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
DELETE https://hestia.speckle.works/api/projects/{projectId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/projects/{projectId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/projects/{projectId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.delete 'https://hestia.speckle.works/api/projects/{projectId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.delete('https://hestia.speckle.works/api/projects/{projectId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/projects/{projectId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://hestia.speckle.works/api/projects/{projectId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /projects/{projectId}
Deletes a project
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| projectId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseBase |
| 400 | Bad Request | Fail whale. | ResponseBase |
Comments
Create, get and update comments.
CommentCreate
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/comments/{resourceType}/{resourceId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/comments/{resourceType}/{resourceId} HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"resource": {},
"text": "string",
"assignedTo": [],
"closed": true,
"labels": [],
"view": {},
"screenshot": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /comments/{resourceType}/{resourceId}
Creates a comment on a resource.
Body parameter
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"resource": {},
"text": "string",
"assignedTo": [],
"closed": true,
"labels": [],
"view": {},
"screenshot": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| resourceType | path | string | true | The resource type you want to comment on. |
| resourceId | path | string | true | The resource id you want to comment on. In the case of streams, it must be a streamId. |
| body | body | Comment | true | none |
Enumerated Values
| Parameter | Value |
|---|---|
| resourceType | stream |
| resourceType | object |
| resourceType | project |
| resourceType | comment |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseComment |
| 400 | Bad Request | Fail whale. | ResponseBase |
CommentGetFromResource
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/comments/{resourceType}/{resourceId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/comments/{resourceType}/{resourceId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/comments/{resourceType}/{resourceId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /comments/{resourceType}/{resourceId}
Gets the comments from a resource.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| resourceType | path | string | true | The resource type you want to comment on. |
| resourceId | path | string | true | The resource id you want to comment on. In the case of streams, it must be a streamId. |
Enumerated Values
| Parameter | Value |
|---|---|
| resourceType | stream |
| resourceType | object |
| resourceType | project |
| resourceType | comment |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseComment |
| 400 | Bad Request | Fail whale. | ResponseBase |
CommentGet
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/comments/{commentId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/comments/{commentId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/comments/{commentId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/comments/{commentId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/comments/{commentId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/comments/{commentId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/comments/{commentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/comments/{commentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /comments/{commentId}
Gets a specific comment.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| commentId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseComment |
| 400 | Bad Request | Fail whale. | ResponseBase |
CommentUpdate
Code samples
# You can also use wget
curl -X PUT https://hestia.speckle.works/api/comments/{commentId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
PUT https://hestia.speckle.works/api/comments/{commentId} HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/comments/{commentId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"resource": {},
"text": "string",
"assignedTo": [],
"closed": true,
"labels": [],
"view": {},
"screenshot": "string"
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/comments/{commentId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put 'https://hestia.speckle.works/api/comments/{commentId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put('https://hestia.speckle.works/api/comments/{commentId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/comments/{commentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://hestia.speckle.works/api/comments/{commentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /comments/{commentId}
Updates a comment.
Body parameter
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"resource": {},
"text": "string",
"assignedTo": [],
"closed": true,
"labels": [],
"view": {},
"screenshot": "string"
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| commentId | path | string | true | none |
| body | body | Comment | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseBase |
| 400 | Bad Request | Fail whale. | ResponseBase |
CommentDelete
Code samples
# You can also use wget
curl -X DELETE https://hestia.speckle.works/api/comments/{commentId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
DELETE https://hestia.speckle.works/api/comments/{commentId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/comments/{commentId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/comments/{commentId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.delete 'https://hestia.speckle.works/api/comments/{commentId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.delete('https://hestia.speckle.works/api/comments/{commentId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/comments/{commentId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://hestia.speckle.works/api/comments/{commentId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /comments/{commentId}
Deletes a specific comment.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| commentId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseBase |
| 400 | Bad Request | Fail whale. | ResponseBase |
Streams
Create, get and update streams.
StreamsGetAll
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/streams \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/streams HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/streams',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/streams',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/streams',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/streams', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/streams");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/streams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /streams
Gets a user's streams.
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseStream |
| 400 | Bad Request | Fail whale. | ResponseBase |
StreamCreate
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/streams \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/streams HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/streams',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"streamId": "string",
"name": "string",
"objects": [],
"layers": [],
"baseProperties": {},
"globalMeasures": {},
"isComputedResult": false,
"viewerLayers": [],
"parent": "string",
"children": [],
"ancestors": []
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/streams',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/streams',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/streams', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/streams");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/streams", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /streams
Create a stream
Body parameter
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"streamId": "string",
"name": "string",
"objects": [],
"layers": [],
"baseProperties": {},
"globalMeasures": {},
"isComputedResult": false,
"viewerLayers": [],
"parent": "string",
"children": [],
"ancestors": []
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | SpeckleStream | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseStream |
| 400 | Bad Request | Fail whale. | ResponseBase |
StreamGet
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/streams/{streamId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/streams/{streamId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/streams/{streamId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/streams/{streamId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/streams/{streamId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/streams/{streamId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/streams/{streamId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/streams/{streamId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /streams/{streamId}
Gets a specific stream.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| streamId | path | string | true | none |
| query | query | string | false | Specifiy which fields to retrieve, ie ?fields=layers,baseProperties. |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseStream |
| 400 | Bad Request | Fail whale. | ResponseBase |
StreamUpdate
Code samples
# You can also use wget
curl -X PUT https://hestia.speckle.works/api/streams/{streamId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
PUT https://hestia.speckle.works/api/streams/{streamId} HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/streams/{streamId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"streamId": "string",
"name": "string",
"objects": [],
"layers": [],
"baseProperties": {},
"globalMeasures": {},
"isComputedResult": false,
"viewerLayers": [],
"parent": "string",
"children": [],
"ancestors": []
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/streams/{streamId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put 'https://hestia.speckle.works/api/streams/{streamId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put('https://hestia.speckle.works/api/streams/{streamId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/streams/{streamId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://hestia.speckle.works/api/streams/{streamId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /streams/{streamId}
Updates a stream.
Body parameter
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"streamId": "string",
"name": "string",
"objects": [],
"layers": [],
"baseProperties": {},
"globalMeasures": {},
"isComputedResult": false,
"viewerLayers": [],
"parent": "string",
"children": [],
"ancestors": []
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| streamId | path | string | true | none |
| body | body | SpeckleStream | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseBase |
| 400 | Bad Request | Fail whale. | ResponseBase |
StreamDelete
Code samples
# You can also use wget
curl -X DELETE https://hestia.speckle.works/api/streams/{streamId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
DELETE https://hestia.speckle.works/api/streams/{streamId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/streams/{streamId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/streams/{streamId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.delete 'https://hestia.speckle.works/api/streams/{streamId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.delete('https://hestia.speckle.works/api/streams/{streamId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/streams/{streamId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://hestia.speckle.works/api/streams/{streamId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /streams/{streamId}
Deletes a specific stream.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| streamId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseBase |
| 400 | Bad Request | Fail whale. | ResponseBase |
StreamGetObjects
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/streams/{streamId}/objects \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/streams/{streamId}/objects HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/streams/{streamId}/objects',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/streams/{streamId}/objects',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/streams/{streamId}/objects',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/streams/{streamId}/objects', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/streams/{streamId}/objects");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/streams/{streamId}/objects", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /streams/{streamId}/objects
Gets stream objects.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| streamId | path | string | true | none |
| query | query | string | false | Specifiy which fields to retrieve, filters, limits, etc. |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseObject |
| 400 | Bad Request | Fail whale. | ResponseBase |
StreamClone
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/streams/{streamId}/clone \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/streams/{streamId}/clone HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/streams/{streamId}/clone',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/streams/{streamId}/clone',
{
method: 'POST',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/streams/{streamId}/clone',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/streams/{streamId}/clone', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/streams/{streamId}/clone");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/streams/{streamId}/clone", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /streams/{streamId}/clone
Clones a stream.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| streamId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": [],
"clone": {},
"parent": {}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseStreamClone |
| 400 | Bad Request | Fail whale. | ResponseBase |
StreamDiff
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/streams/{streamId}/diff/{otherStreamId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/streams/{streamId}/diff/{otherStreamId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/streams/{streamId}/diff/{otherStreamId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/streams/{streamId}/diff/{otherStreamId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/streams/{streamId}/diff/{otherStreamId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/streams/{streamId}/diff/{otherStreamId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/streams/{streamId}/diff/{otherStreamId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/streams/{streamId}/diff/{otherStreamId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /streams/{streamId}/diff/{otherStreamId}
Diffs two streams (objects and layers).
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| streamId | path | string | true | none |
| otherStreamId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": [],
"objects": {},
"layers": {}
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseStreamDiff |
| 400 | Bad Request | Fail whale. | ResponseBase |
Objects
Create, get and update objects.
ObjectCreate
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/objects \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/objects HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/objects',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '[
{}
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/objects',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/objects',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/objects', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/objects");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/objects", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /objects
Create one or more objects
Body parameter
[
{}
]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| body | body | array[object] | false | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All the users's projects. | ResponseObject |
| 400 | Bad Request | Fail whale. | ResponseBase |
ObjectUpdate
Code samples
# You can also use wget
curl -X PUT https://hestia.speckle.works/api/objects/{objectId} \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
PUT https://hestia.speckle.works/api/objects/{objectId} HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/objects/{objectId}',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Null",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": []
}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/objects/{objectId}',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put 'https://hestia.speckle.works/api/objects/{objectId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put('https://hestia.speckle.works/api/objects/{objectId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/objects/{objectId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://hestia.speckle.works/api/objects/{objectId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /objects/{objectId}
Update a object
Body parameter
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Null",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": []
}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| objectId | path | string | true | none |
| body | body | SpeckleObject | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All the users's projects. | ResponseObject |
| 400 | Bad Request | Fail whale. | ResponseBase |
ObjectGet
Code samples
# You can also use wget
curl -X GET https://hestia.speckle.works/api/objects/{objectId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
GET https://hestia.speckle.works/api/objects/{objectId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/objects/{objectId}',
method: 'get',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/objects/{objectId}',
{
method: 'GET',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.get 'https://hestia.speckle.works/api/objects/{objectId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.get('https://hestia.speckle.works/api/objects/{objectId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/objects/{objectId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("GET", "https://hestia.speckle.works/api/objects/{objectId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
GET /objects/{objectId}
Get a object
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| objectId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | The client. | ResponseObject |
| 400 | Bad Request | Fail whale. | ResponseBase |
ObjectDelete
Code samples
# You can also use wget
curl -X DELETE https://hestia.speckle.works/api/objects/{objectId} \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
DELETE https://hestia.speckle.works/api/objects/{objectId} HTTP/1.1
Host: hestia.speckle.works
Accept: application/json
var headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/objects/{objectId}',
method: 'delete',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const headers = {
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/objects/{objectId}',
{
method: 'DELETE',
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.delete 'https://hestia.speckle.works/api/objects/{objectId}',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.delete('https://hestia.speckle.works/api/objects/{objectId}', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/objects/{objectId}");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("DELETE");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("DELETE", "https://hestia.speckle.works/api/objects/{objectId}", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
DELETE /objects/{objectId}
Deletes an object
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| objectId | path | string | true | none |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseBase |
| 400 | Bad Request | Fail whale. | ResponseBase |
ObjectUpdateProperties
Code samples
# You can also use wget
curl -X PUT https://hestia.speckle.works/api/objects/{objectId}/properties \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
PUT https://hestia.speckle.works/api/objects/{objectId}/properties HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/objects/{objectId}/properties',
method: 'put',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '{}';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/objects/{objectId}/properties',
{
method: 'PUT',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.put 'https://hestia.speckle.works/api/objects/{objectId}/properties',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.put('https://hestia.speckle.works/api/objects/{objectId}/properties', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/objects/{objectId}/properties");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("PUT");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("PUT", "https://hestia.speckle.works/api/objects/{objectId}/properties", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
PUT /objects/{objectId}/properties
Does a merge update of the object's properties.
Body parameter
{}
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| objectId | path | string | true | none |
| body | body | object | true | An object that holds the keys you want to modify or add. |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseBase |
ObjectGetBulk
Code samples
# You can also use wget
curl -X POST https://hestia.speckle.works/api/objects/getbulk \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: API_KEY'
POST https://hestia.speckle.works/api/objects/getbulk HTTP/1.1
Host: hestia.speckle.works
Content-Type: application/json
Accept: application/json
var headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
$.ajax({
url: 'https://hestia.speckle.works/api/objects/getbulk',
method: 'post',
headers: headers,
success: function(data) {
console.log(JSON.stringify(data));
}
})
const fetch = require('node-fetch');
const inputBody = '[
"string"
]';
const headers = {
'Content-Type':'application/json',
'Accept':'application/json',
'Authorization':'API_KEY'
};
fetch('https://hestia.speckle.works/api/objects/getbulk',
{
method: 'POST',
body: inputBody,
headers: headers
})
.then(function(res) {
return res.json();
}).then(function(body) {
console.log(body);
});
require 'rest-client'
require 'json'
headers = {
'Content-Type' => 'application/json',
'Accept' => 'application/json',
'Authorization' => 'API_KEY'
}
result = RestClient.post 'https://hestia.speckle.works/api/objects/getbulk',
params: {
}, headers: headers
p JSON.parse(result)
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'API_KEY'
}
r = requests.post('https://hestia.speckle.works/api/objects/getbulk', params={
}, headers = headers)
print r.json()
URL obj = new URL("https://hestia.speckle.works/api/objects/getbulk");
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("POST");
int responseCode = con.getResponseCode();
BufferedReader in = new BufferedReader(
new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
System.out.println(response.toString());
package main
import (
"bytes"
"net/http"
)
func main() {
headers := map[string][]string{
"Content-Type": []string{"application/json"},
"Accept": []string{"application/json"},
"Authorization": []string{"API_KEY"},
}
data := bytes.NewBuffer([]byte{jsonReq})
req, err := http.NewRequest("POST", "https://hestia.speckle.works/api/objects/getbulk", data)
req.Header = headers
client := &http.Client{}
resp, err := client.Do(req)
// ...
}
POST /objects/getbulk
Gets a load of objects
Body parameter
[
"string"
]
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| query | query | string | false | Specifiy which fields to retrieve, filters, limits, etc. For example, ?fields=type,properties,hash&type=Circle |
| body | body | array[string] | true | An object that holds the keys you want to modify or add. |
Example responses
200 Response
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Responses
| Status | Meaning | Description | Schema |
|---|---|---|---|
| 200 | OK | All good! | ResponseObject |
| 400 | Bad Request | Fail whale. | ResponseBase |
Schemas
ResourceBase
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false
}
Base class that adds a set of simple properties related to authorisation and commenting to all applicable resources (not users).
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| _id | string | false | none | none |
| owner | string | false | none | none |
| private | boolean | false | none | none |
| anonymousComments | boolean | false | none | none |
| canRead | [string] | false | none | none |
| canWrite | [string] | false | none | none |
| comments | [string] | false | none | An array of comment ids. |
| deleted | boolean | false | none | Controls archival status - does not actually delete anything |
User
{
"_id": "string",
"role": "string",
"avatar": "string",
"apitoken": "string",
"token": "string",
"email": "string",
"name": "string",
"surname": "string",
"company": "string",
"logins": []
}
Describes a user.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| _id | string | false | none | Database uuid. |
| role | string | false | none | User's role. Defaults to "user". |
| avatar | string | false | none | We will need profile pics at one point. |
| apitoken | string | false | none | a signed jwt token that expires in 1 year. |
| token | string | false | none | a signed jwt token that expires in 1 day. |
| string | false | none | user's email | |
| name | string | false | none | User's given name |
| surname | string | false | none | User's family name |
| company | string | false | none | Users's company |
| logins | [object] | false | none | an array storing each time the user logged in. |
| » date | string | false | none | none |
AppClient
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"role": "string",
"documentGuid": "string",
"documentName": "string",
"documentType": "string",
"documentLocation": "string",
"streamId": "string",
"online": true
}
A speckle client.
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResourceBase | false | none | Base class that adds a set of simple properties related to authorisation and commenting to all applicable resources (not users). |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » _id | string | false | none | Database uuid. |
| » role | string | false | none | Either Sender, Receiver or anything else you can think of. |
| » documentGuid | string | false | none | none |
| » documentName | string | false | none | none |
| » documentType | string | false | none | none |
| » documentLocation | string | false | none | none |
| » streamId | string | false | none | The streamId that this client is attached to. |
| » online | boolean | false | none | Is it accessible from the server or not? |
Project
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"name": "string",
"number": "string",
"users": [],
"streams": [],
"subProjects": []
}
A project contains a group of streams and users.
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResourceBase | false | none | Base class that adds a set of simple properties related to authorisation and commenting to all applicable resources (not users). |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » _id | string | false | none | none |
| » name | string | false | none | none |
| » number | string | false | none | none |
| » users | [string] | false | none | none |
| » streams | [string] | false | none | none |
| » subProjects | [string] | false | none | none |
Comment
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"resource": {},
"text": "string",
"assignedTo": [],
"closed": true,
"labels": [],
"view": {},
"screenshot": "string"
}
A comment/issue.
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResourceBase | false | none | Base class that adds a set of simple properties related to authorisation and commenting to all applicable resources (not users). |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resource | object | false | none | none |
| »» resourceType | string | false | none | none |
| »» resourceId | string | false | none | none |
| » text | string | false | none | none |
| » assignedTo | [string] | false | none | none |
| » closed | boolean | false | none | none |
| » labels | [string] | false | none | none |
| » view | object | false | none | none |
| » screenshot | string | false | none | none |
SpeckleStream
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"streamId": "string",
"name": "string",
"objects": [],
"layers": [],
"baseProperties": {},
"globalMeasures": {},
"isComputedResult": false,
"viewerLayers": [],
"parent": "string",
"children": [],
"ancestors": []
}
A stream is essentially a collection of objects, with added properties.
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResourceBase | false | none | Base class that adds a set of simple properties related to authorisation and commenting to all applicable resources (not users). |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » streamId | string | false | none | The stream's short id. |
| » name | string | false | none | The data stream's name |
| » objects | [SpeckleObject] | false | none | An array of SpeckleObject ids. |
| » layers | [Layer] | false | none | An array of speckle layers. |
| » baseProperties | object | false | none | Units, tolerances, etc. |
| » globalMeasures | object | false | none | Any performance measures can go in here. |
| » isComputedResult | boolean | false | none | none |
| » viewerLayers | [object] | false | none | none |
| » parent | string | false | none | If this stream is a child, the parent's streamId. |
| » children | [string] | false | none | An array of the streamId of any children of this stream. |
| » ancestors | [string] | false | none | If resulting from a merge, the streams that this one was born out of. |
Layer
{
"name": "string",
"guid": "string",
"orderIndex": 0,
"startIndex": 0,
"objectCount": 0,
"topology": "string",
"properties": {}
}
Describes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| name | string | false | none | Layer's name |
| guid | string | false | none | Layer's guid (must be unique) |
| orderIndex | integer | false | none | Describes this layer's position in the list of layers. |
| startIndex | number | false | none | The index of the first object relative to the stream's objects array |
| objectCount | number | false | none | How many objects does this layer have. |
| topology | string | false | none | String describing the nested tree structure (GH centric). |
| properties | LayerProperties | false | none | Holds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema. |
LayerProperties
{
"color": {},
"visible": true,
"pointsize": 0,
"linewidth": 0,
"shininess": 0,
"smooth": true,
"showEdges": true,
"wireframe": true
}
Holds stream layer properties, mostly for displaying purposes. This object will be filled up with garbage from threejs and others, but below is a minimal schema.
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| color | object | false | none | none |
| » a | number | false | none | alpha value |
| » hex | string | false | none | hex color value |
| visible | boolean | false | none | toggles layer visibility. |
| pointsize | number | false | none | defines point size in threejs |
| linewidth | number | false | none | defines line thickness in threejs |
| shininess | number | false | none | says it all. speckle is superficial. |
| smooth | boolean | false | none | smooth shading toggle |
| showEdges | boolean | false | none | display edges or not yo. |
| wireframe | boolean | false | none | i'm bored. |
ResponseUser
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResponseBase | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resource | User | false | none | Describes a user. |
| » resources | [User] | false | none | [Describes a user.] |
ResponseBase
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Properties
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| success | boolean | false | none | Besides the http status code, this tells you whether the call succeeded or not. |
| message | string | false | none | Either an error or a confirmation. |
| resource | object | false | none | Returned resource (if querying by id) |
| resources | [object] | false | none | Returned resources array (if it's a bulk query) |
ResponseClient
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResponseBase | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resource | AppClient | false | none | A speckle client. |
| » resources | [AppClient] | false | none | [A speckle client.] |
ResponseProject
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResponseBase | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resource | Project | false | none | A project contains a group of streams and users. |
| » resources | [Project] | false | none | [A project contains a group of streams and users.] |
ResponseComment
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResponseBase | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resource | Comment | false | none | A comment/issue. |
| » resources | [Comment] | false | none | [A comment/issue.] |
ResponseStream
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResponseBase | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resource | SpeckleStream | false | none | A stream is essentially a collection of objects, with added properties. |
| » resources | [SpeckleStream] | false | none | [A stream is essentially a collection of objects, with added properties.] |
ResponseObject
{
"success": true,
"message": "string",
"resource": {},
"resources": []
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResponseBase | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » resource | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
| » resources | [SpeckleObject] | false | none | [Base class that is inherited by all other Speckle objects.] |
ResponseStreamClone
{
"success": true,
"message": "string",
"resource": {},
"resources": [],
"clone": {},
"parent": {}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResponseBase | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » clone | SpeckleStream | false | none | A stream is essentially a collection of objects, with added properties. |
| » parent | SpeckleStream | false | none | A stream is essentially a collection of objects, with added properties. |
ResponseStreamDiff
{
"success": true,
"message": "string",
"resource": {},
"resources": [],
"objects": {},
"layers": {}
}
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResponseBase | false | none | none |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » objects | object | false | none | none |
| »» common | [string] | false | none | none |
| »» inA | [string] | false | none | none |
| »» inB | [string] | false | none | none |
| » layers | object | false | none | none |
| »» common | [Layer] | false | none | [Describes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].] |
| »» inA | [Layer] | false | none | [Describes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].] |
| »» inB | [Layer] | false | none | [Describes a speckle layer. To assign objects to a speckle layer, you'll need to start at objects[ layer.startIndex ] and finish at objects[ layer.startIndex + layer.objectCount ].] |
SpeckleObject
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Null",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": []
}
Base class that is inherited by all other Speckle objects.
Properties
allOf
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | ResourceBase | false | none | Base class that adds a set of simple properties related to authorisation and commenting to all applicable resources (not users). |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | string | false | none | Object's subtype |
| » hash | string | false | none | Object's unique hash. |
| » geometryHash | string | false | none | Object's geometry hash |
| » applicationId | string | false | none | The id/guid that the origin application identifies this object by. |
| » name | string | false | none | The name of the object in the origin application. This is the instance or entity name displayed in the "properties" dialog in most applications. |
| » properties | object | false | none | The extra properties field of a speckle object. |
| » parent | string | false | none | If this object is a child, the parent's objectid. |
| » children | [string] | false | none | An array of the ids of any children of this object. |
| » ancestors | [string] | false | none | If resulting from a merge, the objects that this one was born out of. |
| » transform | [number] | false | none | none |
Enumerated Values
| Property | Value |
|---|---|
| type | Null |
| type | Abstract |
| type | Placeholder |
| type | Boolean |
| type | Number |
| type | String |
| type | Interval |
| type | Interval2d |
| type | Point |
| type | Vector |
| type | Plane |
| type | Line |
| type | Rectangle |
| type | Circle |
| type | Arc |
| type | Ellipse |
| type | Polycurve |
| type | Box |
| type | Polyline |
| type | Curve |
| type | Mesh |
| type | Brep |
| type | Annotation |
| type | Extrusion |
SpeckleAbstract
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Abstract",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"_type": "string",
"assembly": "string"
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » _type | string | false | none | the original type of the object |
| » assembly | string | false | none | the original assembly of this object |
SpecklePlaceholder
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Abstract",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": []
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
SpeckleBoolean
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Boolean",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"value": true
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » value | boolean | false | none | none |
SpeckleNumber
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Number",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"value": 0
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » value | number | false | none | A number. Can be float, double, etc. |
SpeckleString
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "String",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"value": "string"
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » value | string | false | none | A string. |
SpeckleInterval
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Interval",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"start": 0,
"end": 0
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » start | number | false | none | none |
| » end | number | false | none | none |
SpeckleInterval2d
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Null",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"U": {},
"V": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » U | SpeckleInterval | false | none | U interval. |
| » V | SpeckleInterval | false | none | V interval. |
SpecklePoint
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Point",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"value": []
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » value | [number] | false | none | An array containing the X, Y and Z coords of the point. |
SpeckleVector
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Vector",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"value": []
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » value | [number] | false | none | An array containing the X, Y and Z coords of the vector. |
SpecklePlane
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Plane",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"origin": {},
"normal": {},
"xdir": {},
"ydir": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » origin | SpecklePoint | false | none | The origin of the plane. |
| » normal | SpeckleVector | false | none | The normal of the plane. |
| » xdir | SpeckleVector | false | none | The X axis of the plane. |
| » ydir | SpeckleVector | false | none | The Y axis of the plane. |
SpeckleCircle
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Circle",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"radius": 0,
"center": {},
"normal": {},
"domain": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » radius | number | false | none | none |
| » center | SpecklePoint | false | none | none |
| » normal | SpeckleVector | false | none | none |
| » domain | SpeckleInterval | false | none | none |
SpeckleArc
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Arc",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"radius": 0,
"startAngle": 0,
"endAngle": 0,
"angleRadians": 0,
"plane": {},
"domain": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » radius | number | false | none | none |
| » startAngle | number | false | none | none |
| » endAngle | number | false | none | none |
| » angleRadians | number | false | none | none |
| » plane | SpecklePlane | false | none | none |
| » domain | SpeckleInterval | false | none | none |
SpeckleEllipse
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Ellipse",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"firstRadius": 0,
"secondRadius": 0,
"plane": {},
"domain": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » firstRadius | number | false | none | none |
| » secondRadius | number | false | none | none |
| » plane | SpecklePlane | false | none | none |
| » domain | SpeckleInterval | false | none | none |
SpecklePolycurve
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Polycurve",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"segments": [],
"domain": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » segments | [SpeckleObject] | false | none | [Base class that is inherited by all other Speckle objects.] |
| » domain | SpeckleInterval | false | none | none |
SpeckleBox
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Box",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"basePlane": {},
"xSize": {},
"ySize": {},
"zSize": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » basePlane | SpecklePlane | false | none | none |
| » xSize | SpeckleInterval | false | none | none |
| » ySize | SpeckleInterval | false | none | none |
| » zSize | SpeckleInterval | false | none | none |
SpeckleLine
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Line",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"value": [],
"domain": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » value | [number] | false | none | none |
| » domain | SpeckleInterval | false | none | none |
SpecklePolyline
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Polyline",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"closed": true,
"value": [],
"domain": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » closed | boolean | false | none | none |
| » value | [number] | false | none | none |
| » domain | SpeckleInterval | false | none | none |
SpeckleCurve
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Curve",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"degree": 0,
"periodic": true,
"rational": true,
"points": [],
"weights": [],
"knots": [],
"domain": {},
"displayValue": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » degree | number | false | none | none |
| » periodic | boolean | false | none | none |
| » rational | boolean | false | none | none |
| » points | [number] | false | none | none |
| » weights | [number] | false | none | none |
| » knots | [number] | false | none | none |
| » domain | SpeckleInterval | false | none | none |
| » displayValue | SpecklePolyline | false | none | none |
SpeckleMesh
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Mesh",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"vertices": [],
"faces": [],
"colors": [],
"textureCoordinates": []
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » vertices | [number] | false | none | The mesh's vertices array, in a flat array (ie, x1, y1, z1, x2, y2, ...) |
| » faces | [number] | false | none | The faces array. |
| » colors | [number] | false | none | If any, the colours per vertex. |
| » textureCoordinates | [number] | false | none | The faces array. |
SpeckleBrep
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Brep",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"rawData": {},
"provenance": "string",
"displayValue": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » type | any | false | none | none |
| » rawData | object | false | none | The brep's raw (serialisation) data. |
| » provenance | string | false | none | A short prefix of where the base64 comes from. |
| » displayValue | SpeckleMesh | false | none | Contains a speckle mesh representation of this brep. |
SpeckleExtrusion
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Null",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"capped": true,
"profile": {},
"pathStart": {},
"pathEnd": {},
"pathCurve": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » capped | boolean | false | none | none |
| » profile | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
| » pathStart | SpecklePoint | false | none | none |
| » pathEnd | SpecklePoint | false | none | none |
| » pathCurve | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
SpeckleAnnotation
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Null",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"text": "string",
"textHeight": 0,
"fontName": "string",
"bold": true,
"italic": true,
"location": {},
"plane": {}
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » text | string | false | none | none |
| » textHeight | number | false | none | none |
| » fontName | string | false | none | none |
| » bold | boolean | false | none | none |
| » italic | boolean | false | none | none |
| » location | SpecklePoint | false | none | none |
| » plane | SpecklePlane | false | none | none |
SpeckleBlock
{
"_id": "string",
"owner": "string",
"private": true,
"anonymousComments": true,
"canRead": [],
"canWrite": [],
"comments": [],
"deleted": false,
"type": "Null",
"hash": "hash",
"geometryHash": "Type.hash",
"applicationId": "GUID",
"name": "string",
"properties": {},
"parent": "string",
"children": [],
"ancestors": [],
"transform": [],
"blockName": "string",
"description": "string",
"objects": []
}
Properties
allOf - discriminator: SpeckleObject.type
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | SpeckleObject | false | none | Base class that is inherited by all other Speckle objects. |
and
| Name | Type | Required | Restrictions | Description |
|---|---|---|---|---|
| anonymous | object | false | none | none |
| » blockName | string | false | none | the name of the block definition used to insert this block |
| » description | string | false | none | none |
| » objects | [SpeckleObject] | false | none | [Base class that is inherited by all other Speckle objects.] |