NAV
Python

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

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]