Download OpenAPI specification:Download
KPI Sense API interface to manage users, reports, and data integrations
Accounting consists of managing company accounts and their respective reports. Report data points are also kept track here.
Get the Company Accounts Sources for a given company
company_pk required | int Example: 2 The primary key of the company |
[- {
- "unique_name": "qbo",
- "display_name": "Quickbooks Online",
- "method": "cash",
- "upload_format": "file",
- "entity_pk": 34
}
]
A session contains a token, which is a JSON Web Token. The token is created with a user's signin credentials.
This token can be used to authenticate to the API. In addition use the token to then authenticate for further requests to the KPI Sense API.
The token should be kept private, but could be stored on the user's browser client to simulate a "session".
Unless explicitly stated A Bearer Token is needed to be set in the Authorization header of every API call.
Authenticate and retrieve a JWT token to use in future api calls.
username required | string The username of the user to authenticate |
password required | string The password associated with the users account. |
{- "username": "demo_user",
- "password": "p@ssword123"
}
{- "access": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoiYWNjZXNzIiwiZXhwIjoxNjI1MTg0OTAwLCJqdGkiOiI1MGY0YzlmOGJmN2U0YzFmYTM2ZGM5YzhkYzU3ZTEyNCIsInVzZXJfaWQiOjEsInVzZXJuYW1lIjoibWhlbW1pbmdzZW4iLCJlbWFpbCI6Im1oZW1taW5nc2VuQGtwaXNlbnNlLmNvbSIsImlzX3N0YWZmIjp0cnVlLCJmdWxsX25hbWUiOiJNYXRoZXcgSGVtbWluZ3NlbiJ9.UnBEu_d6ak_3qwbRHqTOcKKeX0mexWIDkyagtW0AN0s\n",
- "refresh": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ0b2tlbl90eXBlIjoicmVmcmVzaCIsImV4cCI6MTYyNjM5NDIwMCwianRpIjoiZjk2NTUyMjA5NzY1NDhjNzgyNjdkOTMwOWI1YTMwNTgiLCJ1c2VyX2lkIjoxLCJ1c2VybmFtZSI6Im1oZW1taW5nc2VuIiwiZW1haWwiOiJtaGVtbWluZ3NlbkBrcGlzZW5zZS5jb20iLCJpc19zdGFmZiI6dHJ1ZSwiZnVsbF9uYW1lIjoiTWF0aGV3IEhlbW1pbmdzZW4ifQ.AHD0hHwJLxlGfiw413CYBB55UAo3FzSy9kHXDTB51l0\n"
}
Retrieves the JWT Access and Refresh tokens for the imitated user
{- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
- "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c"
}
Company information detailing specifics related to a company's entities, basic information, etc.
{- "pk": 2,
- "name": "Company 1",
- "partner": {
- "pk": 0,
- "name": "KPI Sense",
- "is_active": true,
- "created_at": null,
- "modified_at": null
}, - "currency_id": 1,
- "implemented_by_kpi": true,
- "is_active": true,
- "fiscal_year_start": {
- "month": 1,
- "day": 1
}, - "company_investor_profile": {
- "year_founded": 2016,
- "city": "New York",
- "state": "NY",
- "country": "US",
- "industry": "Professional Services",
- "latest_funding_round": 4,
- "seeking_funding_amount_min": "75000",
- "seeking_funding_amount_max": "60000000",
- "annual_recurring_revenue": "78000000",
- "annual_revenue_growth_rate": "123.00",
- "num_employees": 43,
- "description": "A Demo Company specializes on providing out of the box technology to technologists looking to create quick and streamlined video and prototype demos. A Demo Company is looking for additional funding to expand our offerings and begin providing customizable tools to new clients",
- "company_contact_name": "Jonathan Smith",
- "company_contact_email": "jon@adc.com",
- "is_seeking_investor_matches": true
}, - "company_investor_data_package_link": {
- "link": "/api/v1/companies/2/investors/data_package"
}
}
Update a company
pk required | int The id of the Company. |
company_name | string The name of the Company. |
currency_id | integer The id of the currency associated with the company. |
implemented_by_kpi | boolean If the company was implemented by KPISENSE. |
year_founded | integer The year the company was founded. |
city | string The City the company is located. |
state | string The state the company is located. |
country | string The country the company is located. |
industry | string The Industry the company is a part of. |
latest_funding_round | integer The last Funding round the company has reached. |
seeking_funding_amount_min | integer The minimum amount a company is seeking for an investment. |
seeking_funding_amount_max | integer The maximum amount a company is seeking for an investment. |
annual_recurring_revenue | integer The revenue the company makes Annually. |
annual_revenue_growth_rate | integer The percent the companies revenue has grown/shrunk. |
num_employees | integer The number of employees at the company. |
description | string The description of the company |
company_contact_name | string The name of the Person who is the contact for the company. |
company_contact_email | string The email of the Person who is the contact for the company. |
is_seeking_investor_matches | boolean If the company is looking for investors or not. |
{- "pk": 2,
- "company_name": "Company Forecast Scenario 1",
- "currency_id": 1,
- "implemented_by_kpi": true,
- "year_founded": 2020,
- "city": "Chicago",
- "state": "Illinois",
- "country": "United States",
- "industry": "Technology",
- "latest_funding_round": 1,
- "seeking_funding_amount_min": 10000,
- "seeking_funding_amount_max": 100000,
- "annual_recurring_revenue": 10000,
- "annual_revenue_growth_rate": 0.25,
- "num_employees": 10,
- "description": "A wonderful Company",
- "company_contact_name": "Fred",
- "company_contact_email": "Fred@example.com",
- "is_seeking_investor_matches": true
}
{- "id": 5
}
{- "data": [
- {
- "pk": 2,
- "name": "Entity 1",
- "parent_entity_id": 1,
- "company": {
- "pk": 2,
- "name": "Company 1",
- "partner": {
- "pk": 0,
- "name": "KPI Sense",
- "is_active": true,
- "created_at": null,
- "modified_at": null
}, - "currency_id": 1,
- "implemented_by_kpi": true,
- "is_active": true,
- "fiscal_year_start": {
- "month": 1,
- "day": 1
}, - "company_investor_profile": {
- "year_founded": 2016,
- "city": "New York",
- "state": "NY",
- "country": "US",
- "industry": "Professional Services",
- "latest_funding_round": 4,
- "seeking_funding_amount_min": "75000",
- "seeking_funding_amount_max": "60000000",
- "annual_recurring_revenue": "78000000",
- "annual_revenue_growth_rate": "123.00",
- "num_employees": 43,
- "description": "A Demo Company specializes on providing out of the box technology to technologists looking to create quick and streamlined video and prototype demos. A Demo Company is looking for additional funding to expand our offerings and begin providing customizable tools to new clients",
- "company_contact_name": "Jonathan Smith",
- "company_contact_email": "jon@adc.com",
- "is_seeking_investor_matches": true
}, - "company_investor_data_package_link": {
- "link": "/api/v1/companies/2/investors/data_package"
}
}, - "is_active": true
}
], - "total": 1
}
Retrieves a list of investors who have and do not have permissions to view a given company given a company id.
{- "data": [
- {
- "investor_name": "Happy Investment Partners, LP",
- "investor_pk": 1,
- "can_view": true
}, - {
- "investor_name": "Super Investment Partners, LP",
- "investor_pk": 2,
- "can_view": false
}
], - "page_num": 1,
- "num_pages": 1
}
Company Contracts requires a Company Customer and Company Product.
Contracts are unique and there can be no exact duplicates
Creates a company contract
company_pk required | int Example: 2 The primary key of the company |
product_uuid required | string The uuid assocaited with a product |
customer_uuid required | string The uuid assocaited with a customer |
recurring required | boolean If "True" contract will recurr after the specified end date |
start_date required | date Start date of the contract |
end_date required | date End date of the contract |
amount required | decimal Total amount charged for all instances of this contract |
billed_date required | date or null Billed date of the contract |
invoice_number required | string or null Invoice number for the contract |
rate required | int or null Rate charged for each contract |
quantity required | int or null Number of times this contract is being charged |
active required | boolean If "True" company contract is currently active |
currency required | string Currency being used for the contract |
{- "product_uuid": "07351d39-753f-45c8-9dc3-93bb8b590710",
- "customer_uuid": "360c9d77-f5fe-495a-816a-baf8f5fc53b7",
- "recurring": true,
- "start_date": "2021-03-01",
- "end_date": "2021-05-01",
- "amount": "240.00",
- "billed_date": "2021-03-01",
- "invoice_number": "101",
- "rate": 50,
- "quantity": 50,
- "active": true,
- "currency": "USD"
}
{- "contract_uuid": "13018242-cefb-479f-a0a7-49cd1ba8ccc4",
- "customer": {
- "customer_uuid": 2,
- "name": "Customer 1",
- "customer_identifier": "Cust1",
- "active": true
}, - "product": {
- "product_uuid": "13018242-cefb-479f-a0a7-49cd1ba8ccc4",
- "name": "Monthly Service",
- "product_code": "MSF1",
- "description": "Standard monthly service fee",
- "active": true
}, - "recurring": true,
- "start_date": "2021-03-01",
- "end_date": "2021-05-01",
- "amount": "240.00",
- "billed_date": "2021-03-01",
- "invoice_number": "101",
- "rate": 50,
- "quantity": 50,
- "active": true,
- "currency": "USD"
}
Post multiple contracts at once
company_pk required | int Example: 2 The primary key of the company |
Name required | any Customer name on contract upload |
Customer ID | any or null Customer ID on contract upload |
Product Type required | any Product name on contract upload |
Product Code | any or null Product ID on contract upload |
Product Description | any or null Description for product if new product |
Recurring required | any If "True" contract will recurr after the specified end date |
Start Date required | any Start date of the contract |
End Date required | any End date of the contract |
Amount required | any Total amount charged for all instances of this contract |
Billed Date | any or null Billed date of the contract |
Rate | any or null Rate charged for each contract |
Quantity | any or null Number of times this contract is being charged |
Invoice Number | any or null Invoice number for the contract |
Currency required | any Currency being used for the contract |
{- "Success": "success",
- "Invalid rows": [
- {
- "customer_name": "Customer 1",
- "customer_id": "Cust1",
- "product_name": "Monthly Service",
- "product_code": "MSF1",
- "product_description": "Standard monthly service fee",
- "recurring": true,
- "start_date": "2021-03-01",
- "end_date": "2021-05-01",
- "amount": 240,
- "billed_date": "2021-03-01",
- "rate": 50,
- "quantity": 50,
- "invoice_number": "101",
- "currency": "USD",
- "error": "Row 3: start date is after end date."
}
]
}
Update a Contract
contract_pk required | string Example: 01802cca-596c-40c2-9ddc-3662d6d8f6d8 The uuid assocaited with the contract |
company_pk required | int Example: 2 The primary key of the company |
product_uuid required | string The uuid assocaited with a product |
customer_uuid required | string The uuid assocaited with a customer |
recurring required | boolean If "True" contract will recurr after the specified end date |
start_date required | date Start date of the contract |
end_date required | date End date of the contract |
amount required | decimal Total amount charged for all instances of this contract |
billed_date required | date or null Billed date of the contract |
invoice_number required | string or null Invoice number for the contract |
rate required | int or null Rate charged for each contract |
quantity required | int or null Number of times this contract is being charged |
active required | boolean If "True" company contract is currently active |
currency required | string Currency being used for the contract |
{- "product_uuid": "07351d39-753f-45c8-9dc3-93bb8b590710",
- "customer_uuid": "360c9d77-f5fe-495a-816a-baf8f5fc53b7",
- "recurring": true,
- "start_date": "2021-03-01",
- "end_date": "2021-05-01",
- "amount": "240.00",
- "billed_date": "2021-03-01",
- "invoice_number": "101",
- "rate": 50,
- "quantity": 50,
- "active": true,
- "currency": "USD"
}
{- "contract_uuid": "13018242-cefb-479f-a0a7-49cd1ba8ccc4",
- "customer": {
- "customer_uuid": 2,
- "name": "Customer 1",
- "customer_identifier": "Cust1",
- "active": true
}, - "product": {
- "product_uuid": "29c16fc1-220f-4fb6-8e62-960b34441721",
- "name": "Monthly Service",
- "product_code": "MSF1",
- "description": "Standard monthly service fee",
- "active": true
}, - "recurring": true,
- "start_date": "2021-03-01",
- "end_date": "2021-05-01",
- "amount": "240.00",
- "billed_date": "2021-03-01",
- "invoice_number": "101",
- "rate": 50,
- "quantity": 50,
- "active": true,
- "currency": "USD"
}
Retrieves a list of all Contracts for a specific company.
company_pk required | int Example: 2 The primary key of the company |
[- {
- "contract_uuid": "13018242-cefb-479f-a0a7-49cd1ba8ccc4",
- "customer": {
- "customer_uuid": 2,
- "name": "Customer 1",
- "customer_identifier": "Cust1",
- "active": true
}, - "product": {
- "product_uuid": "13018242-cefb-479f-a0a7-49cd1ba8ccc4",
- "name": "Monthly Service",
- "product_code": "MSF1",
- "description": "Standard monthly service fee",
- "active": true
}, - "company_pk": 2,
- "recurring": true,
- "start_date": "2021-03-01",
- "end_date": "2021-05-01",
- "amount": "240.00",
- "billed_date": "2021-03-01",
- "invoice_number": "101",
- "rate": 50,
- "quantity": 50,
- "active": true,
- "currency": "USD"
}
]
Updates any amount of contracts to active = "false"
company_pk required | int Example: 2 The primary key of the company |
contracts | Array of strings Array of contracts to be deleted |
{- "contracts": [
- "02229c85-1ee4-49c4-8e15-9c446b2951a7",
- "01802cca-596c-40c2-9ddc-3662d6d8f6d8"
]
}
{- "total_updated": 2
}
Creates a company customer
company_pk required | int Example: 2 The primary key of the company |
customer_name required | string Name of the customer |
customer_id required | string or null Code for referencing the customer |
{- "customer_name": "Customer 1",
- "customer_id": "Cust1"
}
{- "customer_uuid": "360c9d77-f5fe-495a-816a-baf8f5fc53b7",
- "name": "Customer 1",
- "customer_identifier": "Cust1",
- "active": true
}
Retrieves a list of all customers for a specific company.
company_pk required | int Example: 2 The primary key of the company |
[- {
- "customer_uuid": 2,
- "name": "Customer 1",
- "customer_identifier": "Cust1",
- "active": true
}
]
Creates a company product
company_pk required | int Example: 2 The primary key of the company |
product_name required | string Name of the product |
product_description required | string or null Description of the product |
prodcut_code required | string or null Code for referencing the product |
{- "product_name": "Monthly Service",
- "product_description": "Standard monthly service fee",
- "prodcut_code": "MSF1"
}
{- "product_uuid": "07351d39-753f-45c8-9dc3-93bb8b590710",
- "name": "Monthly Service",
- "product_code": "MSF1",
- "description": "Standard monthly service fee",
- "active": true
}
Retrieves a list of all products for a specific company.
company_pk required | int Example: 2 The primary key of the company |
[- {
- "product_uuid": "13018242-cefb-479f-a0a7-49cd1ba8ccc4",
- "name": "Monthly Service",
- "product_code": "MSF1",
- "description": "Standard monthly service fee",
- "active": true
}
]
Groupings consists of one parent grouping and many child groupings.
A grouping and its customer are unique, no customer can be a part of 2 grouping.
Create a parent or child grouping.
company_pk required | int Example: 2 The primary key of the company |
customer_uuid required | string The uuid associated with a customer. |
{- "customer_uuid": "80818220-aaef-4e29-ab60-bb9cadada8a6"
}
{- "pk": 1,
- "company": 1,
- "customer_name": "John Smith",
- "customer_uuid": "80818220-aaef-4e29-ab60-bb9cadada8a6"
}
Update a parent or child grouping.
company_pk required | int Example: 2 The primary key of the company |
customer_uuid required | string The uuid associated with a customer. |
parent_grouping_pk required | int The pk associated with the parent grouping. |
{- "customer_uuid": "80818220-aaef-4e29-ab60-bb9cadada8a6",
- "parent_grouping_pk": 1
}
{- "pk": 1,
- "company": 1,
- "customer_name": "John Smith",
- "customer_uuid": "80818220-aaef-4e29-ab60-bb9cadada8a6"
}
Delete a parent or child grouping.
company_pk required | int Example: 2 The primary key of the company |
parent_grouping_pk required | int The pk associated with a parent grouping. |
{- "parent_grouping_pk": 1
}
{- "success": "success"
}
Retrieves a list of parent and child groupings for a specific company.
company_pk required | int Example: 2 The primary key of the company |
[- [
- {
- "parent_grouping": {
- "pk": 1,
- "company": 1,
- "customer_name": "John Smith",
- "customer_uuid": "80818220-aaef-4e29-ab60-bb9cadada8a6"
}, - "child_groupings": [
- {
- "pk": 1,
- "parent_grouping": 1,
- "customer_name": "John Smith",
- "customer_uuid": "80818220-aaef-4e29-ab60-bb9cadada8a6"
}
]
}
]
]
Create a dashboard for a specified company
name required | string The name of the dashboard. |
company_id required | int The id of the company assocaited with the dashboard. |
panels required | array An array of dashboard panel configurations. |
widgets required | array An array of dashboard widget configurations. |
{- "name": "A Test Board",
- "company_id": 2,
- "panels": [
- {
- "id": "layout_749",
- "row": 0,
- "col": 2,
- "sizeX": 4,
- "sizeY": 4,
- "minSizeX": 1,
- "minSizeY": 1,
- "maxSizeX": null,
- "maxSizeY": null
}
], - "widgets": [
- {
- "title": "Column Chart Widget",
- "subtitle": "Subtitle Text",
- "type": "columnChartWidget",
- "chartType": "column",
- "panel_id": "layout_749",
- "dashboardReport": {
- "basicInfo": {
- "panel_id": "layout_749",
- "type": "columnchart",
- "title": null,
- "category": "Summary Financial Metrics",
- "fields": [
- "Cash Balance at End of Month"
]
}, - "chartSettings": {
- "margin": {
- "top": 20
}, - "chartArea": {
- "border": {
- "width": 0
}
}, - "legendSettings": {
- "visible": true,
- "textStyle": {
- "fontFamily": "Poppins",
- "size": "12px",
- "fontWeight": "Normal",
- "color": "#869ab8"
}, - "padding": 12
}, - "crosshairSettings": {
- "enable": true,
- "lineType": "Horizontal",
- "line": {
- "width": 1,
- "color": "#707070"
}, - "dashArray": "2, 2"
}
}, - "primaryXAxis": {
- "rangePadding": "None",
- "valueType": "Category",
- "interval": 1,
- "majorGridLines": {
- "width": 0
}, - "minorGridLines": {
- "width": 0
}, - "majorTickLines": {
- "width": 0
}, - "minorTickLines": {
- "width": 0
}, - "stripLines": [
- {
- "size": 0,
- "sizeType": "Auto",
- "start": 0,
- "end": 0,
- "text": "",
- "color": "",
- "visible": false,
- "zIndex": "Behind",
- "opacity": 1,
- "dashArray": ""
}
], - "crosshairTooltip": {
- "enable": false,
- "fill": "#707070"
}, - "labelStyle": {
- "color": "#869ab8",
- "fontFamily": "Poppins",
- "fontWeight": "Bold"
}
}, - "primaryYAxis": {
- "rangePadding": "Round",
- "majorGridLines": {
- "width": 1
}, - "minorGridLines": {
- "width": 0
}, - "majorTickLines": {
- "width": 0
}, - "minorTickLines": {
- "width": 0
}, - "lineStyle": {
- "width": 0
}, - "labelStyle": {
- "color": "#869ab8",
- "fontFamily": "Poppins",
- "fontWeight": "Normal"
}, - "stripLines": [
- {
- "visible": true,
- "size": 2,
- "sizeType": "Pixel",
- "start": 15,
- "end": 22,
- "text": "Good",
- "color": "#ff512f",
- "zIndex": "Behind",
- "opacity": 0.5,
- "dashArray": "6, 4"
}
], - "crosshairTooltip": {
- "enable": true,
- "fill": "#707070",
- "textStyle": {
- "fontFamily": "Poppins",
- "size": "11px"
}
}
}, - "seriesSettings": {
- "marker": {
- "visible": false,
- "width": 5,
- "height": 5,
- "shape": "Circle",
- "fill": "#cccccc",
- "border": {
- "width": 0.5,
- "color": "#0096FF"
}
}, - "tooltip": {
- "enable": false,
- "fadeOutDuration": 0,
- "fill": "#108EFF",
- "textStyle": {
- "color": "#FFFFFF",
- "fontFamily": "Poppins",
- "size": "10px"
}, - "enableMarker": false
}
}, - "series": [
- {
- "name": "",
- "fill": "#108EFF"
}
]
}
}
]
}
{- "id": 1
}
[- {
- "pk": 1,
- "name": "A Test Board",
- "panels": [
- {
- "id": "layout_749",
- "row": 0,
- "col": 2,
- "sizeX": 4,
- "sizeY": 4,
- "minSizeX": 1,
- "minSizeY": 1,
- "maxSizeX": null,
- "maxSizeY": null
}
], - "widgets": [
- {
- "title": "Column Chart Widget",
- "subtitle": "Subtitle Text",
- "type": "columnChartWidget",
- "chartType": "column",
- "panel_id": "layout_749",
- "dashboardReport": {
- "basicInfo": {
- "panel_id": "layout_749",
- "type": "columnchart",
- "title": null,
- "category": "Summary Financial Metrics",
- "fields": [
- "Cash Balance at End of Month"
]
}, - "chartSettings": {
- "margin": {
- "top": 20
}, - "chartArea": {
- "border": {
- "width": 0
}
}, - "legendSettings": {
- "visible": true,
- "textStyle": {
- "fontFamily": "Poppins",
- "size": "12px",
- "fontWeight": "Normal",
- "color": "#869ab8"
}, - "padding": 12
}, - "crosshairSettings": {
- "enable": true,
- "lineType": "Horizontal",
- "line": {
- "width": 1,
- "color": "#707070"
}, - "dashArray": "2, 2"
}
}, - "primaryXAxis": {
- "rangePadding": "None",
- "valueType": "Category",
- "interval": 1,
- "majorGridLines": {
- "width": 0
}, - "minorGridLines": {
- "width": 0
}, - "majorTickLines": {
- "width": 0
}, - "minorTickLines": {
- "width": 0
}, - "stripLines": [
- {
- "size": 0,
- "sizeType": "Auto",
- "start": 0,
- "end": 0,
- "text": "",
- "color": "",
- "visible": false,
- "zIndex": "Behind",
- "opacity": 1,
- "dashArray": ""
}
], - "crosshairTooltip": {
- "enable": false,
- "fill": "#707070"
}, - "labelStyle": {
- "color": "#869ab8",
- "fontFamily": "Poppins",
- "fontWeight": "Bold"
}
}, - "primaryYAxis": {
- "rangePadding": "Round",
- "majorGridLines": {
- "width": 1
}, - "minorGridLines": {
- "width": 0
}, - "majorTickLines": {
- "width": 0
}, - "minorTickLines": {
- "width": 0
}, - "lineStyle": {
- "width": 0
}, - "labelStyle": {
- "color": "#869ab8",
- "fontFamily": "Poppins",
- "fontWeight": "Normal"
}, - "stripLines": [
- {
- "visible": true,
- "size": 2,
- "sizeType": "Pixel",
- "start": 15,
- "end": 22,
- "text": "Good",
- "color": "#ff512f",
- "zIndex": "Behind",
- "opacity": 0.5,
- "dashArray": "6, 4"
}
], - "crosshairTooltip": {
- "enable": true,
- "fill": "#707070",
- "textStyle": {
- "fontFamily": "Poppins",
- "size": "11px"
}
}
}, - "seriesSettings": {
- "marker": {
- "visible": false,
- "width": 5,
- "height": 5,
- "shape": "Circle",
- "fill": "#cccccc",
- "border": {
- "width": 0.5,
- "color": "#0096FF"
}
}, - "tooltip": {
- "enable": false,
- "fadeOutDuration": 0,
- "fill": "#108EFF",
- "textStyle": {
- "color": "#FFFFFF",
- "fontFamily": "Poppins",
- "size": "10px"
}, - "enableMarker": false
}
}, - "series": [
- {
- "name": "",
- "fill": "#108EFF"
}
]
}
}
]
}
]
Updates a specfic dashboard for a company
name required | string The name of the dashboard. |
panels required | array An array of dashboard panel configurations. |
widgets required | array An array of dashboard widget configurations. |
{- "name": "A Test Board",
- "panels": [
- {
- "id": "layout_749",
- "row": 0,
- "col": 2,
- "sizeX": 4,
- "sizeY": 4,
- "minSizeX": 1,
- "minSizeY": 1,
- "maxSizeX": null,
- "maxSizeY": null
}
], - "widgets": [
- {
- "title": "Column Chart Widget",
- "subtitle": "Subtitle Text",
- "type": "columnChartWidget",
- "chartType": "column",
- "panel_id": "layout_749",
- "dashboardReport": {
- "basicInfo": {
- "panel_id": "layout_749",
- "type": "columnchart",
- "title": null,
- "category": "Summary Financial Metrics",
- "fields": [
- "Cash Balance at End of Month"
]
}, - "chartSettings": {
- "margin": {
- "top": 20
}, - "chartArea": {
- "border": {
- "width": 0
}
}, - "legendSettings": {
- "visible": true,
- "textStyle": {
- "fontFamily": "Poppins",
- "size": "12px",
- "fontWeight": "Normal",
- "color": "#869ab8"
}, - "padding": 12
}, - "crosshairSettings": {
- "enable": true,
- "lineType": "Horizontal",
- "line": {
- "width": 1,
- "color": "#707070"
}, - "dashArray": "2, 2"
}
}, - "primaryXAxis": {
- "rangePadding": "None",
- "valueType": "Category",
- "interval": 1,
- "majorGridLines": {
- "width": 0
}, - "minorGridLines": {
- "width": 0
}, - "majorTickLines": {
- "width": 0
}, - "minorTickLines": {
- "width": 0
}, - "stripLines": [
- {
- "size": 0,
- "sizeType": "Auto",
- "start": 0,
- "end": 0,
- "text": "",
- "color": "",
- "visible": false,
- "zIndex": "Behind",
- "opacity": 1,
- "dashArray": ""
}
], - "crosshairTooltip": {
- "enable": false,
- "fill": "#707070"
}, - "labelStyle": {
- "color": "#869ab8",
- "fontFamily": "Poppins",
- "fontWeight": "Bold"
}
}, - "primaryYAxis": {
- "rangePadding": "Round",
- "majorGridLines": {
- "width": 1
}, - "minorGridLines": {
- "width": 0
}, - "majorTickLines": {
- "width": 0
}, - "minorTickLines": {
- "width": 0
}, - "lineStyle": {
- "width": 0
}, - "labelStyle": {
- "color": "#869ab8",
- "fontFamily": "Poppins",
- "fontWeight": "Normal"
}, - "stripLines": [
- {
- "visible": true,
- "size": 2,
- "sizeType": "Pixel",
- "start": 15,
- "end": 22,
- "text": "Good",
- "color": "#ff512f",
- "zIndex": "Behind",
- "opacity": 0.5,
- "dashArray": "6, 4"
}
], - "crosshairTooltip": {
- "enable": true,
- "fill": "#707070",
- "textStyle": {
- "fontFamily": "Poppins",
- "size": "11px"
}
}
}, - "seriesSettings": {
- "marker": {
- "visible": false,
- "width": 5,
- "height": 5,
- "shape": "Circle",
- "fill": "#cccccc",
- "border": {
- "width": 0.5,
- "color": "#0096FF"
}
}, - "tooltip": {
- "enable": false,
- "fadeOutDuration": 0,
- "fill": "#108EFF",
- "textStyle": {
- "color": "#FFFFFF",
- "fontFamily": "Poppins",
- "size": "10px"
}, - "enableMarker": false
}
}, - "series": [
- {
- "name": "",
- "fill": "#108EFF"
}
]
}
}
]
}
{- "id": 1
}
{- "pk": 1,
- "name": "A Test Board",
- "panels": [
- {
- "id": "layout_749",
- "row": 0,
- "col": 2,
- "sizeX": 4,
- "sizeY": 4,
- "minSizeX": 1,
- "minSizeY": 1,
- "maxSizeX": null,
- "maxSizeY": null
}
], - "widgets": [
- {
- "title": "Column Chart Widget",
- "subtitle": "Subtitle Text",
- "type": "columnChartWidget",
- "chartType": "column",
- "panel_id": "layout_749",
- "dashboardReport": {
- "basicInfo": {
- "panel_id": "layout_749",
- "type": "columnchart",
- "title": null,
- "category": "Summary Financial Metrics",
- "fields": [
- "Cash Balance at End of Month"
]
}, - "chartSettings": {
- "margin": {
- "top": 20
}, - "chartArea": {
- "border": {
- "width": 0
}
}, - "legendSettings": {
- "visible": true,
- "textStyle": {
- "fontFamily": "Poppins",
- "size": "12px",
- "fontWeight": "Normal",
- "color": "#869ab8"
}, - "padding": 12
}, - "crosshairSettings": {
- "enable": true,
- "lineType": "Horizontal",
- "line": {
- "width": 1,
- "color": "#707070"
}, - "dashArray": "2, 2"
}
}, - "primaryXAxis": {
- "rangePadding": "None",
- "valueType": "Category",
- "interval": 1,
- "majorGridLines": {
- "width": 0
}, - "minorGridLines": {
- "width": 0
}, - "majorTickLines": {
- "width": 0
}, - "minorTickLines": {
- "width": 0
}, - "stripLines": [
- {
- "size": 0,
- "sizeType": "Auto",
- "start": 0,
- "end": 0,
- "text": "",
- "color": "",
- "visible": false,
- "zIndex": "Behind",
- "opacity": 1,
- "dashArray": ""
}
], - "crosshairTooltip": {
- "enable": false,
- "fill": "#707070"
}, - "labelStyle": {
- "color": "#869ab8",
- "fontFamily": "Poppins",
- "fontWeight": "Bold"
}
}, - "primaryYAxis": {
- "rangePadding": "Round",
- "majorGridLines": {
- "width": 1
}, - "minorGridLines": {
- "width": 0
}, - "majorTickLines": {
- "width": 0
}, - "minorTickLines": {
- "width": 0
}, - "lineStyle": {
- "width": 0
}, - "labelStyle": {
- "color": "#869ab8",
- "fontFamily": "Poppins",
- "fontWeight": "Normal"
}, - "stripLines": [
- {
- "visible": true,
- "size": 2,
- "sizeType": "Pixel",
- "start": 15,
- "end": 22,
- "text": "Good",
- "color": "#ff512f",
- "zIndex": "Behind",
- "opacity": 0.5,
- "dashArray": "6, 4"
}
], - "crosshairTooltip": {
- "enable": true,
- "fill": "#707070",
- "textStyle": {
- "fontFamily": "Poppins",
- "size": "11px"
}
}
}, - "seriesSettings": {
- "marker": {
- "visible": false,
- "width": 5,
- "height": 5,
- "shape": "Circle",
- "fill": "#cccccc",
- "border": {
- "width": 0.5,
- "color": "#0096FF"
}
}, - "tooltip": {
- "enable": false,
- "fadeOutDuration": 0,
- "fill": "#108EFF",
- "textStyle": {
- "color": "#FFFFFF",
- "fontFamily": "Poppins",
- "size": "10px"
}, - "enableMarker": false
}
}, - "series": [
- {
- "name": "",
- "fill": "#108EFF"
}
]
}
}
]
}
Retrieves metadata from kpi_dashboard_report on MongoDB by company_report_model_id
{- "report_model_pk": [
- 2
], - "categories": [
- {
- "name": "Test Category"
}, - {
- "fields": [
- "Test field",
- "Test Field 2"
]
}, - {
- "subsets": [
- "all"
]
}, - {
- "start_date": "2018-01-31T00:00:00"
}, - {
- "end_date": "2020-11-30T00:00:00"
}
]
}
[- {
- "pk": 2,
- "name": "mrr_Demo_Company_Feb-15-2021",
- "created_at": "2021-08-25T16:37:51.393Z",
- "updated_at": "2021-08-31T16:37:51.393Z",
- "execution_status": "Not Yet Started",
- "execution_uuid": "831a2fb9-1707-4465-9c10-2965c8817a8c",
- "runtime_inputs": {
- "groupings": [ ],
- "currency": "USD",
- "churn": 1,
- "inclusive": true,
- "dates": {
- "dateStart": "2020-01-31T16:37:51.393Z",
- "dateEnd": "2022-01-31T16:37:51.393Z"
}
}, - "version": "1.2",
- "response": { },
- "workflow_identifier": "mrr"
}
]
Creates a company report status when generating a report
workflow_identifier | string String representation of the specific workflow to be used |
version | string The version of the workflow to be used |
object User settings to apply when executing the workflow |
{- "workflow_identifier": "mrr",
- "version": "1.3",
- "runtime_inputs": {
- "groupings": [
- {
- "parent_grouping_pk": 2,
- "name": "John Doe",
- "customer_uuid": "8b2ce450-5e1b-4488-98b5-148675607326",
- "children": [
- {
- "name": "Mary Sue",
- "customer_uuid": "e0c0aeab-2720-4927-88a8-9214dff8775f",
- "child_grouping_pk": 17
}
]
}
], - "currency": "USD",
- "churn": 2,
- "inclusive": true,
- "dates": {
- "dateStart": "2020-01-31T16:37:51.393Z",
- "dateEnd": "2020-12-31T16:37:51.393Z"
}
}
}
{- "report_status": {
- "workflow_identifier": "mrr",
- "version": "1.3",
- "runtime_inputs": {
- "groupings": [ ],
- "currency": "USD",
- "churn": 2,
- "inclusive": true,
- "dates": {
- "dateStart": "2020-01-31T16:37:51.393Z",
- "dateEnd": "2020-12-31T16:37:51.393Z"
}
}
}, - "stepfunction_response": {
- "ResponseMetadata": { },
- "executionArn": "arn:aws:states:us-west-2:111122223333:execution:SomeMachine:aa00aaaa-bb0b-cc22-2222-ab12345a1111",
- "startDate": "2022-02-24T20:23:29.686000+00:00"
}
}
The Forecasting module consists of multiple pieces. A Company Forecast Scenario is the root of a particular forecast.
A Company Forecast Scenario has a 1 to 1 ratio with Forecast Scenarios and the Forecast Scenarios define how the CFSs will be setup and used.
A Company Forecast Scenario consists of multiple forecasts, where each forecast will have an accompanying forecast type.
Retrieves a list of Forecast Types available for forecast_scenario
company_forecast_scenario_pk required | int The id of the company forecast scenario associated with the forecast types. |
{- "company_forecast_scenario_pk": 2
}
{- "data": {
- "pk": 1,
- "name": "Type 1"
}, - "total": 1
}
Retrieves a list of Forecast Scenarios available for forecast_scenario
is_active | bool Classifies if a Forecast Scenario is Active. |
{- "is_active": true
}
{- "data": {
- "pk": 1,
- "name": "ForecastScenario",
- "is_active": true
}, - "total": 1
}
Create a company forecast scenario
company_forecast_name required | string The name of the Company Forecast Scenario. |
forecast_scenario required | int The id of the forecast scenario assigned to the CFS. |
coverage_start_date required | string The start date of where the user will forecast. |
coverage_end_date required | string The end date cutoff of how far the user would like to forecast. |
forecast_owner required | int The id of the owner assigned to the CFS. |
{- "company_forecast_name": "CFS 1",
- "forecast_scenario": 2,
- "coverage_start_date": "2020-07-28T08:08:55.79Z",
- "coverage_end_date": "2022-07-28T08:08:55.79Z",
- "forecast_owner": 11
}
{- "id": 10
}
Update a company forecast scenario
pk required | int The id of the Company Forecast Scenario. |
name | string The name of the Company Forecast Scenario. |
coverage_start_date | string The start date of where the user will forecast. |
coverage_end_date | string The end date cutoff of how far the user would like to forecast. |
updated_on | string The date the Company Forecast Scenario was updated on. |
updated_by_id required | int The id of the User updating the Company Forecast Scenario. |
{- "pk": 2,
- "name": "Company Forecast Scenario 1",
- "coverage_start_date": "2020-07-28T08:08:55.79Z",
- "coverage_end_date": "2022-07-28T08:08:55.79Z",
- "updated_on": "2010-07-28T08:08:55.79Z",
- "updated_by_id": 1
}
{- "id": 10
}
{- "pk": 2,
- "name": "Forecast 1",
- "company_forecast_scenario_id": 23,
- "forecast_type": {
- "pk": 5,
- "name": "Cash Flow"
}, - "created_by": {
- "pk": 2,
- "name": "Jane Doe",
- "username": "jdoe",
- "is_superuser": false,
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "jdoe@email.com",
- "is_staff": true,
- "is_active": true,
- "date_joined": "2021-08-25T16:37:51.393876+00:00",
- "last_login": "2023-08-25T16:37:51.393876+00:00"
}, - "created_on": "2021-08-25T16:37:51.393876+00:00",
- "is_active": true,
- "updated_by": {
- "pk": 2,
- "name": "Jane Doe",
- "username": "jdoe",
- "is_superuser": false,
- "first_name": "Jane",
- "last_name": "Doe",
- "email": "jdoe@email.com",
- "is_staff": true,
- "is_active": true,
- "date_joined": "2021-08-25T16:37:51.393876+00:00",
- "last_login": "2023-08-25T16:37:51.393876+00:00"
}, - "updated_on": "2021-10-29T16:37:51.393876+00:00",
- "company_entity": {
- "pk": 2,
- "name": "Entity 1",
- "parent_entity_id": 1,
- "company": {
- "pk": 2,
- "name": "Company 1",
- "partner": {
- "pk": 0,
- "name": "KPI Sense",
- "is_active": true,
- "created_at": null,
- "modified_at": null
}, - "currency_id": 1,
- "implemented_by_kpi": true,
- "is_active": true,
- "fiscal_year_start": {
- "month": 1,
- "day": 1
}, - "company_investor_profile": {
- "year_founded": 2016,
- "city": "New York",
- "state": "NY",
- "country": "US",
- "industry": "Professional Services",
- "latest_funding_round": 4,
- "seeking_funding_amount_min": "75000",
- "seeking_funding_amount_max": "60000000",
- "annual_recurring_revenue": "78000000",
- "annual_revenue_growth_rate": "123.00",
- "num_employees": 43,
- "description": "A Demo Company specializes on providing out of the box technology to technologists looking to create quick and streamlined video and prototype demos. A Demo Company is looking for additional funding to expand our offerings and begin providing customizable tools to new clients",
- "company_contact_name": "Jonathan Smith",
- "company_contact_email": "jon@adc.com",
- "is_seeking_investor_matches": true
}, - "company_investor_data_package_link": {
- "link": "/api/v1/companies/2/investors/data_package"
}
}, - "is_active": true
}
}
Create a forecast
forecast_name required | string The name of the new Forecast. |
forecast_type required | int The id of the forecast type assigned to this forecast. |
company_entity | int The id of the company entity connected to this forecast. |
{- "forecast_name": "Forecast 1",
- "forecast_type": 4,
- "company_entity": 12
}
{- "id": 5
}
Creates Matches for multiple investors with one company
send_email | any If true, sends an email to all connected companies and investors upon match creation |
investor_pks required | array List of investors IDs |
{- "investor_pks": [
- 2,
- 10,
- 18
]
}
{- "company_pk": 2,
- "success_investor_pks": [
- 2,
- 5,
- 11
], - "fail_investor_pks": [ ]
}
Retrieves a list of companies who investors can view based on the investor_id.
{- "data": [
- {
- "pk": 1,
- "name": "Death Star, Inc.",
- "year_founded": null,
- "city": "",
- "state": "",
- "country": "",
- "industry": "",
- "latest_funding_round_display": null,
- "seeking_fundding_amount_min": null,
- "seeking_funding_amount_max": null,
- "annual_recurring_revenue": null,
- "annual_revenue_growth_rate": null,
- "num_employees": null,
- "description": "",
- "company_contact_name": "",
- "company_contact_email": null,
- "is_seeking_investor_matches": false,
- "links": {
- "dashboard": null,
- "investor_package": null
}
}
], - "page_num": 1,
- "num_pages": 1,
- "Data": 1
}