ControlKeeper API Documentation
Overview
The ControlKeeper API is a RESTful service which uses HTTPS methods to access the ControlKeeper data model. JSON is the main data interchange format.
Authentication
The API supports OAuth and uses a ClientId and Client Secret that can be found in your account settings after API access has been enabled on your account.
Requesting an access token
To request an access token, send a POST request to the /token endpoint with the ClientId and Client Secret embedded in the authorization header as ClientId:Client Secret (Base64-encoded) using the Basic scheme, (i.e. header value start with Basic).
The following form-urlcoded POST data is expected:
grant_type | password |
username | <The username of the user requesting the token> |
password | <The passowrd of the user requesting the token> |
The access token is returned via the attribute access_token in the result object.
Calling methods using the access token
In subsequent calls to the API, the access token is sent via the Authorization header using the Bearer scheme.
Overview of API calls
Below is a list of the available API calls and their related entities in the data model.
PartyFilters
Used for filtering parties
| API | Description |
|---|---|
| GET api/PartyFilters/{id} |
Create a new empty filter instance |
Classifications
Represents classifications of parties
| API | Description |
|---|---|
| GET api/Classifications |
Fetch a list of all classifications |
| GET api/Classifications/{id} |
Fetch a specific classification |
| PUT api/Classifications |
Update a classification |
| DELETE api/Classifications/{id} |
Delete a classification |
| POST api/Classifications |
Create a new classification |
Countries
Represents countries for language information in various entities
| API | Description |
|---|---|
| GET api/Countries |
Fetch a list of all countries |
InventoryFilters
Used for filtering inventories
| API | Description |
|---|---|
| GET api/InventoryFilters/{id} |
Create a new empty filter instance |
Positions
Represents positions for users
| API | Description |
|---|---|
| GET api/Positions |
Fetch a list of all positions |
| GET api/Positions/{id} |
Fetch a specific position |
| PUT api/Positions |
Update a position |
| POST api/Positions |
Create a new position |
| DELETE api/Positions/{id} |
Delete a position |
InventoryConditions
Represents conditions for inventories
| API | Description |
|---|---|
| GET api/InventoryConditions |
Fetch a list of all conditions |
| GET api/InventoryConditions/{id} |
Fetch a specific condition |
| PUT api/InventoryConditions |
Update a condition |
| POST api/InventoryConditions |
Create a new condition |
| DELETE api/InventoryConditions/{id} |
Delete a condition |
InventoryTypes
Represents types for inventories
| API | Description |
|---|---|
| GET api/InventoryTypes |
Fetch a list of all types |
| GET api/InventoryTypes/{id} |
Fetch a specific type |
| PUT api/InventoryTypes |
Update a type |
| POST api/InventoryTypes |
Create a new type |
| DELETE api/InventoryTypes/{id} |
Delete a type |
ContractFilters
Used for filtering contracts
| API | Description |
|---|---|
| GET api/ContractFilters/{id} |
Create a new empty filter instance |
Users
Represents users on the account
| API | Description |
|---|---|
| GET api/Users |
Fetch a list of users |
| GET api/Users/{id} |
Fetch a specific user |
| PUT api/Users |
Update a user |
| DELETE api/Users/{id}?inheritUserId={inheritUserId} |
Deletes a user and transfers content to a another user. |
| POST api/Users |
Create a new user |
UserGroups
Represents users on the account
| API | Description |
|---|---|
| GET api/UserGroups |
Fetch a list of usergroups |
| GET api/UserGroups/{id} |
Fetch a specific usergroup |
| PUT api/UserGroups |
Create a usergroup |
| DELETE api/UserGroups/{id} |
Delete a usergroup |
| POST api/UserGroups |
Create a new usergroup |
Parties
Represents counterparties for contracts
| API | Description |
|---|---|
| GET api/Parties?filter={filter}&offset={offset}&max={max} |
Fetch a list of parties with optional filtering and offset |
| GET api/Parties/{id} |
Fetch a specific party |
| PUT api/Parties |
Update a party |
| POST api/Parties |
Create a new party |
| DELETE api/Parties/{id} |
Delete a party |
Categories
Represents categories used in contracts
| API | Description |
|---|---|
| GET api/Categories |
Fetch a list of all categories |
| GET api/Categories/{id} |
Fetch a specific category |
| PUT api/Categories |
Update a category |
| DELETE api/Categories/{id} |
Delete a category |
| POST api/Categories |
Create a new category |
Companies
Represents companies
| API | Description |
|---|---|
| GET api/Companies |
Fetch a list of all companies |
| GET api/Companies/{id} |
Fetch a specific company |
InventoryStates
Represents states for inventories
| API | Description |
|---|---|
| GET api/InventoryStates |
Fetch a list of all locations |
| GET api/InventoryStates/{id} |
Fetch a specific location |
| PUT api/InventoryStates |
Update a location |
| POST api/InventoryStates |
Create a new location |
| DELETE api/InventoryStates/{id} |
Delete a location |
InventoryModels
Represents models for inventories
| API | Description |
|---|---|
| GET api/InventoryModels |
Fetch a list of all models |
| GET api/InventoryModels/{id} |
Fetch a specific model |
| PUT api/InventoryModels |
Update a model |
| POST api/InventoryModels |
Create a new model |
| DELETE api/InventoryModels/{id} |
Delete a model |
Inventories
Represents inventories
| API | Description |
|---|---|
| GET api/Inventories?filter={filter}&offset={offset}&max={max} |
Fetch a list of inventories with optional filtering and offset |
| GET api/Inventories/{id} |
Fetch a specific inventory |
| PUT api/Inventories |
Update an inventory |
| POST api/Inventories |
Create a new inventory |
| DELETE api/Inventories/{id} |
Delete an inventory |
Invoices
Represents invoice data
| API | Description |
|---|---|
| GET api/Invoices?contractId={contractId}&startDate={startDate}&endDate={endDate} |
Fetch all invoice amounts for the specified contract and time interval |
Documents
Represents documents used in various entities
| API | Description |
|---|---|
| GET api/Documents/{id} |
Fetch a specific document |
EntityFields
Represents custom fields on the account
| API | Description |
|---|---|
| GET api/EntityFields |
Fetch a list of all fields |
| GET api/EntityFields/{id} |
Fetch a specific field |
Tags
Represents tags used for various entities
| API | Description |
|---|---|
| GET api/Tags |
Fetch a list of all tags |
| GET api/Tags/{id} |
Fetch a specific tag |
| PUT api/Tags |
Update a tag |
| POST api/Tags |
Create a new tag |
| DELETE api/Tags/{id} |
Delete a tag |
OrgUnits
Represents organizational units used for access control
| API | Description |
|---|---|
| GET api/OrgUnits |
Fetch a list of all orgunits |
| GET api/OrgUnits/{id} |
Fetch a specific orgunit |
| PUT api/OrgUnits |
Update an orgunit |
| POST api/OrgUnits |
Create a new orgunit |
| DELETE api/OrgUnits/{id} |
Delete an orgunit |
ContractTypes
Represents contract types for contracts
| API | Description |
|---|---|
| GET api/ContractTypes |
Fetch a list of all contract types |
| GET api/ContractTypes/{id} |
Fetch a specific contract type |
| PUT api/ContractTypes |
Update a contract type |
| POST api/ContractTypes |
Create a contract type |
| DELETE api/ContractTypes/{id} |
Delete a contract type |
Manufacturers
Represents manufacturers for inventories
| API | Description |
|---|---|
| GET api/Manufacturers |
Fetch a list of all manufacturers |
| GET api/Manufacturers/{id} |
Fetch a specific manufacturer |
| PUT api/Manufacturers |
Update a manufacturer |
| POST api/Manufacturers |
Create a new manufacturer |
| DELETE api/Manufacturers/{id} |
Delete a manufacturer |
Contracts
Represents contracts
| API | Description |
|---|---|
| GET api/Contracts?filter={filter}&offset={offset}&max={max} |
Fetch a list of contracts with optional filtering and offset |
| GET api/Contracts/{id} |
Fetch a specific contract |
| PUT api/Contracts |
Update a contract |
| POST api/Contracts |
Create a new contract |
| DELETE api/Contracts/{id} |
Delete a contract |
ContractExports
Used for exporting contract metadata
| API | Description |
|---|---|
| GET api/ContractExports?filter={filter}&format={format} |
Create an export file of all contract metadata with optional filtering |
InventoryLocations
Represents locations for inventories
| API | Description |
|---|---|
| GET api/InventoryLocations |
Fetch a list of all locations |
| GET api/InventoryLocations/{id} |
Fetch a specific location |
| PUT api/InventoryLocations |
Update a location |
| POST api/InventoryLocations |
Create a new location |
| DELETE api/InventoryLocations/{id} |
Delete a location |
InventoryCategories
Represent categories for inventories
| API | Description |
|---|---|
| GET api/InventoryCategories |
Fetch a list of all categories |
| GET api/InventoryCategories/{id} |
Fetch a specific category |
| PUT api/InventoryCategories |
Update a category |
| POST api/InventoryCategories |
Create a new category |
| DELETE api/InventoryCategories/{id} |
Delete a category |
InventorySuppliers
Represents suppliers for inventories
| API | Description |
|---|---|
| GET api/InventorySuppliers |
Fetch a list of all suppliers |
| GET api/InventorySuppliers/{id} |
Fetch a specific supplier |
| PUT api/InventorySuppliers |
Update a supplier |
| POST api/InventorySuppliers |
Create a new supplier |
| DELETE api/InventorySuppliers/{id} |
Delete a supplier |
EntityLayouts
Represents entity layouts on the account
| API | Description |
|---|---|
| GET api/EntityLayouts |
Fetch a list of all layouts |
| GET api/EntityLayouts/{id} |
Fetch a specific layout |
