qalx api v1.0.0
Scroll down for code samples, example requests and responses. Select a language for code samples from the tabs above or the mobile navigation menu.
qalx (an abbreviation of “queued calculations” and pronounced “kal-x”) is a flexible data management platform for engineering projects. Users store data and files in qalx and it provides tools for passing that data between various systems for processing.
Base URLs:
Authentication
- API Key (Bearer)
- Parameter Name: Authorization, in: header.
Item
List Item
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/item', headers = headers)
print(r.json())
GET /item
Return a paginated list of items that you have access to.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
query | query | string | false | A mongoDB query as a json string. |
sort | query | string | false | Which field to use when ordering the results. |
limit | query | integer | false | Number of results to return per page. |
skip | query | integer | false | The initial index from which to return the results. |
Example responses
200 Response
{
"query": {
"count": 0,
"next": "http://example.com",
"previous": "http://example.com",
"filter": "string",
"skip": 0,
"limit": 0,
"sort": "string"
},
"data": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "item",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Inline |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
406 | Not Acceptable | The request was not accepted by the server. This could be because the HTTP_QALX_BULK header was included on a non POST endpoint. |
None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» query | object | false | none | none |
»» count | integer | false | none | none |
»» next | string(uri)¦null | false | none | none |
»» previous | string(uri)¦null | false | none | none |
»» filter | string | false | none | The applied mongo DB filter as a JSON string |
»» skip | number | false | none | The initial index from which to return the results. |
»» limit | number | false | none | Number of results to return per page. |
»» sort | string | false | none | The applied sort if not using mongoDB sorting |
» data | [Item] | false | none | none |
»» guid | string(uuid) | false | read-only | The unique identifier for this entity |
»» data | object | false | none | An object of data that you want to save. |
»»» additionalProperties | string¦null | false | none | none |
»» file | File | false | none | A dict of name for the file you wish to upload |
»»» name | string | true | none | The file name |
»»» keyfile | string | false | none | The name of the key file used to encrypt this file. |
»»» url | string(uri) | false | read-only | The URL to use to get this item from qalx |
»»» put_url | string(uri) | false | read-only | The URL to use to upload this file to qalx |
»» info | object | false | read-only | none |
»»» created | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» modified | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» entity_type | string | false | none | none |
»»» archived | boolean | false | none | Has this entity been archived? |
»» meta | object | false | none | A dict of metadata on this entity that you wish to store. |
»»» additionalProperties | string¦null | false | none | none |
»» tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
»»» name | string | true | none | The name of the tag (i.e. project_code ) |
»»» value | string | true | none | The value of the tag (i.e. ABC123 ) |
Create Item
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'HTTP_QALX_BULK': 'string',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/item', headers = headers)
print(r.json())
POST /item
Create a new item. An item can have any combination of data and
file. Including none at all. Specify the HTTP_QALX_BULK
header along
with a list of items to create multiple items at once.
Body parameter
{
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
HTTP_QALX_BULK | header | string | false | Provide this optional header along with an array of Item data to create multiple items at once. |
body | body | Item | true | none |
Example responses
201 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "item",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | none | Item |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
406 | Not Acceptable | The request was not accepted by the server. This could be because the HTTP_QALX_BULK header was included on a non POST endpoint. |
None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Aggregate Item
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/item/aggregate', headers = headers)
print(r.json())
POST /item/aggregate
Perform aggregation using a mongoDB pipeline query. Returns the raw response from the database. It is up to the client to handle the data in its own way.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
aggregate | query | string | false | A mongoDB pipeline array as a json string. |
Example responses
200 Response
{
"aggregate": [
null
],
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The aggregation response | Inline |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
406 | Not Acceptable | The request was not accepted by the server. This could be because the HTTP_QALX_BULK header was included on a non POST endpoint. |
None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» aggregate | [any] | false | none | The applied aggregation pipeline |
» data | object | false | none | The raw result from the mongoDB pipeline |
Read Item
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/item/{guid}', headers = headers)
print(r.json())
GET /item/{guid}
Retrieve a single item using its guid as an identifier
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "item",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Item |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
406 | Not Acceptable | The request was not accepted by the server. This could be because the HTTP_QALX_BULK header was included on a non POST endpoint. |
None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Update Item
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.put('https://api.qalx.net/item/{guid}', headers = headers)
print(r.json())
PUT /item/{guid}
Updates a single item
Body parameter
{
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Item | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "item",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Item |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
406 | Not Acceptable | The request was not accepted by the server. This could be because the HTTP_QALX_BULK header was included on a non POST endpoint. |
None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Partial Update Item
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/item/{guid}', headers = headers)
print(r.json())
PATCH /item/{guid}
Partially update an item
Body parameter
{
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Item | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "item",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Item |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
406 | Not Acceptable | The request was not accepted by the server. This could be because the HTTP_QALX_BULK header was included on a non POST endpoint. |
None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Delete Item
Code samples
import requests
headers = {
'Authorization': 'Token <API_KEY>'
}
r = requests.delete('https://api.qalx.net/item/{guid}', headers = headers)
print(r.json())
DELETE /item/{guid}
Delete an item and any associated file (if any)
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | none | None |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
406 | Not Acceptable | The request was not accepted by the server. This could be because the HTTP_QALX_BULK header was included on a non POST endpoint. |
None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Archive Item
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/item/{guid}/archive', headers = headers)
print(r.json())
PATCH /item/{guid}/archive
Sets the internal archive
flag on an entity. You can use this flag
to more easily filter entities to only return unarchived ones
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "item",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Item |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
406 | Not Acceptable | The request was not accepted by the server. This could be because the HTTP_QALX_BULK header was included on a non POST endpoint. |
None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Unarchive Item
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/item/{guid}/unarchive', headers = headers)
print(r.json())
PATCH /item/{guid}/unarchive
Unsets the internal archive
flag on an entity. You can use this flag
to more easily filter entities to only return unarchived ones
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "item",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Item |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
406 | Not Acceptable | The request was not accepted by the server. This could be because the HTTP_QALX_BULK header was included on a non POST endpoint. |
None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Set
List Set
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/set', headers = headers)
print(r.json())
GET /set
Return a paginated list of sets that you have access to.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
query | query | string | false | A mongoDB query as a json string. |
sort | query | string | false | Which field to use when ordering the results. |
limit | query | integer | false | Number of results to return per page. |
skip | query | integer | false | The initial index from which to return the results. |
Example responses
200 Response
{
"query": {
"count": 0,
"next": "http://example.com",
"previous": "http://example.com",
"filter": "string",
"skip": 0,
"limit": 0,
"sort": "string"
},
"data": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"items": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "set",
"archived": true
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Inline |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» query | object | false | none | none |
»» count | integer | false | none | none |
»» next | string(uri)¦null | false | none | none |
»» previous | string(uri)¦null | false | none | none |
»» filter | string | false | none | The applied mongo DB filter as a JSON string |
»» skip | number | false | none | The initial index from which to return the results. |
»» limit | number | false | none | Number of results to return per page. |
»» sort | string | false | none | The applied sort if not using mongoDB sorting |
» data | [Set] | false | none | none |
»» guid | string(uuid) | false | read-only | The unique identifier for this entity |
»» items | object | false | none | A map of key:item_guid for the items on this set |
»»» additionalProperties | string | false | none | none |
»» info | object | false | read-only | none |
»»» created | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» modified | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» entity_type | string | false | none | none |
»»» archived | boolean | false | none | Has this entity been archived? |
»» tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
»»» name | string | true | none | The name of the tag (i.e. project_code ) |
»»» value | string | true | none | The value of the tag (i.e. ABC123 ) |
»» meta | object | false | none | A dict of metadata on this entity that you wish to store. |
»»» additionalProperties | string¦null | false | none | none |
Create Set
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/set', headers = headers)
print(r.json())
POST /set
Create a new set. A set can be created with no items if necessary
Body parameter
{
"items": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Set | true | none |
Example responses
201 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"items": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "set",
"archived": true
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | none | Set |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Aggregate Set
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/set/aggregate', headers = headers)
print(r.json())
POST /set/aggregate
Perform aggregation using a mongoDB pipeline query. Returns the raw response from the database. It is up to the client to handle the data in its own way.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
aggregate | query | string | false | A mongoDB pipeline array as a json string. |
Example responses
200 Response
{
"aggregate": [
null
],
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The aggregation response | Inline |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» aggregate | [any] | false | none | The applied aggregation pipeline |
» data | object | false | none | The raw result from the mongoDB pipeline |
Read Set
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/set/{guid}', headers = headers)
print(r.json())
GET /set/{guid}
Retrieve a single set using its guid as an identifier
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"items": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "set",
"archived": true
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Set |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Update Set
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.put('https://api.qalx.net/set/{guid}', headers = headers)
print(r.json())
PUT /set/{guid}
Updates a single set
Body parameter
{
"items": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Set | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"items": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "set",
"archived": true
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Set |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Partial Update Set
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/set/{guid}', headers = headers)
print(r.json())
PATCH /set/{guid}
Partially update a set
Body parameter
{
"items": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Set | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"items": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "set",
"archived": true
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Set |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Archive Set
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/set/{guid}/archive', headers = headers)
print(r.json())
PATCH /set/{guid}/archive
Sets the internal archive
flag on an entity. You can use this flag
to more easily filter entities to only return unarchived ones
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"items": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "set",
"archived": true
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Set |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Unarchive Set
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/set/{guid}/unarchive', headers = headers)
print(r.json())
PATCH /set/{guid}/unarchive
Unsets the internal archive
flag on an entity. You can use this flag
to more easily filter entities to only return unarchived ones
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"items": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "set",
"archived": true
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Set |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Group
List Group
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/group', headers = headers)
print(r.json())
GET /group
Return a paginated list of groups that you have access to.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
query | query | string | false | A mongoDB query as a json string. |
sort | query | string | false | Which field to use when ordering the results. |
limit | query | integer | false | Number of results to return per page. |
skip | query | integer | false | The initial index from which to return the results. |
Example responses
200 Response
{
"query": {
"count": 0,
"next": "http://example.com",
"previous": "http://example.com",
"filter": "string",
"skip": 0,
"limit": 0,
"sort": "string"
},
"data": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"sets": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "group",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Inline |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» query | object | false | none | none |
»» count | integer | false | none | none |
»» next | string(uri)¦null | false | none | none |
»» previous | string(uri)¦null | false | none | none |
»» filter | string | false | none | The applied mongo DB filter as a JSON string |
»» skip | number | false | none | The initial index from which to return the results. |
»» limit | number | false | none | Number of results to return per page. |
»» sort | string | false | none | The applied sort if not using mongoDB sorting |
» data | [Group] | false | none | none |
»» guid | string(uuid) | false | read-only | The unique identifier for this entity |
»» sets | object | false | none | A map of key:set_guid for the sets on this group |
»»» additionalProperties | string | false | none | none |
»» info | object | false | read-only | none |
»»» created | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» modified | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» entity_type | string | false | none | none |
»»» archived | boolean | false | none | Has this entity been archived? |
»» meta | object | false | none | A dict of metadata on this entity that you wish to store. |
»»» additionalProperties | string¦null | false | none | none |
»» tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
»»» name | string | true | none | The name of the tag (i.e. project_code ) |
»»» value | string | true | none | The value of the tag (i.e. ABC123 ) |
Create Group
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/group', headers = headers)
print(r.json())
POST /group
Create a new group. A group can be created with no sets if necessary
Body parameter
{
"sets": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Group | true | none |
Example responses
201 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"sets": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "group",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | none | Group |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Aggregate Group
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/group/aggregate', headers = headers)
print(r.json())
POST /group/aggregate
Perform aggregation using a mongoDB pipeline query. Returns the raw response from the database. It is up to the client to handle the data in its own way.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
aggregate | query | string | false | A mongoDB pipeline array as a json string. |
Example responses
200 Response
{
"aggregate": [
null
],
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The aggregation response | Inline |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» aggregate | [any] | false | none | The applied aggregation pipeline |
» data | object | false | none | The raw result from the mongoDB pipeline |
Read Group
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/group/{guid}', headers = headers)
print(r.json())
GET /group/{guid}
Retrieve a single group using its guid as an identifier
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"sets": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "group",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Group |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Update Group
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.put('https://api.qalx.net/group/{guid}', headers = headers)
print(r.json())
PUT /group/{guid}
Updates a single group
Body parameter
{
"sets": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Group | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"sets": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "group",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Group |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Partial Update Group
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/group/{guid}', headers = headers)
print(r.json())
PATCH /group/{guid}
Partially update a group
Body parameter
{
"sets": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Group | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"sets": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "group",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Group |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Archive Group
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/group/{guid}/archive', headers = headers)
print(r.json())
PATCH /group/{guid}/archive
Sets the internal archive
flag on an entity. You can use this flag
to more easily filter entities to only return unarchived ones
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"sets": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "group",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Group |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Unarchive Group
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/group/{guid}/unarchive', headers = headers)
print(r.json())
PATCH /group/{guid}/unarchive
Unsets the internal archive
flag on an entity. You can use this flag
to more easily filter entities to only return unarchived ones
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"sets": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "group",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Group |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Bot
List Bot
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/bot', headers = headers)
print(r.json())
GET /bot
Return a paginated list of bots that you have access to.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
query | query | string | false | A mongoDB query as a json string. |
sort | query | string | false | Which field to use when ordering the results. |
limit | query | integer | false | Number of results to return per page. |
skip | query | integer | false | The initial index from which to return the results. |
Example responses
200 Response
{
"query": {
"count": 0,
"next": "http://example.com",
"previous": "http://example.com",
"filter": "string",
"skip": 0,
"limit": 0,
"sort": "string"
},
"data": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "bot",
"credentials": {
"token": "string"
}
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
},
"workers": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
],
"tags": [
{
"name": "string",
"value": "string"
}
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Inline |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» query | object | false | none | none |
»» count | integer | false | none | none |
»» next | string(uri)¦null | false | none | none |
»» previous | string(uri)¦null | false | none | none |
»» filter | string | false | none | The applied mongo DB filter as a JSON string |
»» skip | number | false | none | The initial index from which to return the results. |
»» limit | number | false | none | Number of results to return per page. |
»» sort | string | false | none | The applied sort if not using mongoDB sorting |
» data | [Bot] | false | none | none |
»» guid | string(uuid) | false | read-only | The unique identifier for this entity |
»» name | string | true | none | none |
»» config | object | true | none | none |
»»» additionalProperties | string¦null | false | none | none |
»» meta | object | false | none | A dict of metadata on this entity that you wish to store. |
»»» additionalProperties | string¦null | false | none | none |
»» host | object | false | none | none |
»»» additionalProperties | string¦null | false | none | none |
»» info | object | false | read-only | none |
»»» created | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» modified | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» entity_type | string | false | none | none |
»»» credentials | object | false | none | none |
»»»» token | string | false | none | The qalx authentication token to use when making requests with this bot to the API |
»» status | Status¦null | false | none | none |
»»» message | string | false | none | none |
»»» modified | string(date-time) | false | read-only | none |
»» workers | [Worker] | false | read-only | none |
»»» guid | string(uuid) | false | read-only | none |
»»» signal | object | false | none | none |
»»»» additionalProperties | boolean | false | none | none |
»»» status | Status¦null | false | none | none |
»» tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
»»» name | string | true | none | The name of the tag (i.e. project_code ) |
»»» value | string | true | none | The value of the tag (i.e. ABC123 ) |
Create Bot
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/bot', headers = headers)
print(r.json())
POST /bot
Create a new bot.
Body parameter
{
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"status": {
"message": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Bot | true | none |
Example responses
201 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "bot",
"credentials": {
"token": "string"
}
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
},
"workers": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
],
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | none | Bot |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Aggregate Bot
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/bot/aggregate', headers = headers)
print(r.json())
POST /bot/aggregate
Perform aggregation using a mongoDB pipeline query. Returns the raw response from the database. It is up to the client to handle the data in its own way.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
aggregate | query | string | false | A mongoDB pipeline array as a json string. |
Example responses
200 Response
{
"aggregate": [
null
],
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The aggregation response | Inline |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» aggregate | [any] | false | none | The applied aggregation pipeline |
» data | object | false | none | The raw result from the mongoDB pipeline |
Read Bot
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/bot/{guid}', headers = headers)
print(r.json())
GET /bot/{guid}
Retrieve a single bot using its guid as an identifier
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "bot",
"credentials": {
"token": "string"
}
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
},
"workers": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
],
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Bot |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Update Bot
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.put('https://api.qalx.net/bot/{guid}', headers = headers)
print(r.json())
PUT /bot/{guid}
Updates a single bot
Body parameter
{
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"status": {
"message": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Bot | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "bot",
"credentials": {
"token": "string"
}
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
},
"workers": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
],
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Bot |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Partial Update Bot
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/bot/{guid}', headers = headers)
print(r.json())
PATCH /bot/{guid}
Partially update a bot
Body parameter
{
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"status": {
"message": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Bot | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "bot",
"credentials": {
"token": "string"
}
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
},
"workers": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
],
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Bot |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Replace Workers Bot
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/bot/{guid}/replace-workers', headers = headers)
print(r.json())
PATCH /bot/{guid}/replace-workers
Replaces all the workers on this bot with new workers depending on
the value of the workers
argument
Body parameter
{
"workers": 0
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Bot_Replace_Workers | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "bot",
"credentials": {
"token": "string"
}
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
},
"workers": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
],
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Bot |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Read Worker Bot
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/bot/{guid}/worker/{worker_guid}', headers = headers)
print(r.json())
GET /bot/{guid}/worker/{worker_guid}
Returns a single worker instance that is on the given bot
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
worker_guid | path | string | true | none |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Worker |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Partial Update Worker Bot
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/bot/{guid}/worker/{worker_guid}', headers = headers)
print(r.json())
PATCH /bot/{guid}/worker/{worker_guid}
Updates a single worker instance that is on the given bot
Body parameter
{
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string"
}
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Worker | true | none |
guid | path | string | true | The unique identifier for this entity |
worker_guid | path | string | true | none |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Worker |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Queue
List Queue
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/queue', headers = headers)
print(r.json())
GET /queue
Return a paginated list of queues that you have access to.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
query | query | string | false | A mongoDB query as a json string. |
sort | query | string | false | Which field to use when ordering the results. |
limit | query | integer | false | Number of results to return per page. |
skip | query | integer | false | The initial index from which to return the results. |
Example responses
200 Response
{
"query": {
"count": 0,
"next": "http://example.com",
"previous": "http://example.com",
"filter": "string",
"skip": 0,
"limit": 0,
"sort": "string"
},
"data": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"parameters": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "queue",
"queue_url": "http://example.com",
"deadletter_queue_url": "http://example.com",
"credentials": {
"ACCESS_KEY_ID": "string",
"SECRET_ACCESS_KEY": "string",
"SESSION_TOKEN": "string",
"EXPIRATION": "2019-08-24T14:15:22Z"
}
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Inline |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» query | object | false | none | none |
»» count | integer | false | none | none |
»» next | string(uri)¦null | false | none | none |
»» previous | string(uri)¦null | false | none | none |
»» filter | string | false | none | The applied mongo DB filter as a JSON string |
»» skip | number | false | none | The initial index from which to return the results. |
»» limit | number | false | none | Number of results to return per page. |
»» sort | string | false | none | The applied sort if not using mongoDB sorting |
» data | [Queue] | false | none | none |
»» guid | string(uuid) | false | read-only | The unique identifier for this entity |
»» name | string | true | none | The name of this queue. |
»» parameters | object | true | none | none |
»»» additionalProperties | string¦null | false | none | none |
»» meta | object | false | none | A dict of metadata on this entity that you wish to store. |
»»» additionalProperties | string¦null | false | none | none |
»» info | object | false | read-only | none |
»»» created | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» modified | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» entity_type | string | false | none | none |
»»» queue_url | string(uri) | false | none | The url of the SQS queue |
»»» deadletter_queue_url | string(uri) | false | none | The url of the SQS deadletter queue |
»»» credentials | object | false | none | none |
»»»» ACCESS_KEY_ID | string | false | none | The AWS access key id to use when connecting to the SQS queue |
»»»» SECRET_ACCESS_KEY | string | false | none | The AWS secret access key to use when connecting to the SQS queue |
»»»» SESSION_TOKEN | string | false | none | The AWS session token to use when connecting to the SQS queue |
»»»» EXPIRATION | string(date-time) | false | none | The datetime that these credentials will expire |
»» tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
»»» name | string | true | none | The name of the tag (i.e. project_code ) |
»»» value | string | true | none | The value of the tag (i.e. ABC123 ) |
Create Queue
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/queue', headers = headers)
print(r.json())
POST /queue
Create a new queue.
Body parameter
{
"name": "string",
"parameters": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Queue | true | none |
Example responses
201 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"parameters": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "queue",
"queue_url": "http://example.com",
"deadletter_queue_url": "http://example.com",
"credentials": {
"ACCESS_KEY_ID": "string",
"SECRET_ACCESS_KEY": "string",
"SESSION_TOKEN": "string",
"EXPIRATION": "2019-08-24T14:15:22Z"
}
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | none | Queue |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Aggregate Queue
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/queue/aggregate', headers = headers)
print(r.json())
POST /queue/aggregate
Perform aggregation using a mongoDB pipeline query. Returns the raw response from the database. It is up to the client to handle the data in its own way.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
aggregate | query | string | false | A mongoDB pipeline array as a json string. |
Example responses
200 Response
{
"aggregate": [
null
],
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The aggregation response | Inline |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» aggregate | [any] | false | none | The applied aggregation pipeline |
» data | object | false | none | The raw result from the mongoDB pipeline |
Read Queue
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/queue/{guid}', headers = headers)
print(r.json())
GET /queue/{guid}
Retrieve a single queue using its guid as an identifier
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"parameters": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "queue",
"queue_url": "http://example.com",
"deadletter_queue_url": "http://example.com",
"credentials": {
"ACCESS_KEY_ID": "string",
"SECRET_ACCESS_KEY": "string",
"SESSION_TOKEN": "string",
"EXPIRATION": "2019-08-24T14:15:22Z"
}
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Queue |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Update Queue
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.put('https://api.qalx.net/queue/{guid}', headers = headers)
print(r.json())
PUT /queue/{guid}
Updates a single queue
Body parameter
{
"name": "string",
"parameters": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Queue | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"parameters": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "queue",
"queue_url": "http://example.com",
"deadletter_queue_url": "http://example.com",
"credentials": {
"ACCESS_KEY_ID": "string",
"SECRET_ACCESS_KEY": "string",
"SESSION_TOKEN": "string",
"EXPIRATION": "2019-08-24T14:15:22Z"
}
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Queue |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Partial Update Queue
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/queue/{guid}', headers = headers)
print(r.json())
PATCH /queue/{guid}
Partially update a queue
Body parameter
{
"name": "string",
"parameters": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Queue | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"parameters": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "queue",
"queue_url": "http://example.com",
"deadletter_queue_url": "http://example.com",
"credentials": {
"ACCESS_KEY_ID": "string",
"SECRET_ACCESS_KEY": "string",
"SESSION_TOKEN": "string",
"EXPIRATION": "2019-08-24T14:15:22Z"
}
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Queue |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Delete Queue
Code samples
import requests
headers = {
'Authorization': 'Token <API_KEY>'
}
r = requests.delete('https://api.qalx.net/queue/{guid}', headers = headers)
print(r.json())
DELETE /queue/{guid}
Queues can be used to process data. Add items, sets or groups to a queue and have a bot read from the queue in order to process the data
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | none | None |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Blueprint
List Blueprint
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/blueprint', headers = headers)
print(r.json())
GET /blueprint
Return a paginated list of blueprints that you have access to.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
query | query | string | false | A mongoDB query as a json string. |
sort | query | string | false | Which field to use when ordering the results. |
limit | query | integer | false | Number of results to return per page. |
skip | query | integer | false | The initial index from which to return the results. |
Example responses
200 Response
{
"query": {
"count": 0,
"next": "http://example.com",
"previous": "http://example.com",
"filter": "string",
"skip": 0,
"limit": 0,
"sort": "string"
},
"data": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"schema": {
"property1": "string",
"property2": "string"
},
"entity_type": "item",
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "blueprint"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Inline |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» query | object | false | none | none |
»» count | integer | false | none | none |
»» next | string(uri)¦null | false | none | none |
»» previous | string(uri)¦null | false | none | none |
»» filter | string | false | none | The applied mongo DB filter as a JSON string |
»» skip | number | false | none | The initial index from which to return the results. |
»» limit | number | false | none | Number of results to return per page. |
»» sort | string | false | none | The applied sort if not using mongoDB sorting |
» data | [Blueprint] | false | none | none |
»» guid | string(uuid) | false | read-only | The unique identifier for this entity |
»» name | string | true | none | The name of this blueprint |
»» schema | object | true | none | The schema that defines this blueprint |
»»» additionalProperties | string¦null | false | none | none |
»» entity_type | string | true | none | The type of entity this schema is for |
»» meta | object | false | none | A dict of metadata on this entity that you wish to store. |
»»» additionalProperties | string¦null | false | none | none |
»» info | object | false | read-only | none |
»»» created | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» modified | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» entity_type | string | false | none | none |
»» tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
»»» name | string | true | none | The name of the tag (i.e. project_code ) |
»»» value | string | true | none | The value of the tag (i.e. ABC123 ) |
Enumerated Values
Property | Value |
---|---|
entity_type | item |
entity_type | set |
Create Blueprint
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/blueprint', headers = headers)
print(r.json())
POST /blueprint
Create a new blueprint.
Body parameter
{
"name": "string",
"schema": {
"property1": "string",
"property2": "string"
},
"entity_type": "item",
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Blueprint | true | none |
Example responses
201 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"schema": {
"property1": "string",
"property2": "string"
},
"entity_type": "item",
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "blueprint"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | none | Blueprint |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Aggregate Blueprint
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/blueprint/aggregate', headers = headers)
print(r.json())
POST /blueprint/aggregate
Perform aggregation using a mongoDB pipeline query. Returns the raw response from the database. It is up to the client to handle the data in its own way.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
aggregate | query | string | false | A mongoDB pipeline array as a json string. |
Example responses
200 Response
{
"aggregate": [
null
],
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The aggregation response | Inline |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» aggregate | [any] | false | none | The applied aggregation pipeline |
» data | object | false | none | The raw result from the mongoDB pipeline |
Read Blueprint
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/blueprint/{guid}', headers = headers)
print(r.json())
GET /blueprint/{guid}
Retrieve a single blueprint using its guid as an identifier
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"schema": {
"property1": "string",
"property2": "string"
},
"entity_type": "item",
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "blueprint"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Blueprint |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Update Blueprint
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.put('https://api.qalx.net/blueprint/{guid}', headers = headers)
print(r.json())
PUT /blueprint/{guid}
Updates a single blueprint
Body parameter
{
"name": "string",
"schema": {
"property1": "string",
"property2": "string"
},
"entity_type": "item",
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Blueprint | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"schema": {
"property1": "string",
"property2": "string"
},
"entity_type": "item",
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "blueprint"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Blueprint |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Partial Update Blueprint
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/blueprint/{guid}', headers = headers)
print(r.json())
PATCH /blueprint/{guid}
Partially update a blueprint
Body parameter
{
"name": "string",
"schema": {
"property1": "string",
"property2": "string"
},
"entity_type": "item",
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Blueprint | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"schema": {
"property1": "string",
"property2": "string"
},
"entity_type": "item",
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "blueprint"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Blueprint |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Tags
Validate Tags
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/tags/validate', headers = headers)
print(r.json())
POST /tags/validate
An endpoint that allows the user to POST tags to to check if they have access to all of them. Will return a 200 if they can access all the tags or a 400 if they cannot
Body parameter
{
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Validate_Tag | true | none |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | None |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Factory
List Factory
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/factory', headers = headers)
print(r.json())
GET /factory
Return a paginated list of factories that you have access to.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
query | query | string | false | A mongoDB query as a json string. |
sort | query | string | false | Which field to use when ordering the results. |
limit | query | integer | false | Number of results to return per page. |
skip | query | integer | false | The initial index from which to return the results. |
Example responses
200 Response
{
"query": {
"count": 0,
"next": "http://example.com",
"previous": "http://example.com",
"filter": "string",
"skip": 0,
"limit": 0,
"sort": "string"
},
"data": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"status": "deploying",
"plan": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"stage": "string",
"stacks": {
"property1": "string",
"property2": "string"
},
"bots": [
{
"bot": "string",
"code": "string"
}
],
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "factorybuild"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Inline |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» query | object | false | none | none |
»» count | integer | false | none | none |
»» next | string(uri)¦null | false | none | none |
»» previous | string(uri)¦null | false | none | none |
»» filter | string | false | none | The applied mongo DB filter as a JSON string |
»» skip | number | false | none | The initial index from which to return the results. |
»» limit | number | false | none | Number of results to return per page. |
»» sort | string | false | none | The applied sort if not using mongoDB sorting |
» data | [Factory] | false | none | none |
»» guid | string(uuid) | false | read-only | The unique identifier for this entity |
»» name | string | true | none | The name of this factory |
»» status | string | false | none | The current status for this factory |
»» plan | File | true | none | A dict of name for the file you wish to upload |
»»» name | string | true | none | The file name |
»»» keyfile | string | false | none | The name of the key file used to encrypt this file. |
»»» url | string(uri) | false | read-only | The URL to use to get this item from qalx |
»»» put_url | string(uri) | false | read-only | The URL to use to upload this file to qalx |
»» stage | string | true | none | The stage from the plan this factory is for |
»» stacks | object | false | none | A map of sector_name:stack_id for the remote stacks on this factory. |
»»» additionalProperties | string | false | none | none |
»» bots | [Factory_Bot] | false | none | none |
»»» bot | string | true | none | none |
»»» code | string | true | none | none |
»» info | object | false | read-only | none |
»»» created | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» modified | object | false | none | none |
»»»» on | string(date-time) | false | none | none |
»»»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»»»» entity | string | false | none | none |
»»» entity_type | string | false | none | none |
»» meta | object | false | none | A dict of metadata on this entity that you wish to store. |
»»» additionalProperties | string¦null | false | none | none |
»» tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
»»» name | string | true | none | The name of the tag (i.e. project_code ) |
»»» value | string | true | none | The value of the tag (i.e. ABC123 ) |
Enumerated Values
Property | Value |
---|---|
status | deploying |
status | deployed |
status | updating |
status | deleting |
Create Factory
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/factory', headers = headers)
print(r.json())
POST /factory
Create a new factory.
Body parameter
{
"name": "string",
"status": "deploying",
"plan": {
"name": "string",
"keyfile": "string"
},
"stage": "string",
"stacks": {
"property1": "string",
"property2": "string"
},
"bots": [
{
"bot": "string",
"code": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Factory | true | none |
Example responses
201 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"status": "deploying",
"plan": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"stage": "string",
"stacks": {
"property1": "string",
"property2": "string"
},
"bots": [
{
"bot": "string",
"code": "string"
}
],
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "factorybuild"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | none | Factory |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Aggregate Factory
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/factory/aggregate', headers = headers)
print(r.json())
POST /factory/aggregate
Perform aggregation using a mongoDB pipeline query. Returns the raw response from the database. It is up to the client to handle the data in its own way.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
aggregate | query | string | false | A mongoDB pipeline array as a json string. |
Example responses
200 Response
{
"aggregate": [
null
],
"data": {}
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | The aggregation response | Inline |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Response Schema
Status Code 200
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
» aggregate | [any] | false | none | The applied aggregation pipeline |
» data | object | false | none | The raw result from the mongoDB pipeline |
Validate Factory
Code samples
import requests
headers = {
'Content-Type': 'application/json'
}
r = requests.post('https://api.qalx.net/factory/validate', headers = headers)
print(r.json())
POST /factory/validate
Validates the provided schema and returns either a blank 200 response or a 400 response with the appropriate errors
Body parameter
{
"plan": "string"
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | FactoryBuildValidation | true | none |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | None |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Read Factory
Code samples
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.get('https://api.qalx.net/factory/{guid}', headers = headers)
print(r.json())
GET /factory/{guid}
Retrieve a single factory using its guid as an identifier
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"status": "deploying",
"plan": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"stage": "string",
"stacks": {
"property1": "string",
"property2": "string"
},
"bots": [
{
"bot": "string",
"code": "string"
}
],
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "factorybuild"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Factory |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Update Factory
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.put('https://api.qalx.net/factory/{guid}', headers = headers)
print(r.json())
PUT /factory/{guid}
Updates a single factory
Body parameter
{
"name": "string",
"status": "deploying",
"plan": {
"name": "string",
"keyfile": "string"
},
"stage": "string",
"stacks": {
"property1": "string",
"property2": "string"
},
"bots": [
{
"bot": "string",
"code": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Factory | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"status": "deploying",
"plan": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"stage": "string",
"stacks": {
"property1": "string",
"property2": "string"
},
"bots": [
{
"bot": "string",
"code": "string"
}
],
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "factorybuild"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Factory |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Partial Update Factory
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.patch('https://api.qalx.net/factory/{guid}', headers = headers)
print(r.json())
PATCH /factory/{guid}
Partially update a factory
Body parameter
{
"name": "string",
"status": "deploying",
"plan": {
"name": "string",
"keyfile": "string"
},
"stage": "string",
"stacks": {
"property1": "string",
"property2": "string"
},
"bots": [
{
"bot": "string",
"code": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Factory | true | none |
guid | path | string | true | The unique identifier for this entity |
Example responses
200 Response
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"status": "deploying",
"plan": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"stage": "string",
"stacks": {
"property1": "string",
"property2": "string"
},
"bots": [
{
"bot": "string",
"code": "string"
}
],
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "factorybuild"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
200 | OK | none | Factory |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Delete Factory
Code samples
import requests
headers = {
'Authorization': 'Token <API_KEY>'
}
r = requests.delete('https://api.qalx.net/factory/{guid}', headers = headers)
print(r.json())
DELETE /factory/{guid}
Factories allow a user to create a reusable plan that defines various bots. This plan can then be used to build a factory and automatically run multiple bots.
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
guid | path | string | true | The unique identifier for this entity |
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
204 | No Content | none | None |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Notification
Create Notification
Code samples
import requests
headers = {
'Content-Type': 'application/json',
'Accept': 'application/json',
'Authorization': 'Token <API_KEY>'
}
r = requests.post('https://api.qalx.net/notification', headers = headers)
print(r.json())
POST /notification
Allows a user to send a notification email to the given email addresses. A notification email could be HTML or plain text
Body parameter
{
"subject": "string",
"message": "string",
"to": [
"user@example.com"
],
"cc": [
"user@example.com"
],
"bcc": [
"user@example.com"
]
}
Parameters
Name | In | Type | Required | Description |
---|---|---|---|---|
fields | query | array[any] | false | A list of fields that should be returned. Use dot notation to return any subkeys (i.e. myentity.meta.key) |
body | body | Notification | true | none |
Example responses
201 Response
{
"subject": "string",
"message": "string",
"to": [
"user@example.com"
],
"cc": [
"user@example.com"
],
"bcc": [
"user@example.com"
]
}
Responses
Status | Meaning | Description | Schema |
---|---|---|---|
201 | Created | none | Notification |
400 | Bad Request | The request was not validated by the server. The response will contain details regarding the specific fields that were invalid | None |
401 | Unauthorized | The Bearer token was invalid or missing | None |
403 | Forbidden | The Bearer token does not have permission to access this endpoint. This could be because the Bearer token is a user token and the endpoint only accepts requests from bot tokens. | None |
404 | Not Found | The requested resource could not be found | None |
429 | Too Many Requests | The request was throttled by the server rate limiter. | None |
Schemas
Tag
{
"name": "string",
"value": "string"
}
A list of name
/value
pairs for the tags that should be created on this entity
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | The name of the tag (i.e. project_code ) |
value | string | true | none | The value of the tag (i.e. ABC123 ) |
Blueprint
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"schema": {
"property1": "string",
"property2": "string"
},
"entity_type": "item",
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "blueprint"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
guid | string(uuid) | false | read-only | The unique identifier for this entity |
name | string | true | none | The name of this blueprint |
schema | object | true | none | The schema that defines this blueprint |
» additionalProperties | string¦null | false | none | none |
entity_type | string | true | none | The type of entity this schema is for |
meta | object | false | none | A dict of metadata on this entity that you wish to store. |
» additionalProperties | string¦null | false | none | none |
info | object | false | read-only | none |
» created | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» modified | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» entity_type | string | false | none | none |
tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
Enumerated Values
Property | Value |
---|---|
entity_type | item |
entity_type | set |
Status
{
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
message | string | false | none | none |
modified | string(date-time) | false | read-only | none |
Worker
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
guid | string(uuid) | false | read-only | none |
signal | object | false | none | none |
» additionalProperties | boolean | false | none | none |
status | Status | false | none | none |
Bot
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"config": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"host": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "bot",
"credentials": {
"token": "string"
}
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
},
"workers": [
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"signal": {
"property1": true,
"property2": true
},
"status": {
"message": "string",
"modified": "2019-08-24T14:15:22Z"
}
}
],
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
guid | string(uuid) | false | read-only | The unique identifier for this entity |
name | string | true | none | none |
config | object | true | none | none |
» additionalProperties | string¦null | false | none | none |
meta | object | false | none | A dict of metadata on this entity that you wish to store. |
» additionalProperties | string¦null | false | none | none |
host | object | false | none | none |
» additionalProperties | string¦null | false | none | none |
info | object | false | read-only | none |
» created | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» modified | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» entity_type | string | false | none | none |
» credentials | object | false | none | none |
»» token | string | false | none | The qalx authentication token to use when making requests with this bot to the API |
status | Status | false | none | none |
workers | [Worker] | false | read-only | none |
tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
File
{
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
}
A dict of name
for the file you wish to upload
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
name | string | true | none | The file name |
keyfile | string | false | none | The name of the key file used to encrypt this file. |
url | string(uri) | false | read-only | The URL to use to get this item from qalx |
put_url | string(uri) | false | read-only | The URL to use to upload this file to qalx |
Factory
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"status": "deploying",
"plan": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"stage": "string",
"stacks": {
"property1": "string",
"property2": "string"
},
"bots": [
{
"bot": "string",
"code": "string"
}
],
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "factorybuild"
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
guid | string(uuid) | false | read-only | The unique identifier for this entity |
name | string | true | none | The name of this factory |
status | string | false | none | The current status for this factory |
plan | File | true | none | A dict of name for the file you wish to upload |
stage | string | true | none | The stage from the plan this factory is for |
stacks | object | false | none | A map of sector_name:stack_id for the remote stacks on this factory. |
» additionalProperties | string | false | none | none |
bots | [Factory_Bot] | false | none | none |
info | object | false | read-only | none |
» created | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» modified | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» entity_type | string | false | none | none |
meta | object | false | none | A dict of metadata on this entity that you wish to store. |
» additionalProperties | string¦null | false | none | none |
tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
Enumerated Values
Property | Value |
---|---|
status | deploying |
status | deployed |
status | updating |
status | deleting |
FactoryBuildValidation
{
"plan": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
plan | string | true | none | The factory plan as a YAML string |
Group
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"sets": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "group",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
guid | string(uuid) | false | read-only | The unique identifier for this entity |
sets | object | false | none | A map of key:set_guid for the sets on this group |
» additionalProperties | string | false | none | none |
info | object | false | read-only | none |
» created | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» modified | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» entity_type | string | false | none | none |
» archived | boolean | false | none | Has this entity been archived? |
meta | object | false | none | A dict of metadata on this entity that you wish to store. |
» additionalProperties | string¦null | false | none | none |
tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
Item
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"data": {
"property1": "string",
"property2": "string"
},
"file": {
"name": "string",
"keyfile": "string",
"url": "http://example.com",
"put_url": "http://example.com"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "item",
"archived": true
},
"meta": {
"property1": "string",
"property2": "string"
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
guid | string(uuid) | false | read-only | The unique identifier for this entity |
data | object | false | none | An object of data that you want to save. |
» additionalProperties | string¦null | false | none | none |
file | File | false | none | A dict of name for the file you wish to upload |
info | object | false | read-only | none |
» created | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» modified | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» entity_type | string | false | none | none |
» archived | boolean | false | none | Has this entity been archived? |
meta | object | false | none | A dict of metadata on this entity that you wish to store. |
» additionalProperties | string¦null | false | none | none |
tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
Notification
{
"subject": "string",
"message": "string",
"to": [
"user@example.com"
],
"cc": [
"user@example.com"
],
"bcc": [
"user@example.com"
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
subject | string | true | none | none |
message | string | true | none | The email message - either HTML or plaintext |
to | [string] | true | none | none |
cc | [string] | false | none | none |
bcc | [string] | false | none | none |
Queue
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"name": "string",
"parameters": {
"property1": "string",
"property2": "string"
},
"meta": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "queue",
"queue_url": "http://example.com",
"deadletter_queue_url": "http://example.com",
"credentials": {
"ACCESS_KEY_ID": "string",
"SECRET_ACCESS_KEY": "string",
"SESSION_TOKEN": "string",
"EXPIRATION": "2019-08-24T14:15:22Z"
}
},
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
guid | string(uuid) | false | read-only | The unique identifier for this entity |
name | string | true | none | The name of this queue. |
parameters | object | true | none | none |
» additionalProperties | string¦null | false | none | none |
meta | object | false | none | A dict of metadata on this entity that you wish to store. |
» additionalProperties | string¦null | false | none | none |
info | object | false | read-only | none |
» created | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» modified | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» entity_type | string | false | none | none |
» queue_url | string(uri) | false | none | The url of the SQS queue |
» deadletter_queue_url | string(uri) | false | none | The url of the SQS deadletter queue |
» credentials | object | false | none | none |
»» ACCESS_KEY_ID | string | false | none | The AWS access key id to use when connecting to the SQS queue |
»» SECRET_ACCESS_KEY | string | false | none | The AWS secret access key to use when connecting to the SQS queue |
»» SESSION_TOKEN | string | false | none | The AWS session token to use when connecting to the SQS queue |
»» EXPIRATION | string(date-time) | false | none | The datetime that these credentials will expire |
tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
Set
{
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"items": {
"property1": "string",
"property2": "string"
},
"info": {
"created": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"modified": {
"on": "2019-08-24T14:15:22Z",
"by": {
"guid": "ee6a7af7-650d-499b-8e32-58a52ffdb7bc",
"entity": "string"
}
},
"entity_type": "set",
"archived": true
},
"tags": [
{
"name": "string",
"value": "string"
}
],
"meta": {
"property1": "string",
"property2": "string"
}
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
guid | string(uuid) | false | read-only | The unique identifier for this entity |
items | object | false | none | A map of key:item_guid for the items on this set |
» additionalProperties | string | false | none | none |
info | object | false | read-only | none |
» created | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who created this entity. email will be an available key if the entity was created by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» modified | object | false | none | none |
»» on | string(date-time) | false | none | none |
»» by | object | false | none | The user who modified this entity. email will be an available key if the entity was modified by a user (as opposed to a bot) |
»»» guid | string(uuid) | false | none | The unique identifier for the user who modified this entity |
»»» entity | string | false | none | none |
» entity_type | string | false | none | none |
» archived | boolean | false | none | Has this entity been archived? |
tags | [Tag] | false | none | A list of name /value pairs for the tags that should be created on this entity |
meta | object | false | none | A dict of metadata on this entity that you wish to store. |
» additionalProperties | string¦null | false | none | none |
Bot_Replace_Workers
{
"workers": 0
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
workers | integer | true | none | The number of workers that should be on this bot |
Factory_Bot
{
"bot": "string",
"code": "string"
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
bot | string | true | none | none |
code | string | true | none | none |
Validate_Tag
{
"tags": [
{
"name": "string",
"value": "string"
}
]
}
Properties
Name | Type | Required | Restrictions | Description |
---|---|---|---|---|
tags | [Tag] | false | none | [A list of name /value pairs for the tags that should be created on this entity] |