At BQE Software, our mission is to simplify project and business management, enabling companies to boost productivity and drive profitability. Our overarching goal is to empower companies by offering a user-friendly and integrated solution that makes it easier to manage their projects, resources, and overall business.

BQE CORE is a cloud-based business management solution designed to empower companies of all sizes with its outstanding project management and accounting features. As an API-driven solution tailored for professional services firms, CORE offers a comprehensive suite of features: time and expense tracking, project management, billing, and financial accounting. By leveraging our robust public APIs, developers can seamlessly integrate CORE into their own applications and extend its functionality to meet their specific business needs.


CORE APIs belong to the Representational State Transfer (REST) category. Representational State Transfer or REST refers to a group of software architecture design constraints that bring about efficient, reliable, and scalable systems. REST is not a specific technology, but rather a data architecture and design methodology that produces predictable and consistent outputs and behaviors by receiving a set of standard methods called verbs and returning standardized structured data, typically JSON or XML, called the resource. Representational State Transfer is an accurate description of what is happening: a transition between representations of states and these representations are transferred back and forth between the application and server.

In designing these APIs, we have taken the simple REST principles as far as possible. CORE APIs allow you to perform 'RESTful' operations such as creating, retrieving, updating, or deleting data. Data entities from a CORE company database are presented as HTTP resources and the standard HTTP verb semantics apply. This makes accessing the data very intuitive. You can also use parameters to manipulate resources (filter, sort, fetch the next page, and so on). Check out the relevant sections on supported methods and parameters for details.

Getting Started with CORE APIs

To get started with CORE APIs, you need to sign up for a developer account on the CORE Developer Portal and then add your applications to the account. To authorize access to the data of a CORE company, CORE APIs use the OAuth 2.0 protocol. Your applications are assigned API keys (clientId and clientSecret), which can be used to request access tokens. The access tokens in turn allow you to request the data from CORE APIs after a CORE user with the appropriate access level grants permission to your application. CORE APIs also support refresh tokens so that the users need to grant the permission only once and then your application can refresh the access token behind the scenes. Check out the Getting Started, Authentication and Authorization, and Tokens sections for details.

If you want to test CORE APIs or get an idea of how it all works, check out our Postman collection or try out the APIs using our Swagger UI. You can also check out our code samples on GitHub.

API Reference

To get the details of the endpoints available through CORE APIs and the structure of the API resources (which are JSON objects comprising of a collection of properties), you can check out our API reference sections from the left navigation. There are three sections segregating the APIs based on CORE features (General, CRM, and HR). Click on any of the APIs under these sections to get the details of endpoints available and the structure of resources. Note that not all the modules and screens that you can access through the CORE web app have a corresponding API here because not all CORE company data is available through the public APIs.

For each endpoint, you can find sample code snippets in the following formats:

  • cURL command
  • NODE
  • PHP
  • C#
  • JAVA

Rate Limits

CORE APIs impose a limit on the number of API requests your applications can make in a given amount of time. If they exceed the limit, the API endpoints respond with a 429: Too Many Requests status code to the requests. Check out the Rate Limiting section for details.


If an error occurs during an API call, your application receives an error object. All error objects have an error code and an error description so that your application can tell what the problem is. For example, if you get a 4xx HTTP response code, it means there is a bad request from the client side (your application). In this case, you need to take the appropriate action based on what the error code is. Or, if you receive 5xx errors, it means there is a problem on the server side. In such cases, check the CORE API Status Page and Twitter to see how our systems are doing. In any other case, you can use our support options. For more context on error codes, check out the Error Status Codes section.