Buildings
Added
- Endpoint to get Building by ID.
- Endpoint to get all Buildings.
Project Schedules
Added
- Endpoint to get Project Schedule by ID.
- Endpoint to get all Project Schedules.
Portfolios
Added
- Endpoint to get Portfolio by ID.
- Endpoint to get all Portfolios.
Budget Changes
Added
- Endpoint to get Budget Change by ID.
- Endpoint to get all Budget Changes.
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.
To recap, here are the key changes coming to the API:
- Rate Limit Adjustments for improved efficiency.
- 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 Requestsresponse, 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
Scheduled to add
- Response field custom_attributes.[].id
Companies
Added
- Endpoint to update Company (currently allows to update only custom_id field).
- Endpoint to set given Office Location as HQ.
- Endpoint to get Office Location by ID.
- Endpoint to update Office Location.
Custom Attributes
Added
- Endpoint to get a list of Custom Attributes.
Dictionaries
Added
- Endpoint to get a list of Dictionaries.
- Endpoint to get Dictionary by ID.
Employees
Added
- Endpoint to archive Employee.
- Endpoint to unarchive Employee.
- Response fields termination_date and client_company_ids to Employee update, create, get and list endpoints.
Projects
Added
- Endpoint to update Project.
OAuth2
Added
- Endpoint to get an Access Token.
We have transferred all the remaining endpoints from v1 to v2, added some additional ones, reduced noise and took care of the standards between them.
Budgets
Added
- Response field categories.
- Response field financeable_sites.
- Query parameter budget_type .
- Query parameter project_client_id.
- Query parameter project_client_name.
- Query parameter project_id.
Changed
- The totals structure was changed from an array to an object.
- Response field budget_approved moved to the totals section and renamed to budget_approved_value.
- Response field budget_current moved to the totals section and renamed to budget_current_value.
- Response field budget_original moved to the totals section and renamed to budget_original_value.
- Response field budget_pending moved to the totals section and renamed to budget_pending_value.
- Response field budget_projected moved to the totals section and renamed to budget_projected_value.
- Response field items.[].anticipated_savings renamed to items.[].anticipated_savings_value and moved to totals.
- Response field items.[].my_approved_contract_changes renamed to items.[].my_approved_contract_changes_value and moved to totals.
- Response field items.[].total_approved renamed to items.[].total_approved_value and moved to totals.
- Response field items.[].total_current renamed to items.[].total_current_value and moved to totals.
- Response field items.[].total_pending renamed to items.[].total_pending_value and moved to totals.
- Response field items.[].total_projected renamed to items.[].total_projected_value and moved to totals.
- Response field items.[].unallocated_fund renamed to items.[].unallocated_fund_value and moved to totals.
- Data type of all the above fields changed from float to string.
- Query parameter update_date renamed to updated_at.
Removed
- Response field currency_code.
- Response field description.
- Response field project_description.
- Response field my_budget_id.
- Response field owner_budget_id.
- Response field company_local_id.
- Response field project_client.
- Response field submitted_for_approval.
- Response field items.[].category_code.
- Response field items.[].category_name.
- Response field items.[].project_client.
- Response field items.[].project_id.
Direct Costs
Added
- Response field assigned_employee_id.
- Response field budget_code_id.
- Response field project_id.
- Response field proposal_id.
Changed
- Response field data renamed to items.
- Response field external_id renamed to custom_id.
- Response field amount renamed to total_value and data type changed from float to string.
Removed
- Response field assigned_employee removed from GET direct costs endpoints.
- Response field budgetCode removed from GET direct costs endpoints.
- Response field currency removed from GET direct costs endpoints.
- Response field logs removed from GET direct costs endpoints.
- Response field project removed from GET direct costs endpoints.
- Response field project_company_id removed from GET direct costs endpoints.
- Response field proposal removed from GET direct costs endpoints.
- Response field tenant_id removed from GET direct costs endpoints.
Journal
Added
- Response field created_by.
Changed
- Query parameter updated_date renamed to updated_at.
Removed
- Query parameter show_deleted.
Tasks
Added
- Query parameter project_id.
- Query parameter statuses.
- Query parameter updated_before.
- Query parameter updated_after.
- Query parameter due_date_before.
- Query parameter due_date_after.
Changed
- Response structure changed significantly, with new fields and pagination added to GET tasks list.
- Response structure changed significantly in GET task by ID.
Removed
- Query parameter show_archived.
- Query parameter update_date.
- Query parameter project_client.
Punch Items
Added
- Endpoint to get Punch Lists.
- Endpoint to get Punch Stamps.
- Response field project_id.
- Query parameter project_id.
- Query parameter punch_list_id.
- Query parameter statuses.
- Query parameter ball_in_court_ids.
- Query parameter stamps_ids.
- Query parameter responsible_contractors_ids.
- Query parameter members_ids.
- Query parameter due_date_after.
- Query parameter due_date_before.
- Query parameter page.
- Query parameter per_page.
Changed
- Stamp data moved to a separate endpoint: Get a Punch Stamp by ID.
- Response field ball_in_court renamed to ball_in_court_id.
- Response field members renamed to members_ids.
- Response field documents renamed to documents_ids.
- Query parameter project_local_id renamed to project_id and moved to query params.
Removed
- Response field tags.
- Response field created_by.
- Response field updated_by.
- Response field drawing_annotation.
- Response field specification_annotation.
Inspections
Added
- Query parameter project_id.
- Query parameter statuses.
- Query parameter types.
- Query parameter final_results.
- Query parameter examinations.
- Query parameter inspectors_ids.
- Query parameter originators_ids.
- Query parameter date_after.
- Query parameter date_before.
Changed
- Response structure changed significantly, with new fields and pagination added to GET inspections list.
- Response structure changed significantly in GET inspection by ID.
Surveys
Added
- New endpoint: Get Survey.
Business Units
Added
- Endpoint to get list of Business Units.
- Endpoint to get Business Unit by ID.
Companies
Added
- Response field tags added to GET companies endpoints.
- Endpoint to store Company Office Locations.
- Endpoint to get list of Companies.
- Endpoint to get company by ID.
Removed
- Endpoint Get all off-system companies by name removed.
Contacts
Added
- Endpoint to Import Contact & Company.
Employees
Added
- Endpoint to get list of Employees.
- Endpoint to get Employee by ID.
- Endpoint to update an Employee by ID.
- Endpoint to update Employee Custom Attributes.
- Response field additional_billable_roles added to GET employee endpoints.
Changed
- Query parameter update_date renamed to updated_at.
- Response field billable_role changed from string to object.
Projects
Added
- Endpoint to get list of Projects.
- Endpoint to get Project by ID.
- Query parameter custom_id added to GET projects list.
- Query parameter business_unit_id added to GET projects list.
- Response field business_unit_id added to GET projects list.
Changed
- Response field created_by changed from object to string.
Removed
- Response field is_archived removed from GET projects endpoints.
Contracts
Added
- Response field contracts.wbs1.contract_change_id.
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_idfield 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.
