ZeyOS Standard REST API API Reference

The ZeyOS Library REST API (or ZeyOS REST API) provides access to almost all of your ZeyOS data and gives you a powerful tool to connect third-party applications and other systems with ZeyOS, without having to write a custom ZeyOS app.

The REST API currently consists of two function groups:

  • Authentication and session management
  • Data access and data manipulation

Notational Conventions

Literal (verbatim) text is formatted like this: Hello world. Please note that it may contain references or placeholders though which will then be documented.

A common placeholder is {platform} which should be replaced with the name of your platform. For example, the base URL for API requests is https://api.zeyos.com/{platform}/1.0/, so if your platform were named sandbox, your API URL would be https://api.zeyos.com/sandbox/1.0/.

Versioning Policy

The API is versioned with a major and a minor version number, making up the API version number.

The major version number may be increased along with the ZeyOS major version if there are semantic changes, while the minor version number may be increased when ZeyOS internals affecting the REST API change while keeping the same ZeyOS version number.

Within the same major and minor version number, we reserve the right to add HTTP headers, new parameters or new API endpoints (a.k.a. routes) without breaking backwards compatibility and to fix privilege escalation and any data leak issues (which may break compatibility if you rely on access to otherwise inaccessible data), which is in contrast to semantic versioning.

We will however not change documented semantics of endpoints, HTTP headers, request parameters specified in the URI query string or the request body for routes from the point on they are first made public and documented.

No assumptions must be made regarding the specific order of properties in a JSON object.

While the REST API may stay the same, the underlying ZeyOS database itself may change its schema on rare occasions (e.g. table or column changes, changes of type identifiers), thereby potentially breaking the REST API indirectly.

If this happens, the broken REST API version will be phased out, unless restoring compatibility through internal API code changes is deemed feasible, at our discretion.

All REST API versions will stay for as long as there are no adverse availability-, security- or data-loss-related issues and no semantic or database schema changes.

Exceptions can be made to maintain or restore availability of ZeyOS, to mitigate attacks or to fix other critical security and data loss situations.

Any other incompatible changes to the REST API or to ZeyOS will be accompanied by a new REST API version.

We will update our corresponding GitHub repositories to document pending changes several weeks in advance whenever possible to give you time to update your systems and apps to prevent breakage and downtime.

We will also provide migration guides to help you transition to newer REST API versions.

Return Values and Error Handling

The REST API currently only returns JSON data and an HTTP status code indicating the outcome of a request.

HTTP status code 200 is used to indicate a successful response, and the result will be a JSON object.

When an error occurs, the HTTP status code will be outside the range of 200 - 399, and the response will be a text message.

We recommend that you treat any response which does not represent a valid JSON object, does not contain the result property or has an error property, or any HTTP status code outside the 200 - 399 range as an error.

Please chech the status codes below in order to handle errors and exceptions properly.

Field selection, filters and queries

The ZeyOS REST API allows you to execute complex queries, including simple joins and composite filters.

Let's take a look at the following example:

Query (query.json):

{
  "fields": {
    "Id": "ID",
    "Name": "lastname",
    "Nickname": "extdata.nickname"
    "Address": "contact.address",
    "Postalcode": "contact.postalcode",
    "Town": "contact.city",
    "SalesAgent": "assigneduser.name"
  },
  "filters": {
    "visibility": 0,
    "contact.country": {"IN": ["DE", "AT", "GB"]},
    2: [
      "OR",
      {"lastmodified": {">": 1524472045}},
      {"contact.lastmodified": {">": 1524472045}}
    ]
  },
  "sort": [
    "+lastname",
    "-contact.country"
  ],
  "limit": 3,
  "offset": 0
}

Request:

$ curl -X POST \
  -H 'Authorization: Bearer YourApiToken' \
  -H "Content-Type: application/json" \
  --data @./query.json \
  https://cloud.zeyos.com/demo/api/v1/accounts/

Response:

[{
    "Id": 2,
    "Name": "BEQ Building Equipment",
    "Nickname": null,
    "Address": "Queensstreet",
    "Postalcode": "12923",
    "Town": "London",
    "Country": "GB",
    "SalesAgent": "Max Mueller"
}, {
    "Id": 15,
    "Name": "CleanTexx",
    "Nickname": null,
    "Address": "Tower Bridge",
    "Postalcode": "12923",
    "Town": "London",
    "Country": "GB",
    "SalesAgent": null
}, {
    "Id": 1,
    "Name": "Lightexx AG",
    "Nickname": null,
    "Address": "Schmittstr. 4",
    "Postalcode": "80172",
    "Town": "Munich",
    "Country": "DE",
    "SalesAgent": null
}]

Field selection

The field selection references all fields you want to have included in your query results. You can either specify your field selection as and array or as an object. Using an object is useful if you want to specify alias names. In above example, we select the field lastname with an alias called name.

If you are not certain what fields are available for which entity, you can either check the entity reference in this document or the DB Schema Documentation.

Besides selecting the entity's own fields, you can also perform simple join operations within the entity's first degree relationships. In order to discover relationships, it's best to check the DB Schema Documentation, it also contains a graphical map of all entity relationships.

Besides related tables you can also select extdata fields. extdata is a concept in ZeyOS which allows for storing additional values for all entities in ZeyOS. Whenever you create a new form field in ZeyOS, the field's value is stored in extdata.

Filters

You can specify composite filters as you would in a regular SQL statement:

filters <array/json> = {
 "field": "value",
 "field2": {"=": "value"},
 "field3": {"<": "value1", ">": "value2"},
 "field4": {"IN": ["value1", "value2"]},
 ["AND/OR/NOT", {...}, {...}]
}

The following filter operators are supported:

  • =: Equals
  • !=, <>: Not equals
  • <: Less than
  • <=: Less than or equal to
  • >: Greater than
  • >=: Greater than or equal to
  • IN: Contains (e.g. "field": {"IN": ["value1", "value2"]})
  • !IN: Does not contain

For strings you can also use the following operators:

  • ~: Matches regular expression
  • ~*: Matches regular expression, case-insensitive
  • !~: Not matches regular expression
  • !~*: Not matches regular expression, case-insensitive
  • ~~: Is like
  • ~~*: Is like, case-insensitive
  • !~~: Not like
  • !~~*: Not like, case-insensitive

Search queries

The query parameter allows to specify a search string, that will be applied to all searchable strings, such as name.

Sorting

You can sort by multiple columns by defining an array of column names.

sort <array/json> = {
 "field1",
 "+field2",
 "-field3"
}

Adding modifiers will set the sorting mode:

  • + for ascending
  • - for descending

Pagination

Sometimes the result size might be too large to be selected through one query. In such cases it makes sense to use pagination to page through the results.

Obviously, the first thing you need to know is the number or records in order to calculate the number of pages. This can be achived throuch the count modifier.

For example:

{
  "count": 1,
  "filters": {
    "visibility": 0,
    "contact.country": {"IN": ["DE", "AT", "GB"]},
    2: [
      "OR",
      {"lastmodified": {">": 1524472045}},
      {"contact.lastmodified": {">": 1524472045}}
    ]
  }
}

Result:

{
  "count":5
}

Now that you have the number of records, you can easily page through the result by using the limit and offset parameters.

Expanding JSON and binary data

Some table columns include JSON data or reference binary files. The expand parameter allows you to specify to load the columns content automatically.

For example:

{
  "fields": [
    "ID",
    "subject",
    "binfile"
  ],
  "expand": [
    "binfile"
  ],
  "limit": 1
}

Request:

$ curl -X POST \
  -H 'Authorization: Bearer YourApiToken' \
  -H "Content-Type: application/json" \
  --data @./query.json \
  https://cloud.zeyos.com/demo/api/v1/messages/

Result:

[{"ID":188,"subject":"Test","binfile":{"content":"UmV0dXJuLVBhdGg6IDx..."}}]

This example will return the entire e-mail message as RFC 822.

API Endpoint
https://cloud.zeyos.com/{INSTANCE}/api/v1
Terms of Service: https://www.zeyos.com/termsofservice
Contact: info@zeyos.com
Schemes: https
Version: v1

Authentication

The ZeyOS REST API is only usable for authenticated users. Authentication is achieved in two ways:

  1. For interal apps - the ZeyOS session: If the user is already logged in to ZeyOS and you are using the REST API within a Weblet, the current ZeyOS session will be used.
  2. For external apps - obtaining a session token

Token authentication relies on ZeyOS's token authentication mechanism, documented in the Auth API documentation.

Once a token has been obtained, you can then use the REST API by including the Authorization header in your request with the method indicator Bearer, a space, the obtained token string, e.g. Authorization: Bearer 2a3e4ec88e66138253a69da3406841fccb1c998e.

Example with CURL:

$ curl -X POST \
  -H 'Authorization: Bearer a749717494cf42aa2fcb7533a950e2a7350d1086' \
  -d "limit=3&fields[0]=ID&fields[1]=lastname&fields[2]=firstname" \
  https://cloud.zeyos.com/demo/api/v1/contacts/

Response:

[{
    "ID": 12198,
    "lastname": "Morris",
    "firstname": "Steve"
}, {
    "ID": 12199,
    "lastname": "Schulz",
    "firstname": "Dirk"
}, {
    "ID": 12200,
    "lastname": "Charlott",
    "firstname": "Sophie"
}]
Obtaining a login token with CURL
$ curl -X POST -i --data 'name=max.power&password=MySecretPwd&identifier=MyDevice&appsecret=ff55c5095a126d66faaa37cd71bc771672c56ec5' https://cloud.zeyos.com/demo/auth/v1/login

Response:

{
  "user": 2,
  "application": 345,
  "token": "a749717494cf42aa2fcb7533a950e2a7360d1086",
  "identifier": "MyDevice",
  "expdate": null
}

session

Session Cookie Authentication ( RFC 6265)

in
cookie
name
ZEYOSID
type
apiKey

token

HTTP Bearer Authentication ( RFC 6750); use the ZeyOS Authentication API 's POST /auth/v1/login to obtain a valid bearer token

scheme
bearer
type
http

general

Get system configuration

GET /config

Return the user-visible system configuration.

200 OK

OK

type
object
401 Unauthorized

Unauthorized

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: text/plain
Response Example (200 OK)
"object"
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get application settings

GET /settings

Return the settings of the application that was used for authentication.

200 OK

OK

type
object
401 Unauthorized

Unauthorized

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Example (200 OK)
"object"
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

accounts

List accounts

POST /accounts

List selected data from all accounts that match the specified filter and search criteria in a specific sort order. Requires permission to accounts.

count
in formData
integer 0, 1 0

Return number of results only (fields, sort, limit, offset and expand have no effect)

distinct
in formData
integer 0, 1 0

Return distinct result set

fields
in formData
object

Select specified fields only; use optional alias as object key

filter
in formData
object

Eliminate results that do not match specified filter criteria

query
in formData
string

Eliminate results that do not match specified query search pattern

sort
in formData
string[]

Return sorted results by specified order of fields; use the minus sign (-) as a prefix to sort by a field in descending instead of ascending order (default)

limit
in formData
integer 1 ≤ x ≤ 10000 1000

Limit to total number of results (defaults to 1000)

offset
in formData
integer (int64) 0

Return results forward from specified offset only

expand
in formData
string[]

Expand content of composite fields (binfile, json or array)

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "assigneduser": 6,
    "contact": 7,
    "creationdate": 872838840,
    "creator": 6,
    "currency": "EUR",
    "customernum": "C-123456",
    "description": "string",
    "excludetax": "integer",
    "firstname": "John",
    "lastmodified": 872838840,
    "lastname": "Doe",
    "locked": "integer",
    "ownergroup": "integer (int32)",
    "suppliernum": "S-123456",
    "type": "integer",
    "visibility": "integer"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new account

PUT /accounts

Create a new account and return it's persistent data. Requires writable permission to accounts.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "assigneduser": 6,
  "contact": 7,
  "creationdate": 872838840,
  "creator": 6,
  "currency": "EUR",
  "customernum": "C-123456",
  "description": "string",
  "excludetax": "integer",
  "firstname": "John",
  "lastmodified": 872838840,
  "lastname": "Doe",
  "locked": "integer",
  "ownergroup": "integer (int32)",
  "suppliernum": "S-123456",
  "type": "integer",
  "visibility": "integer"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete account

DELETE /accounts/{ID}

Permanently delete an existing account by ID. Requires writable permission to accounts.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get account

GET /accounts/{ID}

Return the data of an existing account by ID. Requires permission to accounts.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "assigneduser": 6,
  "contact": 7,
  "creationdate": 872838840,
  "creator": 6,
  "currency": "EUR",
  "customernum": "C-123456",
  "description": "string",
  "excludetax": "integer",
  "firstname": "John",
  "lastmodified": 872838840,
  "lastname": "Doe",
  "locked": "integer",
  "ownergroup": "integer (int32)",
  "suppliernum": "S-123456",
  "type": "integer",
  "visibility": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if account exists

HEAD /accounts/{ID}

Check if an account with ID exists, but do not return it's data. Requires permission to accounts.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing account

PATCH /accounts/{ID}

Update an existing account by ID and return it's persistent data. Requires writable permission to accounts.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "assigneduser": 6,
  "contact": 7,
  "creationdate": 872838840,
  "creator": 6,
  "currency": "EUR",
  "customernum": "C-123456",
  "description": "string",
  "excludetax": "integer",
  "firstname": "John",
  "lastmodified": 872838840,
  "lastname": "Doe",
  "locked": "integer",
  "ownergroup": "integer (int32)",
  "suppliernum": "S-123456",
  "type": "integer",
  "visibility": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

actionsteps

List actionsteps

POST /actionsteps

List selected data from all action steps that match the specified filter and search criteria in a specific sort order. Requires permission to actionsteps.

200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "account": "integer (int32)",
    "actionnum": "A-123456",
    "assigneduser": 6,
    "creationdate": 872838840,
    "creator": 6,
    "date": 872838840,
    "description": "string",
    "duedate": "integer (int64)",
    "effort": "number (int32)",
    "lastmodified": 872838840,
    "name": "My Action Step",
    "ownergroup": "integer (int32)",
    "owneruser": "integer (int32)",
    "status": "integer",
    "task": 7,
    "ticket": "integer (int32)",
    "transaction": "integer (int32)"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new action step

PUT /actionsteps

Create a new action step and return it's persistent data. Requires writable permission to actionsteps.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "account": "integer (int32)",
  "actionnum": "A-123456",
  "assigneduser": 6,
  "creationdate": 872838840,
  "creator": 6,
  "date": 872838840,
  "description": "string",
  "duedate": "integer (int64)",
  "effort": "number (int32)",
  "lastmodified": 872838840,
  "name": "My Action Step",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "status": "integer",
  "task": 7,
  "ticket": "integer (int32)",
  "transaction": "integer (int32)"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete action step

DELETE /actionsteps/{ID}

Permanently delete an existing action step by ID. Requires writable permission to actionsteps.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get action step

GET /actionsteps/{ID}

Return the data of an existing action step by ID. Requires permission to actionsteps.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "account": "integer (int32)",
  "actionnum": "A-123456",
  "assigneduser": 6,
  "creationdate": 872838840,
  "creator": 6,
  "date": 872838840,
  "description": "string",
  "duedate": "integer (int64)",
  "effort": "number (int32)",
  "lastmodified": 872838840,
  "name": "My Action Step",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "status": "integer",
  "task": 7,
  "ticket": "integer (int32)",
  "transaction": "integer (int32)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if action step exists

HEAD /actionsteps/{ID}

Check if an action step with ID exists, but do not return it's data. Requires permission to actionsteps.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing action step

PATCH /actionsteps/{ID}

Update an existing action step by ID and return it's persistent data. Requires writable permission to actionsteps.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "account": "integer (int32)",
  "actionnum": "A-123456",
  "assigneduser": 6,
  "creationdate": 872838840,
  "creator": 6,
  "date": 872838840,
  "description": "string",
  "duedate": "integer (int64)",
  "effort": "number (int32)",
  "lastmodified": 872838840,
  "name": "My Action Step",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "status": "integer",
  "task": 7,
  "ticket": "integer (int32)",
  "transaction": "integer (int32)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

addresses

addresses are associations between accounts and contacts.

List addresses

POST /addresses

List selected data from all addresses that match the specified filter and search criteria in a specific sort order. Requires permission to accounts. Has dependency on account.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "account": 7,
    "contact": 13,
    "creationdate": 872838840,
    "creator": 6,
    "default": "integer",
    "lastmodified": 872838840,
    "type": "integer"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new address

PUT /addresses

Create a new address and return it's persistent data. Requires writable permission to accounts. Has dependency on account.

ID
in formData
integer (int64)

Address ID

creator
in formData
integer (int32)

Creator user ID (defaults to authenticated user on creation)

creationdate
in formData
integer (int64)

Creation date and time as a Unix time stamp (defaults to current date and time on creation)

lastmodified
in formData
integer (int64)

Last modification date and time as a Unix time stamp (auto-reset on modification)

account
in formData
integer (int32)

Account ID ( dependency)

contact
in formData
integer (int32)

Contact ID

type
in formData
integer 0, 1, 2, 3 0

Address type (0=BILLINGSHIPPINGADDR, 1=BILLINGBILLINGADDR, 2=PROCUREMENTSHIPPINGADDR, 3=PROCUREMENTBILLINGADDR)

default
in formData
integer 0, 1 0

Default for this address type

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "account": 7,
  "contact": 13,
  "creationdate": 872838840,
  "creator": 6,
  "default": "integer",
  "lastmodified": 872838840,
  "type": "integer"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete address

DELETE /addresses/{ID}

Permanently delete an existing address by ID. Requires writable permission to accounts. Has dependency on account.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get address

GET /addresses/{ID}

Return the data of an existing address by ID. Requires permission to accounts. Has dependency on account.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "account": 7,
  "contact": 13,
  "creationdate": 872838840,
  "creator": 6,
  "default": "integer",
  "lastmodified": 872838840,
  "type": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if address exists

HEAD /addresses/{ID}

Check if an address with ID exists, but do not return it's data. Requires permission to accounts. Has dependency on account.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing address

PATCH /addresses/{ID}

Update an existing address by ID and return it's persistent data. Requires writable permission to accounts. Has dependency on account.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "account": 7,
  "contact": 13,
  "creationdate": 872838840,
  "creator": 6,
  "default": "integer",
  "lastmodified": 872838840,
  "type": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

applications

Please note: Applications are only read-only and can only be accessed by admin users

List applications

POST /applications

List selected data from all applications that match the specified filter and search criteria in a specific sort order. Requires administrator privilege.

200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "activity": "integer",
    "creationdate": 872838840,
    "creator": 6,
    "identifier": "my_application",
    "lastmodified": 872838840,
    "name": "My Application",
    "vendor": "ZeyOS, Inc.",
    "version": 10000
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get application

GET /applications/{ID}

Return the data of an existing application by ID. Requires administrator privilege.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "activity": "integer",
  "creationdate": 872838840,
  "creator": 6,
  "identifier": "my_application",
  "lastmodified": 872838840,
  "name": "My Application",
  "vendor": "ZeyOS, Inc.",
  "version": 10000
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if application exists

HEAD /applications/{ID}

Check if an application with ID exists, but do not return it's data. Requires administrator privilege.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

appointments

List appointments

POST /appointments

List selected data from all appointments that match the specified filter and search criteria in a specific sort order. Requires permission to calendar.

200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "assigneduser": 6,
    "color": "string",
    "creationdate": 872838840,
    "creator": 6,
    "datefrom": 872838840,
    "daterecurrence": "integer (int64)",
    "dateto": 872842440,
    "description": "string",
    "interval": "integer",
    "lastmodified": 872838840,
    "location": "Office",
    "name": "My Appointment",
    "ownergroup": "integer (int32)",
    "owneruser": "integer (int32)",
    "recurrence": "integer",
    "visibility": "integer"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new appointment

PUT /appointments

Create a new appointment and return it's persistent data. Requires writable permission to calendar.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "assigneduser": 6,
  "color": "string",
  "creationdate": 872838840,
  "creator": 6,
  "datefrom": 872838840,
  "daterecurrence": "integer (int64)",
  "dateto": 872842440,
  "description": "string",
  "interval": "integer",
  "lastmodified": 872838840,
  "location": "Office",
  "name": "My Appointment",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "recurrence": "integer",
  "visibility": "integer"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete appointment

DELETE /appointments/{ID}

Permanently delete an existing appointment by ID. Requires writable permission to calendar.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get appointment

GET /appointments/{ID}

Return the data of an existing appointment by ID. Requires permission to calendar.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "assigneduser": 6,
  "color": "string",
  "creationdate": 872838840,
  "creator": 6,
  "datefrom": 872838840,
  "daterecurrence": "integer (int64)",
  "dateto": 872842440,
  "description": "string",
  "interval": "integer",
  "lastmodified": 872838840,
  "location": "Office",
  "name": "My Appointment",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "recurrence": "integer",
  "visibility": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if appointment exists

HEAD /appointments/{ID}

Check if an appointment with ID exists, but do not return it's data. Requires permission to calendar.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing appointment

PATCH /appointments/{ID}

Update an existing appointment by ID and return it's persistent data. Requires writable permission to calendar.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "assigneduser": 6,
  "color": "string",
  "creationdate": 872838840,
  "creator": 6,
  "datefrom": 872838840,
  "daterecurrence": "integer (int64)",
  "dateto": 872842440,
  "description": "string",
  "interval": "integer",
  "lastmodified": 872838840,
  "location": "Office",
  "name": "My Appointment",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "recurrence": "integer",
  "visibility": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

associations

List associations

POST /associations

List selected data from all associations that match the specified filter and search criteria in a specific sort order. Requires no specific permission.

200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "creationdate": 872838840,
    "creator": 6,
    "entity1": "notes",
    "entity2": "tasks",
    "index1": 7,
    "index2": 13
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new association

PUT /associations

Create a new association and return it's persistent data. Requires no specific permission.

ID
in formData
integer (int64)

Association ID

creator
in formData
integer (int32)

Creator user ID (defaults to authenticated user on creation)

creationdate
in formData
integer (int64)

Creation date and time as a Unix time stamp (defaults to current date and time on creation)

entity1
in formData
string accounts, actionsteps, applications, appointments, campaigns, contacts, contracts, coupons, davservers, dunning, feedservers, groups, items, ledgers, links, mailinglists, mailservers, messages, notes, objects, opportunities, payments, pricelists, projects, resources, services, storages, tasks, tickets, transactions, users, weblets

First canonical entity

entity2
in formData
string accounts, actionsteps, applications, appointments, campaigns, contacts, contracts, coupons, davservers, dunning, feedservers, groups, items, ledgers, links, mailinglists, mailservers, messages, notes, objects, opportunities, payments, pricelists, projects, resources, services, storages, tasks, tickets, transactions, users, weblets

Second canonical entity

index1
in formData
integer (int32)

First entity ID

index2
in formData
integer (int32)

Second entity ID

in

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "creationdate": 872838840,
  "creator": 6,
  "entity1": "notes",
  "entity2": "tasks",
  "index1": 7,
  "index2": 13
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete association

DELETE /associations/{ID}

Permanently delete an existing association by ID. Requires no specific permission.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get association

GET /associations/{ID}

Return the data of an existing association by ID. Requires no specific permission.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "creationdate": 872838840,
  "creator": 6,
  "entity1": "notes",
  "entity2": "tasks",
  "index1": 7,
  "index2": 13
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if association exists

HEAD /associations/{ID}

Check if an association with ID exists, but do not return it's data. Requires no specific permission.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing association

PATCH /associations/{ID}

Update an existing association by ID and return it's persistent data. Requires no specific permission.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "creationdate": 872838840,
  "creator": 6,
  "entity1": "notes",
  "entity2": "tasks",
  "index1": 7,
  "index2": 13
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

campaigns

List campaigns

POST /campaigns

List selected data from all campaigns that match the specified filter and search criteria in a specific sort order. Requires permission to campaigns.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "assigneduser": 6,
    "creationdate": 872838840,
    "creator": 6,
    "datefrom": "integer (int64)",
    "dateto": "integer (int64)",
    "description": "string",
    "lastmodified": 872838840,
    "name": "My Campaign",
    "ownergroup": "integer (int32)",
    "status": "integer",
    "visibility": "integer"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new campaign

PUT /campaigns

Create a new campaign and return it's persistent data. Requires writable permission to campaigns.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "assigneduser": 6,
  "creationdate": 872838840,
  "creator": 6,
  "datefrom": "integer (int64)",
  "dateto": "integer (int64)",
  "description": "string",
  "lastmodified": 872838840,
  "name": "My Campaign",
  "ownergroup": "integer (int32)",
  "status": "integer",
  "visibility": "integer"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete campaign

DELETE /campaigns/{ID}

Permanently delete an existing campaign by ID. Requires writable permission to campaigns.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get campaign

GET /campaigns/{ID}

Return the data of an existing campaign by ID. Requires permission to campaigns.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "assigneduser": 6,
  "creationdate": 872838840,
  "creator": 6,
  "datefrom": "integer (int64)",
  "dateto": "integer (int64)",
  "description": "string",
  "lastmodified": 872838840,
  "name": "My Campaign",
  "ownergroup": "integer (int32)",
  "status": "integer",
  "visibility": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if campaign exists

HEAD /campaigns/{ID}

Check if a campaign with ID exists, but do not return it's data. Requires permission to campaigns.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing campaign

PATCH /campaigns/{ID}

Update an existing campaign by ID and return it's persistent data. Requires writable permission to campaigns.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "assigneduser": 6,
  "creationdate": 872838840,
  "creator": 6,
  "datefrom": "integer (int64)",
  "dateto": "integer (int64)",
  "description": "string",
  "lastmodified": 872838840,
  "name": "My Campaign",
  "ownergroup": "integer (int32)",
  "status": "integer",
  "visibility": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

categories

List categories

POST /categories

List selected data from all categories that match the specified filter and search criteria in a specific sort order. Requires no specific permission.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "creationdate": 872838840,
    "creator": 6,
    "entity": "notes",
    "name": "My Category/My Subcategory",
    "ownergroup": "integer (int32)",
    "owneruser": "integer (int32)"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new category

PUT /categories

Create a new category and return it's persistent data. Requires no specific permission.

ID
in formData
integer (int32)

Category ID

owneruser
in formData
integer (int32)

Owner user ID (PUBLIC if owneruser=null and ownergroup=null)

ownergroup
in formData
integer (int32)

Owner group ID (PUBLIC if owneruser=null and ownergroup=null)

creator
in formData
integer (int32)

Creator user ID (defaults to authenticated user on creation)

creationdate
in formData
integer (int64)

Creation date and time as a Unix time stamp (defaults to current date and time on creation)

entity
in formData
string (at least 1 chars)

Canonical entity

name
in formData
string (at least 1 chars)

Name

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "creationdate": 872838840,
  "creator": 6,
  "entity": "notes",
  "name": "My Category/My Subcategory",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete category

DELETE /categories/{ID}

Permanently delete an existing category by ID. Requires no specific permission.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get category

GET /categories/{ID}

Return the data of an existing category by ID. Requires no specific permission.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "creationdate": 872838840,
  "creator": 6,
  "entity": "notes",
  "name": "My Category/My Subcategory",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if category exists

HEAD /categories/{ID}

Check if a category with ID exists, but do not return it's data. Requires no specific permission.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing category

PATCH /categories/{ID}

Update an existing category by ID and return it's persistent data. Requires no specific permission.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "creationdate": 872838840,
  "creator": 6,
  "entity": "notes",
  "name": "My Category/My Subcategory",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

comments

List comments

POST /comments

List selected data from all comments that match the specified filter and search criteria in a specific sort order. Requires no specific permission. Has dependency on record.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "creationdate": 872838840,
    "creator": 6,
    "record": 7,
    "sender": "John Doe",
    "text": "This is my comment!"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new comment

PUT /comments

Create a new comment and return it's persistent data. Requires the authenticated user to be the creator. Has dependency on record.

ID
in formData
integer (int64)

Comment ID

creator
in formData
integer (int32)

Creator user ID (defaults to authenticated user on creation)

creationdate
in formData
integer (int64)

Creation date and time as a Unix time stamp (defaults to current date and time on creation)

record
in formData
integer (int64)

Record ID ( dependency)

sender
in formData
string

Sender

text
in formData
string

Comment text ( Markdown for rich text representation)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "creationdate": 872838840,
  "creator": 6,
  "record": 7,
  "sender": "John Doe",
  "text": "This is my comment!"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete comment

DELETE /comments/{ID}

Permanently delete an existing comment by ID. Requires the authenticated user to be the creator. Has dependency on record.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get comment

GET /comments/{ID}

Return the data of an existing comment by ID. Requires no specific permission. Has dependency on record.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "creationdate": 872838840,
  "creator": 6,
  "record": 7,
  "sender": "John Doe",
  "text": "This is my comment!"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if comment exists

HEAD /comments/{ID}

Check if a comment with ID exists, but do not return it's data. Requires no specific permission. Has dependency on record.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing comment

PATCH /comments/{ID}

Update an existing comment by ID and return it's persistent data. Requires the authenticated user to be the creator. Has dependency on record.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "creationdate": 872838840,
  "creator": 6,
  "record": 7,
  "sender": "John Doe",
  "text": "This is my comment!"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

components

List components

POST /components

List selected data from all components that match the specified filter and search criteria in a specific sort order. Requires permission to inventory. Has dependency on item.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "amount": "number (double)",
    "component": 13,
    "creationdate": 872838840,
    "creator": 6,
    "item": 7,
    "lastmodified": 872838840,
    "price": "number (double)"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new component

PUT /components

Create a new component and return it's persistent data. Requires writable permission to inventory. Has dependency on item.

ID
in formData
integer (int64)

Component ID

creator
in formData
integer (int32)

Creator user ID (defaults to authenticated user on creation)

creationdate
in formData
integer (int64)

Creation date and time as a Unix time stamp (defaults to current date and time on creation)

lastmodified
in formData
integer (int64)

Last modification date and time as a Unix time stamp (auto-reset on modification)

item
in formData
integer (int32)

Item ID ( dependency)

component
in formData
integer (int32)

Component item ID; must be distinct from item

amount
in formData
number (double) 1

Amount (quantity)

price
in formData
number (double)

Imputed price per unit

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "amount": "number (double)",
  "component": 13,
  "creationdate": 872838840,
  "creator": 6,
  "item": 7,
  "lastmodified": 872838840,
  "price": "number (double)"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete component

DELETE /components/{ID}

Permanently delete an existing component by ID. Requires writable permission to inventory. Has dependency on item.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get component

GET /components/{ID}

Return the data of an existing component by ID. Requires permission to inventory. Has dependency on item.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "amount": "number (double)",
  "component": 13,
  "creationdate": 872838840,
  "creator": 6,
  "item": 7,
  "lastmodified": 872838840,
  "price": "number (double)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if component exists

HEAD /components/{ID}

Check if a component with ID exists, but do not return it's data. Requires permission to inventory. Has dependency on item.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing component

PATCH /components/{ID}

Update an existing component by ID and return it's persistent data. Requires writable permission to inventory. Has dependency on item.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "amount": "number (double)",
  "component": 13,
  "creationdate": 872838840,
  "creator": 6,
  "item": 7,
  "lastmodified": 872838840,
  "price": "number (double)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

contacts

List contacts

POST /contacts

List selected data from all contacts that match the specified filter and search criteria in a specific sort order. Requires permission to contacts.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "address": "123 Main St.",
    "assigneduser": 6,
    "birthdate": "integer (int64)",
    "cell": "+1 123-456-7892",
    "city": "Anytown",
    "company": "Any Company, Inc.",
    "country": "US",
    "creationdate": 872838840,
    "creator": 6,
    "department": "Research & Development",
    "description": "string",
    "email": "john.doe@company.com",
    "email2": "johnny_d@personal.com",
    "fax": "+1 123-456-7893",
    "firstname": "John",
    "lastmodified": 872838840,
    "lastname": "Doe",
    "ownergroup": "integer (int32)",
    "owneruser": "integer (int32)",
    "phone": "+1 123-456-7890",
    "phone2": "+1 123-456-7891",
    "position": "CTO",
    "postalcode": "95060",
    "region": "CA",
    "title": "Dr.",
    "type": "integer",
    "visibility": "integer",
    "website": "http://www.company.com/about/john_doe"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new contact

PUT /contacts

Create a new contact and return it's persistent data. Requires writable permission to contacts.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "address": "123 Main St.",
  "assigneduser": 6,
  "birthdate": "integer (int64)",
  "cell": "+1 123-456-7892",
  "city": "Anytown",
  "company": "Any Company, Inc.",
  "country": "US",
  "creationdate": 872838840,
  "creator": 6,
  "department": "Research & Development",
  "description": "string",
  "email": "john.doe@company.com",
  "email2": "johnny_d@personal.com",
  "fax": "+1 123-456-7893",
  "firstname": "John",
  "lastmodified": 872838840,
  "lastname": "Doe",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "phone": "+1 123-456-7890",
  "phone2": "+1 123-456-7891",
  "position": "CTO",
  "postalcode": "95060",
  "region": "CA",
  "title": "Dr.",
  "type": "integer",
  "visibility": "integer",
  "website": "http://www.company.com/about/john_doe"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete contact

DELETE /contacts/{ID}

Permanently delete an existing contact by ID. Requires writable permission to contacts.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get contact

GET /contacts/{ID}

Return the data of an existing contact by ID. Requires permission to contacts.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "address": "123 Main St.",
  "assigneduser": 6,
  "birthdate": "integer (int64)",
  "cell": "+1 123-456-7892",
  "city": "Anytown",
  "company": "Any Company, Inc.",
  "country": "US",
  "creationdate": 872838840,
  "creator": 6,
  "department": "Research & Development",
  "description": "string",
  "email": "john.doe@company.com",
  "email2": "johnny_d@personal.com",
  "fax": "+1 123-456-7893",
  "firstname": "John",
  "lastmodified": 872838840,
  "lastname": "Doe",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "phone": "+1 123-456-7890",
  "phone2": "+1 123-456-7891",
  "position": "CTO",
  "postalcode": "95060",
  "region": "CA",
  "title": "Dr.",
  "type": "integer",
  "visibility": "integer",
  "website": "http://www.company.com/about/john_doe"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if contact exists

HEAD /contacts/{ID}

Check if a contact with ID exists, but do not return it's data. Requires permission to contacts.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing contact

PATCH /contacts/{ID}

Update an existing contact by ID and return it's persistent data. Requires writable permission to contacts.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "address": "123 Main St.",
  "assigneduser": 6,
  "birthdate": "integer (int64)",
  "cell": "+1 123-456-7892",
  "city": "Anytown",
  "company": "Any Company, Inc.",
  "country": "US",
  "creationdate": 872838840,
  "creator": 6,
  "department": "Research & Development",
  "description": "string",
  "email": "john.doe@company.com",
  "email2": "johnny_d@personal.com",
  "fax": "+1 123-456-7893",
  "firstname": "John",
  "lastmodified": 872838840,
  "lastname": "Doe",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "phone": "+1 123-456-7890",
  "phone2": "+1 123-456-7891",
  "position": "CTO",
  "postalcode": "95060",
  "region": "CA",
  "title": "Dr.",
  "type": "integer",
  "visibility": "integer",
  "website": "http://www.company.com/about/john_doe"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

contacts2contacts

List contacts-to-contacts

POST /contacts2contacts

List selected data from all contacts-to-contacts that match the specified filter and search criteria in a specific sort order. Requires permission to contacts. Has dependencies on contact1 and contact2.

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "contact1": 7,
    "contact2": 13,
    "creationdate": 872838840,
    "creator": 6
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new contact-to-contact

PUT /contacts2contacts

Create a new contact-to-contact and return it's persistent data. Requires writable permission to contacts. Has dependencies on contact1 and contact2.

ID
in formData
integer (int64)

Contact-to-contact ID

creator
in formData
integer (int32)

Creator user ID (defaults to authenticated user on creation)

creationdate
in formData
integer (int64)

Creation date and time as a Unix time stamp (defaults to current date and time on creation)

contact1
in formData
integer (int32)

First contact ID ( dependency)

contact2
in formData
integer (int32)

Second contact ID ( dependency)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "contact1": 7,
  "contact2": 13,
  "creationdate": 872838840,
  "creator": 6
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete contact-to-contact

DELETE /contacts2contacts/{ID}

Permanently delete an existing contact-to-contact by ID. Requires writable permission to contacts. Has dependencies on contact1 and contact2.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get contact-to-contact

GET /contacts2contacts/{ID}

Return the data of an existing contact-to-contact by ID. Requires permission to contacts. Has dependencies on contact1 and contact2.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "contact1": 7,
  "contact2": 13,
  "creationdate": 872838840,
  "creator": 6
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if contact-to-contact exists

HEAD /contacts2contacts/{ID}

Check if a contact-to-contact with ID exists, but do not return it's data. Requires permission to contacts. Has dependencies on contact1 and contact2.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing contact-to-contact

PATCH /contacts2contacts/{ID}

Update an existing contact-to-contact by ID and return it's persistent data. Requires writable permission to contacts. Has dependencies on contact1 and contact2.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "contact1": 7,
  "contact2": 13,
  "creationdate": 872838840,
  "creator": 6
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

contracts

List contracts

POST /contracts

List selected data from all contracts that match the specified filter and search criteria in a specific sort order. Requires permission to contracts.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "account": 7,
    "assigneduser": 6,
    "billingcycle": "integer",
    "contractnum": "N-123456",
    "creationdate": 872838840,
    "creator": 6,
    "currency": "EUR",
    "datecancel": "integer (int64)",
    "datefrom": 872838840,
    "dateto": "integer (int64)",
    "description": "string",
    "exchangerate": "number (double)",
    "lastbilling": "integer (int64)",
    "lastmodified": 872838840,
    "name": "My Contract",
    "ownergroup": "integer (int32)",
    "status": "integer",
    "visibility": "integer"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new contract

PUT /contracts

Create a new contract and return it's persistent data. Requires writable permission to contracts.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "account": 7,
  "assigneduser": 6,
  "billingcycle": "integer",
  "contractnum": "N-123456",
  "creationdate": 872838840,
  "creator": 6,
  "currency": "EUR",
  "datecancel": "integer (int64)",
  "datefrom": 872838840,
  "dateto": "integer (int64)",
  "description": "string",
  "exchangerate": "number (double)",
  "lastbilling": "integer (int64)",
  "lastmodified": 872838840,
  "name": "My Contract",
  "ownergroup": "integer (int32)",
  "status": "integer",
  "visibility": "integer"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete contract

DELETE /contracts/{ID}

Permanently delete an existing contract by ID. Requires writable permission to contracts.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get contract

GET /contracts/{ID}

Return the data of an existing contract by ID. Requires permission to contracts.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "account": 7,
  "assigneduser": 6,
  "billingcycle": "integer",
  "contractnum": "N-123456",
  "creationdate": 872838840,
  "creator": 6,
  "currency": "EUR",
  "datecancel": "integer (int64)",
  "datefrom": 872838840,
  "dateto": "integer (int64)",
  "description": "string",
  "exchangerate": "number (double)",
  "lastbilling": "integer (int64)",
  "lastmodified": 872838840,
  "name": "My Contract",
  "ownergroup": "integer (int32)",
  "status": "integer",
  "visibility": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if contract exists

HEAD /contracts/{ID}

Check if a contract with ID exists, but do not return it's data. Requires permission to contracts.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing contract

PATCH /contracts/{ID}

Update an existing contract by ID and return it's persistent data. Requires writable permission to contracts.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "account": 7,
  "assigneduser": 6,
  "billingcycle": "integer",
  "contractnum": "N-123456",
  "creationdate": 872838840,
  "creator": 6,
  "currency": "EUR",
  "datecancel": "integer (int64)",
  "datefrom": 872838840,
  "dateto": "integer (int64)",
  "description": "string",
  "exchangerate": "number (double)",
  "lastbilling": "integer (int64)",
  "lastmodified": 872838840,
  "name": "My Contract",
  "ownergroup": "integer (int32)",
  "status": "integer",
  "visibility": "integer"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

coupons

List coupons

POST /coupons

List selected data from all coupons that match the specified filter and search criteria in a specific sort order. Requires permission to pricelists.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "activity": "integer",
    "code": "XMAX17",
    "creationdate": 872838840,
    "creator": 6,
    "datefrom": "integer (int64)",
    "dateto": "integer (int64)",
    "description": "string",
    "lastmodified": 872838840,
    "name": "My Coupon",
    "ownergroup": "integer (int32)",
    "taxrate": "number (double)",
    "type": "integer",
    "value": "number (double)"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new coupon

PUT /coupons

Create a new coupon and return it's persistent data. Requires writable permission to pricelists.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "activity": "integer",
  "code": "XMAX17",
  "creationdate": 872838840,
  "creator": 6,
  "datefrom": "integer (int64)",
  "dateto": "integer (int64)",
  "description": "string",
  "lastmodified": 872838840,
  "name": "My Coupon",
  "ownergroup": "integer (int32)",
  "taxrate": "number (double)",
  "type": "integer",
  "value": "number (double)"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete coupon

DELETE /coupons/{ID}

Permanently delete an existing coupon by ID. Requires writable permission to pricelists.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get coupon

GET /coupons/{ID}

Return the data of an existing coupon by ID. Requires permission to pricelists.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "activity": "integer",
  "code": "XMAX17",
  "creationdate": 872838840,
  "creator": 6,
  "datefrom": "integer (int64)",
  "dateto": "integer (int64)",
  "description": "string",
  "lastmodified": 872838840,
  "name": "My Coupon",
  "ownergroup": "integer (int32)",
  "taxrate": "number (double)",
  "type": "integer",
  "value": "number (double)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if coupon exists

HEAD /coupons/{ID}

Check if a coupon with ID exists, but do not return it's data. Requires permission to pricelists.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing coupon

PATCH /coupons/{ID}

Update an existing coupon by ID and return it's persistent data. Requires writable permission to pricelists.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "activity": "integer",
  "code": "XMAX17",
  "creationdate": 872838840,
  "creator": 6,
  "datefrom": "integer (int64)",
  "dateto": "integer (int64)",
  "description": "string",
  "lastmodified": 872838840,
  "name": "My Coupon",
  "ownergroup": "integer (int32)",
  "taxrate": "number (double)",
  "type": "integer",
  "value": "number (double)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

couponcodes

List coupon codes

POST /couponcodes

List selected data from all coupon codes that match the specified filter and search criteria in a specific sort order. Requires permission to pricelists. Has dependency on coupon.

200 OK

OK

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "code": "XMAX17",
    "coupon": 7,
    "creationdate": 872838840,
    "creator": 6,
    "date": 872838840,
    "datefrom": "integer (int64)",
    "dateto": "integer (int64)",
    "flag": "integer",
    "lastmodified": 872838840,
    "transaction": "integer (int32)",
    "value": "number (double)"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new coupon code

PUT /couponcodes

Create a new coupon code and return it's persistent data. Requires writable permission to pricelists. Has dependency on coupon.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "code": "XMAX17",
  "coupon": 7,
  "creationdate": 872838840,
  "creator": 6,
  "date": 872838840,
  "datefrom": "integer (int64)",
  "dateto": "integer (int64)",
  "flag": "integer",
  "lastmodified": 872838840,
  "transaction": "integer (int32)",
  "value": "number (double)"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete coupon code

DELETE /couponcodes/{ID}

Permanently delete an existing coupon code by ID. Requires writable permission to pricelists. Has dependency on coupon.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get coupon code

GET /couponcodes/{ID}

Return the data of an existing coupon code by ID. Requires permission to pricelists. Has dependency on coupon.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "code": "XMAX17",
  "coupon": 7,
  "creationdate": 872838840,
  "creator": 6,
  "date": 872838840,
  "datefrom": "integer (int64)",
  "dateto": "integer (int64)",
  "flag": "integer",
  "lastmodified": 872838840,
  "transaction": "integer (int32)",
  "value": "number (double)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if coupon code exists

HEAD /couponcodes/{ID}

Check if a coupon code with ID exists, but do not return it's data. Requires permission to pricelists. Has dependency on coupon.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing coupon code

PATCH /couponcodes/{ID}

Update an existing coupon code by ID and return it's persistent data. Requires writable permission to pricelists. Has dependency on coupon.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "code": "XMAX17",
  "coupon": 7,
  "creationdate": 872838840,
  "creator": 6,
  "date": 872838840,
  "datefrom": "integer (int64)",
  "dateto": "integer (int64)",
  "flag": "integer",
  "lastmodified": 872838840,
  "transaction": "integer (int32)",
  "value": "number (double)"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

davservers

List DAV servers

POST /davservers

List selected data from all DAV servers that match the specified filter and search criteria in a specific sort order. Requires no specific permission.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "activity": "integer",
    "creationdate": 872838840,
    "creator": 6,
    "ctag": "\"73c5fdd17f180f2126995666b7edc0e3\"",
    "description": "string",
    "lastmodified": 872838840,
    "name": "My DAV Server",
    "ownergroup": "integer (int32)",
    "owneruser": "integer (int32)",
    "recipientgroup": "integer (int32)",
    "recipientuser": "integer (int32)",
    "synctoken": "http://dav.company.com/sync/1234",
    "type": "integer",
    "url": "https://dav.company.com/collection",
    "username": "john.doe"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new DAV server

PUT /davservers

Create a new DAV server and return it's persistent data. Requires no specific permission.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "activity": "integer",
  "creationdate": 872838840,
  "creator": 6,
  "ctag": "\"73c5fdd17f180f2126995666b7edc0e3\"",
  "description": "string",
  "lastmodified": 872838840,
  "name": "My DAV Server",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "recipientgroup": "integer (int32)",
  "recipientuser": "integer (int32)",
  "synctoken": "http://dav.company.com/sync/1234",
  "type": "integer",
  "url": "https://dav.company.com/collection",
  "username": "john.doe"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete DAV server

DELETE /davservers/{ID}

Permanently delete an existing DAV server by ID. Requires no specific permission.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Get DAV server

GET /davservers/{ID}

Return the data of an existing DAV server by ID. Requires no specific permission.

ID
in path
integer

Unique ID

expand
in query
string[]

Expand content of composite fields (binfile, json or array)

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

200 OK

OK

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "activity": "integer",
  "creationdate": 872838840,
  "creator": 6,
  "ctag": "\"73c5fdd17f180f2126995666b7edc0e3\"",
  "description": "string",
  "lastmodified": 872838840,
  "name": "My DAV Server",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "recipientgroup": "integer (int32)",
  "recipientuser": "integer (int32)",
  "synctoken": "http://dav.company.com/sync/1234",
  "type": "integer",
  "url": "https://dav.company.com/collection",
  "username": "john.doe"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Check if DAV server exists

HEAD /davservers/{ID}

Check if a DAV server with ID exists, but do not return it's data. Requires no specific permission.

ID
in path
integer

Unique ID

If-None-Match
in header
string

Return status code 304 on matching entity tag ( RFC 7232)

204 No Content

Exists (No Content)

304 Not Modified

Not Modified

401 Unauthorized

Unauthorized

404 Not Found

Not Found

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Headers (204 No Content)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Update existing DAV server

PATCH /davservers/{ID}

Update an existing DAV server by ID and return it's persistent data. Requires no specific permission.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

200 OK

Successful Update (OK)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

409 Conflict

Non-matching IDs (Conflict)

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
{
  "ID": 1,
  "activity": "integer",
  "creationdate": 872838840,
  "creator": 6,
  "ctag": "\"73c5fdd17f180f2126995666b7edc0e3\"",
  "description": "string",
  "lastmodified": 872838840,
  "name": "My DAV Server",
  "ownergroup": "integer (int32)",
  "owneruser": "integer (int32)",
  "recipientgroup": "integer (int32)",
  "recipientuser": "integer (int32)",
  "synctoken": "http://dav.company.com/sync/1234",
  "type": "integer",
  "url": "https://dav.company.com/collection",
  "username": "john.doe"
}
Response Headers (200 OK)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

dunning

List dunning notices

POST /dunning

List selected data from all dunning notices that match the specified filter and search criteria in a specific sort order. Requires permission to billing, procurement or collection.

200 OK

OK

type
401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (200 OK)
[
  {
    "ID": 1,
    "account": 7,
    "address": "123 Main St.",
    "assigneduser": 6,
    "city": "Anytown",
    "country": "US",
    "creationdate": 872838840,
    "creator": 6,
    "date": 872838840,
    "duedate": "integer (int64)",
    "dunningnum": "D-0117.12345",
    "lastmodified": 872838840,
    "level": "integer",
    "ownergroup": "integer (int32)",
    "postalcode": "95060",
    "recipient": "Bad Customer, Inc.",
    "region": "CA",
    "status": "integer"
  }
]
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Create new dunning notice

PUT /dunning

Create a new dunning notice and return it's persistent data. Requires writable permission to billing, procurement or collection.

body
in formData
object

(no description)

201 Created

Successful Creation (Created)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

409 Conflict

ID Present (Conflict)

500 Internal Server Error

Runtime Error (Internal Server Error)

type
string
Response Content-Types: application/json
Response Example (201 Created)
{
  "ID": 1,
  "account": 7,
  "address": "123 Main St.",
  "assigneduser": 6,
  "city": "Anytown",
  "country": "US",
  "creationdate": 872838840,
  "creator": 6,
  "date": 872838840,
  "duedate": "integer (int64)",
  "dunningnum": "D-0117.12345",
  "lastmodified": 872838840,
  "level": "integer",
  "ownergroup": "integer (int32)",
  "postalcode": "95060",
  "recipient": "Bad Customer, Inc.",
  "region": "CA",
  "status": "integer"
}
Response Headers (201 Created)
ETag

Entity tag ( RFC 7232)

object
Response Headers (401 Unauthorized)
WWW-Authenticate

Preferred authentication scheme ( RFC 7235)

object
Response Example (500 Internal Server Error)
"I am afraid I can't do that Dave!"

Delete dunning notice

DELETE /dunning/{ID}

Permanently delete an existing dunning notice by ID. Requires writable permission to billing, procurement or collection.

ID
in path
integer

Unique ID

If-Match
in header
string

Return status code 412 on non-matching entity tag ( RFC 7232)

204 No Content

Successful Deletion (No Content)

401 Unauthorized

Unauthorized

403 Forbidden

Forbidden

404 Not Found

Not Found

412 Precondition Failed

Non-matching ETag (Precondition Failed)

500 Internal Server