We previously informed you about important updates to our API, initially set to take effect on October 1st. However, we want to ensure a smooth transition for all users, so we are delaying the implementation of these updates by one week. The new effective date will be October 5th.
This brief delay will give us additional time to optimize the changes and ensure that your experience remains seamless.
OAuth Application and Personal Access Token Limits to enhance security.
Pagination Enhancements for better consistency.
Unified Entity Data and Listings for simplified integrations.
Rate Limiting Headers to better manage API usage.
New Filters and Endpoints to enable more granular data retrieval.
We apologize for any inconvenience this delay may cause and appreciate your understanding. If you have any questions or need assistance in preparing for these changes, please don’t hesitate to reach out to our support team.
We’re excited to inform you about some important updates to our API that will take effect October 1st. These changes are designed to improve the efficiency, scalability, and usability of our services for all users.
1. Rate Limit Changes
We are implementing new rate limits to balance performance and scalability. The default limits will be as follows:
Read operations: (GET, HEAD, OPTION) Up to 60 requests per minute.
Write operations: (POST, PUT, PATH, DELETE) Up to 30 requests per minute.
For customers with greater throughput requirements, temporarily we offer enhanced rate limits:
Read operations: (GET, HEAD, OPTION) Up to 360 requests per minute for high-volume usage.
Write operations: (POST, PUT, PATH, DELETE Up to 180 requests per minute for larger workloads.
If your integration needs exceed the standard limits, please reach out to discuss a tailored solution.
2. OAuth Application and Personal Access Token Limits
To enhance security and streamline API usage:
A maximum of 3 OAuth applications can be created per account.
A maximum of 2 personal access tokens will be allowed per user.
3. Pagination Enhancements
We’re updating our pagination logic to improve consistency and performance:
Default page size: 20 items.
Maximum page size: 100 items.
4. Unified Entity Data and Listings
In API v2, we have optimized our data model so that all relevant information can now be retrieved consistently across both listing and single entity endpoints. This was not always the case in API v1, and we believe this will simplify integration efforts and reduce the number of API calls needed.
5. Rate Limiting Headers
To help you better manage your API usage, we are introducing the following headers:
X-RateLimit-Limit: Shows your allowed rate limit.
X-RateLimit-Remaining: Displays how many requests you have left in the current window.
When you exceed the rate limit and receive a 429 Too Many Requests response, we will also include a Retry-After header, indicating when you can retry the request.
6. New Filters and Endpoints
We are introducing updated_after filters to allow customers to only fetch entities that have been updated since a specified time. This will be especially useful for those syncing data to external systems, such as warehouses.
Additionally, a new endpoint will be available to retrieve deleted entities, helping you maintain more accurate data in your applications.
We hope these improvements will enhance your experience with our API. Please review these changes and update your integrations accordingly. If you have any questions or need assistance with transitioning, feel free to reach out to our support team.
On September 21, we scheduled breaking changes to specific public API endpoints. These updates are driven by a new response format that will enable us to better meet customer expectations and enhance the service we provide to our clients.
Employees
Get endpoints
❗️
Scheduled to remove
Response field billable_roles.
Response field additional_billable_roles.
Response field custom_attributes.[].name
Response field custom_attributes.[].order
Response field custom_attributes.[].fields.[].name
👍
Scheduled to add
Response field custom_attributes.[].id
Projects
Get endpoints
❗️
Scheduled to remove
Response field custom_attributes.[].name
Response field custom_attributes.[].order
Response field custom_attributes.[].fields.[].name
We are excited to announce the release of INGENIOUS 2.0, packed with a multitude of cleanups and improvements aimed at enhancing the overall performance and user experience. This version introduces several significant changes that impact our API, ensuring a more streamlined and efficient workflow for developers. Here’s a detailed breakdown of the updates.
Our Focus
Standardized naming conventions and responses across the API for consistency and clarity.
Relationship data is no longer embedded in responses. To retrieve related data, use the appropriate endpoints with the provided identifiers. For example, to get project data of an invoice, use the project_id field in the invoice response to query the projects endpoint.
Reduced the amount of data returned in responses to focus on the most important information and minimize distraction.
V1 - End of Life
Migration to V2 Endpoints:
All V1 endpoints will be deprecated and moved to V2 to enhance performance, improve consistency, and align with Ingenious 2.0.
Removal Date:
V1 endpoints will be removed on 1st September. This change is necessary to streamline our API offerings and ensure all users benefit from the latest updates and improvements.
Action Required:
Please update your applications to use V2 endpoints before 1st September to avoid any disruption in service.
Projects
🚧
Changed
Response field contract_type will always return null, due to contract flow changes.
Response field employees object now only provides manager_id and executive_id.
Response field _id name in custom_attributes changed to id.
Response field client_company name changed to client_company_id.
Response field external_id name changed to custom_id.
Response field project_description name changed to description.
Response field project_health name changed to health.
Response field project_name name changed to name.
Response field project_phase name changed to phase.
Response field project_risk name changed to risk.
Response field project_status_id name changed to status_id.
Response field project_status_name name changed to status_name.
Response field project_type name changed to type.
Query parameter with_custom_attributes type was changed to boolean.
Query parameter show_archived type was changed to boolean.
Query parameter update_date name was changed to updated_at.
Query parameter project_client name was changed to client.
Query parameter project_status name was changed to status.
Query parameter status now supports stringified values.
Description of types was updated along with examples.
❗️
Removed
Response field project_mongo_id_local.
Response field project_mongo_id.
Response field formatted_id.
Response field address1.
Response field address2.
Response field city.
Response field state.
Response field country.
Response field budget_allocated.
Response field budget_committed.
Response field contract_type.
Response field contract_business_unit.
Response field deleted_at.
Response field formatted_id.
Response field project_number.
Response field portfolio.
Contacts
👍
Added
Response field company_id.
Query parameter company_id.
🚧
Changed
Description of types was updated along with examples.
❗️
Removed
Response field contact_person_id.
Companies
👍
Added
Response field custom_id was added to GET endpoints.
🚧
Changed
Query parameter external_id name changed to custom_id.
Query parameter update_date name changed to updated_at.
Query parameter show_archived type changed to boolean.
Response field company_name changed to name.
Response field office_locations now provides list of ids.
Description of types was updated along with examples.
❗️
Removed
Create endpoint.
Update endpoint.
Employees
🚧
Changed
Response field assigned_office_location name changed to assigned_office_location_id.
Query parameter external_id name changed to custom_id.
Query parameter show_archived type changed to boolean.
❗️
Removed
Response field address1.
Response field address2.
Response field city.
Response field state.
Response field country.
Response field is_hidden.
Contract Changes (Change Orders)
🚧
Changed
/change-orders endpoints changed to /contract-changes.
Query parameter co_status name changed to status.
Query parameter co_type name changed to type.
Response field phases name and structure was changed.
Response field status_id changed to status.
Response field status now supports stringified values.
❗️
Removed
Response field approval_date.
Response field invoice_amount.
Response field project_client.
Response field project_country_code.
Response field project_local_id.
Response field project_name.
Contracts
👍
Added
Query parameter custom_id.
Response field custom_id.
Response field vendor_company_id.
Response field vendor_contact_id.
Response field client_contact_id.
🚧
Changed
Query parameter update_date name changed to updated_after.
Response field phases name and structure was changed.
Response field contract_id changed to id.
Response field status_id changed to status.
Response field status_sov_id changed to sov_status.
Response field status now supports stringified values.
Response field value changed to total_value.
❗️
Removed
Response field show_archived.
Response field agreement_type.
Response field approval_status.
Response field client_company_name.
Response field client_company_type.
Response field client_contact_name.
Response field company_id.
Response field company_name.
Response field contract_holder.
Response field contract_item_count.
Response field contract_item_name.
Response field contract_item_type.
Response field country_code.
Response field currency.
Response field currency_code.
Response field is_main.
Response field project_local_id.
Response field project_name.
Response field status_loi.
Response field status_name.
Response field status_sov_name.
Invoices
👍
Added
Response field gross_value.
Response field net_value.
Response field paid_value.
🚧
Changed
update_date name changed to updated_at.
status_id changed to status.
Response field status now supports stringified values.
❗️
Removed
Response field project_client filter.
Response field status filter.
Response field approved_date.
Response field attention_from.
Response field attention_to.
Response field billing_period_end_date.
Response field billing_period_id.
Response field billing_period_start_date.
Response field category_id.
Response field category_name.
Response field client_information.
Response field currency_code.
Response field is_sender_created.
Response field original_amount.
Response field phases.
Response field project_client.
Response field project_local_id.
Response field project_name.
Response field provider_invoice_id.
Response field receiver_invoice_id.
Response field start_date.
Response field vendor_id.
Response field vendor_invoice_id_display.
Response field vendor_name.
Project Journal Entries
🚧
Changed
Response field id now returns string from GET endpoints.
Response field project_id now returns string from GET endpoints.
Description of types was updated along with examples.