Welcome to the API documentation for Nimbly Technologies. Our mission is to make your integration experience seamless and efficient. Whether you're a seasoned developer or just getting started, this documentation is your gateway to understanding and leveraging the full potential of Nimbly's API. Dive in to explore endpoints, authentication methods, data formats, and everything you need to successfully integrate with our services.
To access our Nimbly API, you need to authenticate using a secret token as an API key. API keys are a simple and secure way to identify your application when making requests to our API.
To obtain API keys for authentication, please reach out to our team. Once your request for API keys has been approved, we will securely send them to you via email, ensuring that you have the necessary credentials to access our API.
Your API keys are sensitive credentials. Avoid sharing them publicly to maintain the confidentiality of your data and the security of your API resources.
For authenticating your API requests, include your API key in the request headers as shown below:
GET /reports
x-api-key: YOUR_API_KEY
Replace YOUR_API_KEY with the actual API key you received from our team.
This x-api-key header is used to allow the server to identify and authorize your organization account. Please note that any API call made without including the 'x-api-key' header will result in a failed request.
Our Nimbly API use rate limiter to ensure equitable access to our API resources while maintaining system stability. This document outlines our rate limiting policies, how to handle rate limit errors, and tips for optimizing your API usage within these limits.
Our rate limiter enforces the following rate limiting policy:
When you exceed the rate limit, our API will respond with a 429 Too Many Requests
status code. This indicates that you have reached the maximum allowed request rate. The response will include additional information in the headers for your reference:
X-RateLimit-Limit
: The total number of requests allowed per second.X-RateLimit-Remaining
: The number of requests remaining in the current rate-limiting window.Here's an example of a rate-limited response:
HTTP/1.1 429 Too Many Requests
Content-Type: application/json
X-RateLimit-Limit: 3
X-RateLimit-Remaining: 0
{
"message": "Limit Exceeded"
}
To ensure smooth API interactions and avoid rate-limiting errors:
By following these guidelines, you can work effectively within our rate limits and ensure a smooth experience while using the Nimbly API.
Simplify your API interaction with our Exported Postman Collections. This collection contains a curated set of API endpoints and request examples that will accelerate your development and integration processes.
Simply follow these steps to start interact with our Nimbly API
Nimbly API for issue's related usecase. Issues are generated based on your report's answer. One example for this usecase is to get list of all issues created within your organization.
Returns list of your issue's data. The returned data will be based on the query, using pagination format.
site_name | string (optional) Example: site_name=Store A Multiple Example: Filter based on the site name. Multiple site name query is supported. |
created_dept | string (optional) Example: created_dept=Department A Multiple Example: Filter based on the reporter department name. Multiple reporter department name query is supported. |
assigned_dept | string (optional) Example: assigned_dept=Department A Multiple Example: Filter based on the assigned department name. Multiple assigned department name query is supported. |
qnr_name | string (optional) Example: qnr_name=FnB - Coffee Shop Multiple Example: Filter based on the questionnaire name. Multiple questionnaire name query is supported. |
title | string (optional) Example: title=Food items stored properly Multiple Example: Filter based on the issue's title. Multiple issue's title query is supported. |
category_name | string (optional) Example: category_name=Food/Beverage Safety Multiple Example: Filter based on the issue's category name. Multiple category name query is supported. |
created_by | string (optional) Example: created_by=Auditor A Multiple Example: Filter based on the issue's creator name. Multiple issue's creator name query is supported. |
assigned_to | string (optional) Example: assigned_to=Auditor A Multiple Example: Filter based on the issue's assignee name. Multiple issue's assignee name query is supported. |
member | string (optional) Example: member=Auditor A Multiple Example: Filter based on the issue's member name. Multiple issue's member name query is supported. |
status | string (optional) Enum: "open" "resolved" "expired" "blocked" "in-review" "in-progress" Example: status=open Multiple Example: Filter based on the issue's status. Multiple issue's status query is supported. |
severity | string (optional) Enum: "red" "yellow" Example: severity=yellow Multiple Example: Filter based on the issue's severity. Multiple issue's severity query is supported. |
priority | string (optional) Enum: "low" "medium" "high" Example: priority=medium Multiple Example: Filter based on the issue's priority. Multiple issue's priority query is supported. |
origin | string (optional) Enum: "report" "report-adhoc" "report-scheduled" "manual-addition" "customer-feedback" Example: origin=report-scheduled Multiple Example: Filter based on the issue's origin. Multiple issue's origin query is supported. |
date_filter_type | string (optional) Enum: "created_date" "resolved_date" "due_date" Example: date_filter_type=created_date An enum that indicates the date type filter. It will affect on how
|
start_date | string (optional) <date> Example: start_date=2023-10-23 String with format of |
end_date | string (optional) <date> Example: end_date=2023-11-23 String with format of |
sort_by | string (optional) Enum: "created_date" "resolved_date" "due_date" Example: sort_by=created_date An enum that indicates the date where sorting is based on.
|
sort_type | string (optional) Enum: "asc" "desc" Example: sort_type=asc An enum that indicates the sorting type. It will affect on how
|
limit | number (optional) Example: limit=100 Limit number on how many data will be returned. Limit can range between 1 and 100, with default number is 100. |
offset | number (optional) Offset number on how many data will be skipped before returning the next data. Offset can range between 0 and total sites, with default number is 0. |
x-api-key required | string Example: 0e3aad3f7031fcc655b349e5709c93fc |
{- "message": "SUCCESS",
- "data": {
- "docs": [
- {
- "issueID": "aeacd1a9-89b6-4249-beda-eb52089df8e3",
- "createdAt": "2023-08-29T05:09:59.609Z",
- "answer": 3,
- "assignedDepartments": [
- "departmentA",
- "departmentB"
], - "assignedTo": "User Sample",
- "category": "Category A",
- "createdBy": "User Sample",
- "resolvedBy": "User Sample",
- "status": "open",
- "resolvedAt": "2023-08-29T05:09:59.609Z",
- "dueAt": "2023-08-29T05:09:59.609Z",
- "siteName": "Sample Site",
- "questions": "This is sample questions A.",
- "createdDepartment": "Sample Department",
- "questionnaire": "Sample Questionnaire",
- "priority": "Low",
- "severity": "yellow",
- "origin": "report"
}
], - "limit": 100,
- "offset": 0,
- "totalDocs": 100,
- "totalPage": 1
}
}
Nimbly API for report's related usecase. Reports are generated when you do a checklist in the form of questionnaire from the nimbly app. One example for this usecase is to get list of all reports generated within your organization.
site_name | string (optional) Example: site_name=Store A Multiple Example: Filter based on the site name. Multiple site name query is supported. |
dept_name | string (optional) Example: dept_name=Department A Multiple Example: Filter based on the department name. Multiple department name query is supported. |
qnr_name | string (optional) Example: qnr_name=FnB - Coffee Shop Multiple Example: Filter based on the questionnaire name. Multiple questionnaire name query is supported. |
user_name | string (optional) Example: user_name=Auditor A Multiple Example: Filter based on the user/auditor name. Multiple user name query is supported. |
date_filter_type | string (optional) Enum: "scheduled_date" "submitted_date" Example: date_filter_type=scheduled_date An enum that indicates the date type filter. It will affect on how
|
start_date | string (optional) <date> Example: start_date=2023-10-23 String with format of |
end_date | string (optional) <date> Example: end_date=2023-11-23 String with format of |
pagination_type | string (optional) Enum: "record" "site" Example: pagination_type=record An enum that indicates pagination type. It will affect how data is divided using the
|
limit | number (optional) Example: limit=100 Limit number on how many data will be returned. If |
offset | number (optional) Offset number on how many data will be skipped before returning the next data. If |
x-api-key required | string Example: 0e3aad3f7031fcc655b349e5709c93fc |
{- "message": "SUCCESS",
- "data": {
- "docs": [
- {
- "reportID": "6da66c81bf95904dbb1e63a0fc846ce4_2023-08-29_1693285730139",
- "submittedDate": "2023-08-29T05:09:35.474Z",
- "startDateTime": "2023-08-29T05:08:39.000Z",
- "endDateTime": "2023-08-29T05:09:34.667Z",
- "scheduledDate": "2023-08-29",
- "submittedBy": "User Sample",
- "auditorName": "User Sample",
- "status": "complete",
- "siteName": "Sample Site",
- "siteTimezone": "Asia/Jakarta",
- "departmentName": "Sample Department",
- "questionnaireDetail": [
- {
- "questionText": "This is a sample question for Yes/No",
- "response": "green-flag"
}
]
}
], - "limit": 100,
- "offset": 0,
- "totalDocs": 100,
- "totalPage": 1
}
}