# Aimsio API # Introduction Aimsio provides a set of API endpoints and supported actions to facilitate communication with external software platforms / ERPs. Each Aimsio account can access two server options: `sandbox` and `portal` * `sandbox` is the test environment we used to implement and test configuration changes for an account before live deployment. * `portal` is the live environment where accounts store their live transactions ## Authentication Our API utilizes basic username and password authentication to access the API. If you already have an Admin username set up for your account inside Aimsio, this can be used for API authentication. However, the best practice would be to set up a separate user for integration purposes and keep this set of credentials private only to the developer. Aimsio users also require specific permissions to access our API. Please contact our support/integration team so they can enable the required permissions. ## Throughput limitation We currently limit API calls after calls exceed more than 10 calls per second. If our API receives too many requests (ie: if the queue takes longer than 5 seconds to return the call), the request will timeout. Up to 10 parallel calls are permitted. We do not limit the number of sequential calls. If your organization requires more headroom to complete calls to our API, please get in touch with us. ## Usage - Querying data For most entities with GET requests supported, there are two endpoints we supported: * GET all objects of that type * GET one speficic object based on its unique identifier (GUID/Id) When you send a GET all request, the system will return an JSON array, and each JSON contains the following properties: * `dtype`: The object type * `guid/id`: Unique identifier of the object, generated by the Aimsio system * `updatedAt`: Object's last update timestamp in epoch millseconds Using the returned Guid or ID, you can then query each specific object from the GET single request. ## Usage - Posting data To upload data, please review the object properties and example requests for each POST endpoint. For our `Master Data` endpoints, you can create/edit new entries into Aimsio system. For some other endpoints like `Invoice` or `Timecard`, we don't allow POSTing new entries, but updating status of existing entries are supported. Object types like NRBs or Crew/Equipment records are included in the `JobOrder` GET response, but have to be POSTed through their own endpoints. * Crew records: `Employee` endpoint * Equipment records: `Equipment` endpoint * NRB records: `NRB` endpoint Version: 1.0.0 ## Servers Sandbox ``` https://sandbox.aimsio.com ``` Production ``` https://portal.aimsio.com ``` ## Security ### basicAuth Type: http Scheme: basic ## Download OpenAPI description [Aimsio API](https://api.aimsio.com/_spec/aimsio_api.yaml) ## Master Data ### BillableItem - [POST /rest/api/standard/v1/BillableItem](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1billableitem/post.md): Create/update billable item(s) ### All BillableItems - [GET /rest/api/standard/v1/BillableItem](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1billableitem/get.md): Retrieve all billable items/job items in an account. ### BillableItem - [GET /rest/api/standard/v1/BillableItem/{billableItemGuid}](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1billableitem~1%7Bbillableitemguid%7D/get.md): Retrieve one billable item object by provided GUID ### Pricebook - [POST /rest/api/standard/v1/PriceBook](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1pricebook/post.md): Create/update pricebook(s) ### All Pricebooks - [GET /rest/api/standard/v1/PriceBook](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1pricebook/get.md): Retrieve all pricebooks in an account. ### Pricebook - [GET /rest/api/standard/v1/PriceBook/{pricebookGuid}](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1pricebook~1%7Bpricebookguid%7D/get.md): Retrieve one pricebook object by provided GUID ### Equipment - [POST /rest/api/standard/v1/Asset](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1asset/post.md): Create/update equipment(s) ### All Equipment - [GET /rest/api/standard/v1/Equipment](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1equipment/get.md): Retrieve all equipments in an account ### Equipment - [GET /rest/api/standard/v1/Equipment/{equipmentGuid}](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1equipment~1%7Bequipmentguid%7D/get.md): Retrieve one equipment object by provided GUID ### Employee - [POST /rest/api/standard/v1/Employee](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1employee/post.md): Create/update employee(s) ### All Employees - [GET /rest/api/standard/v1/Employee](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1employee/get.md): Retrieve all employees in an account ### Employee - [GET /rest/api/standard/v1/Employee/{employeeGuid}](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1employee~1%7Bemployeeguid%7D/get.md): Retrieve one employee object by provided GUID ### Company - [POST /rest/api/standard/v1/Company](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1company/post.md): Create/update company(s) ### All Companies - [GET /rest/api/standard/v1/Company](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1company/get.md): Retrieve all companies in an account ### Company - [GET /rest/api/standard/v1/Company/{companyGuid}](https://api.aimsio.com/aimsio_api/master-data/paths/~1rest~1api~1standard~1v1~1company~1%7Bcompanyguid%7D/get.md): Retrieve one company object by provided GUID ## Job Orders ### JobOrder - [POST /rest/api/standard/v1/JobOrder](https://api.aimsio.com/aimsio_api/job-orders/paths/~1rest~1api~1standard~1v1~1joborder/post.md): Create/update job order(s) ### All JobOrders - [GET /rest/api/standard/v1/JobOrder](https://api.aimsio.com/aimsio_api/job-orders/paths/~1rest~1api~1standard~1v1~1joborder/get.md): Retrieve all job orders in an account ### JobOrder - [GET /rest/api/standard/v1/JobOrder/{jobOrderGuid}](https://api.aimsio.com/aimsio_api/job-orders/paths/~1rest~1api~1standard~1v1~1joborder~1%7Bjoborderguid%7D/get.md): Retrieve one job order object by provided GUID ## Transactions ### Invoice - [POST /rest/api/standard/v1/Invoice](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1invoice/post.md): Update invoice(s) numbers and/or status by provided invoiceId ### All Invoices - [GET /rest/api/standard/v1/Invoice](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1invoice/get.md): Retrieve all invoices in an account ### Invoice - [GET /rest/api/standard/v1/Invoice/{invoiceId}](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1invoice~1%7Binvoiceid%7D/get.md): Retrieve one invoice object by provided ID ### Payroll Period - [POST /rest/api/standard/v1/PayrollPeriod](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1payrollperiod/post.md): Update payroll period(s) status by provided GUID ### All Payroll Periods - [GET /rest/api/standard/v1/PayrollPeriod](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1payrollperiod/get.md): Retrieve all payroll periods in an account ### Payroll Period Timecards - [GET /rest/api/standard/v1/TimeCard](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1timecard/get.md): Retrieve all timecards in a pay period by provided period GUID ### All Current Timecards - [GET /rest/api/standard/v1/CurrentTimeCard](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1currenttimecard/get.md): Retrieve all open current timecards in an account ### Current Timecard - [GET /rest/api/standard/v1/CurrentTimeCard/{currentTimecardGuid}](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1currenttimecard~1%7Bcurrenttimecardguid%7D/get.md): Retrieve one open timecard object by provided GUID ### Non-recurring Billable Items - [POST /rest/api/standard/v1/NRB](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1nrb/post.md) ### All Non-recurring Billable Items - [GET /rest/api/standard/v1/NonRecurringBillableItem](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1nonrecurringbillableitem/get.md) ### Non-recurring Billable Item - [GET /rest/api/standard/v1/NonRecurringBillableItem/{nrbGuid}](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1nonrecurringbillableitem~1%7Bnrbguid%7D/get.md) ### Non-recurring Billable Item PDF - [GET /rest/api/standard/v1/NonRecurringBillableItem/{nrbGuid}/pdf](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1nonrecurringbillableitem~1%7Bnrbguid%7D~1pdf/get.md) ### FormData - [GET /rest/api/standard/v1/FormData/{formDataGuid}](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1formdata~1%7Bformdataguid%7D/get.md) ### FormData - [POST /rest/api/standard/v1/FormData](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1formdata/post.md) ### All FormData - [GET /rest/api/standard/v1/FormData](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1formdata/get.md) ### All FieldTicket - [GET /rest/api/standard/v1/FieldTicket](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1fieldticket/get.md) ### FieldTicket - [GET /rest/api/standard/v1/FieldTicket/{fieldTicketGuid}](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1fieldticket~1%7Bfieldticketguid%7D/get.md) ### BinaryFile - [GET /rest/api/standard/v1/BinaryFile/{binaryFileId}](https://api.aimsio.com/aimsio_api/transactions/paths/~1rest~1api~1standard~1v1~1binaryfile~1%7Bbinaryfileid%7D/get.md): Retrieve the binary file of an image/file attachment. can be retrieved through our Azure DB connection using query ## Users ### User - [POST /rest/api/standard/v1/User](https://api.aimsio.com/aimsio_api/users/paths/~1rest~1api~1standard~1v1~1user/post.md): Create/update new user(s). To set/reset password, use request ### Initiate Password Reset - [POST /rest/api/standard/v1/InitiatePasswordReset](https://api.aimsio.com/aimsio_api/users/paths/~1rest~1api~1standard~1v1~1initiatepasswordreset/post.md)