Introduction
Welcome! The Appia API provides the tools needed for developing integrations between the Appia service and other software applications. You can use this API to access Appia resources programmatically using standard HTTP requests in a RESTful manner.
All requests should be made over SSL. All request and response bodies, including errors, are encoded in JSON.
Authentication
To authorize, use this code:
curl "api_endpoint_here"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The Appia service uses API keys to allow access to the API.
To prevent misuse, tokens need to be protected from disclosure in storage and in transport. The Appia service expects for the token to be included in all authenticated requests to the server as part of the Authorization request header field:
Authorization: Bearer a8de477316013a267ecee639aa7e4c9a
Projects
Get All Projects
curl "https://appia.net/api/v1/projects"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"projects": [
{
"id": "0632d565-be61-4944-9c49-fc38453292eb",
"name": "Main Street Resurfacing Project",
"description": "project description",
"notice_to_proceed_date": "2019-11-01",
"status": "construction",
"awarded_amount": "523282.45",
"authorized_amount": "443282.45"
}, {
"id": "d51d04aa-8df1-4021-8589-6b5a7e0f9ac7",
"name": "I-75 Lane Reconfiguration",
"description": "project description",
"notice_to_proceed_date": "2017-12-04",
"status": "construction",
"awarded_amount": "233082.50",
"authorized_amount": "283952.76"
}
]
}
This endpoint retrieves all projects.
HTTP Request
GET https://appia.net/api/v1/projects
Get Project Attachments
curl "https://appia.net/api/v1/projects/<ID>/attachments"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"attachments": [
{
"id": "a1d5be86-4597-48b2-953a-88e3d51ed0dd",
"name": "Bridge's blueprint",
"description": "Detailed blueprint of bridge.",
"attachment_group": null,
"filename": "blueprint.pdf"
}
]
}
This endpoint retrieves a specific project's attachments.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/attachments
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve attachments for |
Get Project Change Orders
curl "https://appia.net/api/v1/projects/<ID>/change_orders"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"change_orders": [
{
"id": "2d5a244e-b5c1-4ecb-b310-ee615a045ea8",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"status": "approved",
"order_type": "Changed Conditions",
"summary": null,
"effective_date": "2019-01-01",
"number": 1,
"amount": "1050.0"
}
]
}
This endpoint retrieves a specific project's change orders.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/change_orders
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve change orders for |
Get Project Contractors
curl "https://appia.net/api/v1/projects/<ID>/contractors"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"contractors": [
{
"id": "e37a96c2-8b32-475b-93ef-3200cd1a8f4e",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"awarded_amount": "123.0",
"prime": true,
"created_at": "2020-07-26T22:25:29.885-04:00",
"contractor_type": "DBE",
"name": "Bob's Contractors, LLC.",
"code": "12-3456"
}
]
}
This endpoint retrieves a specific project's contractors.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/contractors
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve contractors for |
Get Project Daily Diaries
curl "https://appia.net/api/v1/projects/<ID>/diaries"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"diaries": [
{
"id": "6418385f-daa1-4610-9c4d-b3023cc92528",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"diary_at": "2020-01-09",
"complete": true
}
]
}
This endpoint retrieves a specific project's daily diaries.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/diaries
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve diaries for |
Get Project Daily Reports
curl "https://appia.net/api/v1/projects/<ID>/daily_reports"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"daily_reports": [
{
"id": "7970e650-94c6-4483-a15b-b8585ad91840",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"daily_report_at": "2020-07-24",
"status": "draft"
}
]
}
This endpoint retrieves a specific project's daily reports.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/daily_reports
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve daily reports for |
Get Project Fund Packages
curl "https://appia.net/api/v1/projects/<ID>/fund_packages"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"fund_packages": [
{
"id": "772f1a5d-8388-41c7-b6df-9aa134ee4ba5",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"name": "Fund Package"
}
]
}
This endpoint retrieves a specific project's fund packages.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/fund_packages
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve fund packages for |
Get Project Fund Sources
curl "https://appia.net/api/v1/projects/<ID>/fund_sources"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"fund_sources": [
{
"id": "041aae09-0e8d-4d0c-9ade-1924927d5ac8",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"name": "Fund Source"
}
]
}
This endpoint retrieves a specific project's fund sources.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/fund_sources
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve fund sources for |
Get Project Items
curl "https://appia.net/api/v1/projects/<ID>/items"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"items": [
{
"id": "2be0f5d7-d6fe-4200-82a5-cf0497600e0e",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"line_number": "0010",
"code": "201.06",
"description": "select fill",
"section_id": "d0629c7e-e420-45c3-866f-3a9b97a0e6fd",
"unit": "CY",
"quantity": "200.0",
"unit_price": "15.0",
"extension": "3000.0",
"lump_sum": null
}
]
}
This endpoint retrieves a specific project's items.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/items
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve items for |
Get Project Materials
curl "https://appia.net/api/v1/projects/<ID>/materials"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"materials": [
{
"id": "ea68eca6-34af-4438-a664-5605b70bfb42",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"code": "713C",
"description": "202.001 turf",
"unit": "SY"
}
]
}
This endpoint retrieves a specific project's materials.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/materials
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve materials for |
Get Project Overview Data
curl "https://appia.net/api/v1/projects/<ID>"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "975b834f-1f43-40a2-98e1-02fcddea135d",
"name": "Main Street Resurfacing Project",
"description": "<table>\r\n<tbody>\r\n<tr>\r\n<td style=\"display:table-cell !important;border-style:solid;border-width:0px 0px 1px 1px;padding:0.4em 0.6em;overflow:hidden;line-height:2em;vertical-align:middle;border-color:#cccccc;\">I-4 AT SR 559 INTERCHANGE..</td>\r\n</tr>\r\n</tbody>\r\n</table>",
"notice_to_proceed_date": "2017-08-15",
"dbe_goal": "0.0",
"location": null,
"work_type": "",
"status": "construction",
"construction_date": "2017-09-15",
"project_manager": null,
"managing_office": null,
"mbe_goal": "0.0",
"wbe_goal": "0.0",
"created_by": "John Doe",
"awarded_amount": "523282.45",
"completion_date": null,
"asphalt_index_price": "0.0",
"fuel_index_price": "0.0",
"items_type": "project",
"prime_contractor": {
"reference_contractor_id": "72151710-7259-45df-afe5-adca6b1feb3a"
},
"coordinates": [
-82.35243191064104,
29.815243058323965
],
"amount_posted_to_date": "25475.0",
"authorized_amount": "45820.0",
"approved_changes": "0.0",
"paid_total_to_date": "0.0",
"approved_payments_to_date": "0.0",
"awarded_paid_percent": 0.0,
"authorized_paid_percent": 0.0,
"awarded_posted_percent": 55.59799214316892,
"authorized_posted_percent": 55.59799214316892,
"retainage_amount_to_date": "0.0",
"retainage_released_to_date": "0.0",
"liquidated_damages_to_date": "0.0"
}
This endpoint retrieves a specific project's overview data. Coordinates are displayed as longitude (X), latitude (Y).
HTTP Request
GET https://appia.net/api/v1/projects/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve overview data for |
Get Project Payments
curl "https://appia.net/api/v1/projects/<ID>/payments"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"payments": [
{
"id": "7ae5c16b-cade-4ee5-be43-edde6d13c316",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"status": "paid",
"start_at": "2019-11-01",
"end_at": "2019-11-06",
"final": null,
"total": "31685.0",
"total_to_date": "31685.0"
}, {
"id": "8bd3c16b-wade-bee5-be43-edde6d13c316",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"status": "paid",
"start_at": "2019-11-07",
"end_at": "2019-12-06",
"final": true,
"total": "3000.0",
"total_to_date": "34685.0"
}
]
}
This endpoint retrieves a specific project's payments.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/payments
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve payments for |
Get Project Sections
curl "https://appia.net/api/v1/projects/<ID>/sections"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"sections": [
{
"id": "79cdd236-5d66-4d61-863d-5ee3f334fb70",
"number": "1",
"description": "Description 1",
"project_id": "a0bf91a5-6270-4a88-a891-c4e65db886d0"
},
{
"id": "d2eacc4c-b53e-44c8-83a9-a1b8e218f22b",
"number": "2",
"description": "Description 2",
"project_id": "a0bf91a5-6270-4a88-a891-c4e65db886d0"
},
{
"id": "aa53f008-a847-46ed-a963-76e33f574ced",
"number": "10",
"description": "Description 10",
"project_id": "a0bf91a5-6270-4a88-a891-c4e65db886d0"
}
]
}
This endpoint retrieves a specific project's sections.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/sections
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve sections for |
Get Project Stockpiles
curl "https://appia.net/api/v1/projects/<ID>/stockpiles"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"stockpiles": [
{
"id": "7f094848-69b9-4328-9ea5-ba2c9aaf617d",
"item_id": "e22e9b04-b75d-4bba-b5a1-6998e900ad71",
"fund_package_id": "15dc02af-6275-487b-98ff-de975bb57462",
"value": "6175.0",
"recovery": "1098.5",
"value_remaining": "5076.5",
"item": {
"description": "TOPSOIL, FURNISH & SPREAD"
},
"stockpile_number": 1,
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3"
}
]
}
This endpoint retrieves a specific project's stockpiles.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/stockpiles
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve stockpiles for |
Get Project Time Limits
curl "https://appia.net/api/v1/projects/<ID>/time_limits"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"calendar_days": [
{
"id": "e48a650b-fea0-4def-a6d6-e10fea5504ce",
"description": "Calendar Day Time Limit",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"category": "calendar_days",
"is_primary": true,
"liquidated_damages": "500.0",
"completeness_percentage": "101.136363636363636364",
"start_date": "2018-01-01",
"expected_end_date": "2018-03-30",
"days_charged": 89,
"days_remaining": "-1.0",
"original_deadline": "344.0",
"deadline": "88.0",
"liquidated_damages_total": "500.0",
"completed": true
},
{
"id": "53884ee0-d758-4c01-93fb-882feb708571",
"description": "New Calendar Day Time Limit",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"category": "calendar_days",
"is_primary": false,
"liquidated_damages": "50.0",
"completeness_percentage": 0,
"start_date": null,
"expected_end_date": null,
"days_charged": 0,
"days_remaining": "20.0",
"original_deadline": "20.0",
"deadline": "20.0",
"liquidated_damages_total": 0,
"completed": false
}
],
"working_days": [
{
"id": "1162848a-dbe8-42ad-b011-5ba817dc6860",
"description": "Working Day Time Limit",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"category": "working_days",
"is_primary": false,
"liquidated_damages": "250.0",
"completeness_percentage": "5.0",
"start_date": "2020-11-02",
"expected_end_date": "2020-11-06",
"days_charged": 5,
"days_remaining": "95.0",
"original_deadline": "100.0",
"deadline": "100.0",
"liquidated_damages_total": 0,
"completed": false
}
],
"completion_date": [
{
"id": "048e5460-0a3e-41b8-b5fd-134f747e011b",
"description": "Completion Date Time Limit",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"category": "completion_date",
"is_primary": false,
"liquidated_damages": "350.0",
"completeness_percentage": 100.54200542005421,
"days_remaining": -2,
"original_deadline": "2019-01-05",
"deadline": "2019-01-05",
"liquidated_damages_total": "700.0",
"completed": true
},
{
"id": "e9b275d1-1408-4f1e-99b6-37c4df03829f",
"description": "Project Completion",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"category": "completion_date",
"is_primary": false,
"liquidated_damages": "250.0",
"completeness_percentage": 284.8484848484849,
"days_remaining": -732,
"original_deadline": "2019-02-01",
"deadline": "2019-02-01",
"liquidated_damages_total": "183000.0",
"completed": false
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 5
}
}
This endpoint retrieves a specific project's time limits.
HTTP Request
GET https://appia.net/api/v1/projects/<ID>/time_limits
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the project you would like to retrieve time limits for |
Fund Packages
Get a Specific Fund Package
curl "https://appia.net/api/v1/fund_packages/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "995a3abd-eb6a-468c-b018-6a3629a86724",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"name": "Federal",
"created_at": "2020-07-26T22:31:08.872-04:00",
"fund_package_sources": [
{
"id": "728e5cfe-0bc7-4f10-ad0e-a3fa932be9f8",
"fund_source_id": "e4ec30b3-c6cb-4820-84ae-bd0676e078e4",
"extension": "24935.0",
"percent": "100.0",
"created_at": "2020-07-26T22:31:08.879-04:00"
}, {
"id": "27411c02-5bf5-48ed-b687-83df9b2b2540",
"fund_source_id": "52c21229-fd86-4306-acc3-c4cdf57e70ee",
"extension": "0.0",
"percent": "0.0",
"created_at": "2020-07-26T22:31:08.900-04:00"
}
]
}
This endpoint retrieves a specific fund package.
HTTP Request
GET https://appia.net/api/v1/fund_packages/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the fund package to retrieve |
Fund Sources
Get a Specific Fund Source
curl "https://appia.net/api/v1/fund_sources/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "3ccc045a-e2a2-4b5a-899d-f7aed7932932",
"name": "Fund Source 1",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"created_at": "2020-07-26T22:33:07.362-04:00",
"fund_package_sources": [
{
"id": "b58ddcc2-ed9b-4fde-a66a-1c8a2d6be7d5",
"percent": "0.0",
"extension": "0.0",
"fund_package_id": "b09d6ab9-fed2-4a47-b3d5-a8d47b044ccb",
"created_at": "2020-07-26T22:33:07.363-04:00"
}, {
"id": "ed1e6805-2ebb-4957-9fff-83bef360d8a5",
"percent": "65.0",
"extension": "13575.25",
"fund_package_id": "76819980-de0d-461f-bcc4-1791129ff228",
"created_at": "2020-07-26T22:33:07.385-04:00"
}
]
}
This endpoint retrieves a specific fund source.
HTTP Request
GET https://appia.net/api/v1/fund_sources/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the fund source to retrieve |
Daily Reports
Get a Specific Daily Report
curl "https://appia.net/api/v1/daily_reports/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "60d014db-e1c1-4551-bcfd-b6e41b53ee70",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"user_id": 1,
"daily_report_at": "2020-06-27",
"status": "pending",
"weather": "Snowing",
"low_temperature": 30,
"high_temperature": 35,
"weather_day": true,
"remarks": "<b>Severe</b> weather.",
"created_at": "2020-07-26T22:28:55.031-04:00",
"payment_id": null
}
This endpoint retrieves a specific daily report.
HTTP Request
GET https://appia.net/api/v1/daily_reports/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the daily report to retrieve |
Get Daily Report Attachments
curl "https://appia.net/api/v1/daily_reports/<ID>/attachments"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"attachments": [
{
"id": "a1d5be86-4597-48b2-953a-88e3d51ed0dd",
"name": "Bridge's blueprint",
"description": "Detailed blueprint of bridge.",
"attachment_group": null,
"filename": "blueprint.pdf"
}
]
}
This endpoint retrieves a specific daily report's attachments.
HTTP Request
GET https://appia.net/api/v1/daily_reports/<ID>/attachments
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the daily report you would like to retrieve attachments for |
Get Daily Report Custom Fields
curl "https://appia.net/api/v1/daily_reports/<ID>/custom_fields"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"custom_fields": [
{
"id": "10af5b48-af58-488c-ae36-b9090c89795a",
"label": "Special Remarks",
"value": "All went well today."
}
]
}
This endpoint retrieves a specific daily report's custom fields.
HTTP Request
GET https://appia.net/api/v1/daily_reports/<ID>/custom_fields
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the daily report you would like to retrieve custom fields for |
Get Daily Report Equipment
curl "https://appia.net/api/v1/daily_reports/<ID>/equipment_postings"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"equipment_postings": [
{
"id": "69f61453-d929-4044-bcbd-9114e4883244",
"daily_report_id": "60d014db-e1c1-4551-bcfd-b6e41b53ee70",
"contractor_id": "6c9f2458-5421-4c6e-8bb4-b474c7b83f9d",
"active_count": 1,
"active_hours": "6.0",
"idle_count": 1,
"idle_hours": "1.5",
"comments": null,
"created_at": "2020-07-26T22:29:44.275-04:00",
"description": "Bobcat"
}
]
}
This endpoint retrieves a specific daily report's equipment.
HTTP Request
GET https://appia.net/api/v1/daily_reports/<ID>/equipment_postings
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the daily report you would like to retrieve equipment for |
Get Daily Report Item Postings
curl "https://appia.net/api/v1/daily_reports/<ID>/item_postings"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"item_postings": [
{
"id": "fa72fb66-79da-4ecf-8079-f56df9f07577",
"item_id": "7bedaa96-ec85-4adf-8609-e34acc95f627",
"daily_report_id": "e4cdfe48-432e-40cd-9b6a-7540dbecd92a",
"created_at": "2020-07-29T13:13:17.459Z",
"remarks": "Poor weather today.",
"location": "Intersection of Green St",
"contractor_id": "7b5c83ba-ace2-4d72-abda-e9d0392b2bce",
"station_from_plus": "6.0",
"station_to_plus": "7.0",
"station_from": 3,
"station_to": 4,
"quantity": "2.0",
"tag": null,
"unit_price": "1300.0",
"amount": "2600.0",
"import_type": "TR",
"geo_representation": "POINT (104.0 39.0 0.0)",
"item_posting_package_splits": [
{
"id": "e0430f66-d185-4d82-bd92-07505fd0488e",
"item_posting_id": "fa72fb66-79da-4ecf-8079-f56df9f07577",
"fund_package_id": "7e49466b-edac-47c5-8394-e1a9d7e429cc",
"quantity": "2.0",
"created_at": "2020-07-29T13:13:17.461Z",
"amount": "2600.0",
"material_usages": [
{
"id": "aeb24770-a35e-4f14-b20c-5da7e8aca5b5",
"usage_rate": "0.0",
"quantity": "0.0",
"item_material_id": "d6265e7b-0e61-4017-935c-07f99a1c2a9b",
"created_at": "2020-07-29T13:13:17.464Z",
"item_posting_package_split_id": "e0430f66-d185-4d82-bd92-07505fd0488e",
"reviewed": true
}
]
},
{
"id": "85ecee2b-da87-4612-9e33-db9be9f3f2ff",
"item_posting_id": "fa72fb66-79da-4ecf-8079-f56df9f07577",
"fund_package_id": "e732d023-d7b2-4da9-8b66-cfe9a32d56db",
"quantity": "0.0",
"created_at": "2020-07-29T13:13:17.468Z",
"amount": "0.0",
"material_usages": []
}
],
"daily_report_at": "2020-07-06"
}
]
}
This endpoint retrieves a specific daily report's item postings.
HTTP Request
GET https://appia.net/api/v1/daily_reports/<ID>/item_postings
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the daily report you would like to retrieve item postings for |
Get Daily Report Personnel
curl "https://appia.net/api/v1/daily_reports/<ID>/personnel"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"crews": [
{
"id": "8c7c6641-e96c-409e-a960-67889bd0772c",
"daily_report_id": "60d014db-e1c1-4551-bcfd-b6e41b53ee70",
"contractor_id": "0a312769-ce58-4ae8-81fc-c095bb955b66",
"name": "Crew #1",
"created_at": "2020-07-26T22:26:20.347-04:00",
"crew_members": [
{
"id": "14061308-3042-4e94-bbcc-9eee09d0c0c6",
"crew_id": "8c7c6641-e96c-409e-a960-67889bd0772c",
"worker_type_id": "13cccbff-40f6-4c14-8f80-b51920f979b4",
"number": 0,
"hours": "0.0",
"created_at": "2020-07-26T22:26:20.350-04:00"
}
]
}
],
"worker_types": [
{
"id": "cd66be5e-20fe-438b-a1b2-37f54f9c4192",
"daily_report_id": "60d014db-e1c1-4551-bcfd-b6e41b53ee70",
"name": "Worker Type #1",
"created_at": "2020-07-26T22:45:09.167-04:00"
}
]
}
This endpoint retrieves a specific daily report's personnel.
HTTP Request
GET https://appia.net/api/v1/daily_reports/<ID>/personnel
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the daily report you would like to retrieve personnel for |
Daily Diary
Get a Specific Daily Diary
curl "https://appia.net/api/v1/diaries/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "ac2b10ea-5f51-4589-9161-03528bb1c4b2",
"diary_at": "2020-12-02",
"remarks": "<p>Checking on both inspection reports in this diary.</p>",
"complete": true,
"project": {
"id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"project_manager": null,
"created_by": "Jane Doe",
"prime_contractor": {
"reference_contractor_id": "c58985ca-5066-4eea-9c72-018d62bdeacd"
}
}
}
This endpoint retrieves a specific daily diary.
HTTP Request
GET https://appia.net/api/v1/diaries/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the daily diary to retrieve |
Get Daily Diary Custom Fields
curl "https://appia.net/api/v1/diaries/<ID>/custom_fields"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"custom_fields": [
{
"id": "af76d971-2b18-42b1-b536-1ec00b4c4430",
"label": "1) Inspectors Name & Work Assignment",
"value": "<p>John Doe</p>\r\n<p>Jen B</p>"
},
{
"id": "d7b90e76-b1bf-43c3-a8cc-71a288ca0179",
"label": "Comments for All Inspector Reports",
"value": "<p>All inspection reports look good. </p>"
},
{
"id": "656fb30e-0e7b-4435-b068-5f1a2f21816f",
"label": "Maintenance and Protection of Traffic",
"value": "<p>No traffic control on this day</p>"
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 3
}
}
This endpoint retrieves a specific daily diary's custom fields.
HTTP Request
GET https://appia.net/api/v1/diaries/<ID>/custom_fields
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the daily diary to retrieve custom fields for |
Get Daily Diary Attachments
curl "https://appia.net/api/v1/diaries/<ID>/attachments"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"attachments": [
{
"id": "f39116b7-5728-4634-9c18-5ed16bdb900b",
"name": "photo.PNG",
"description": "John Doe inspected",
"attachment_group": null,
"filename": "photo_1.PNG"
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
This endpoint retrieves a specific daily diary's attachments.
HTTP Request
GET https://appia.net/api/v1/diaries/<ID>/attachments
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the daily diary to retrieve attachments for |
Item Materials
Get a Specific Item Material
curl "https://appia.net/api/v1/item_materials/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "3bca855c-0789-49ee-91c8-45732c9fee5a",
"usage_rate": "0.9",
"item_id": "a3db9315-aec0-41c5-8fc9-d20b7722a5eb",
"material_id": "ec6027f8-8304-491c-8d62-def04751fcd0",
"created_at": "2020-07-26T22:36:53.749-04:00"
}
This endpoint retrieves a specific item material.
HTTP Request
GET https://appia.net/api/v1/item_materials/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the item material to retrieve |
Items
Get a Specific Item
curl "https://appia.net/api/v1/items/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "74da1cbf-eee3-41ff-ba6c-e3eaef8aec79",
"line_number": "0010",
"code": "201.06",
"description": "select fill",
"created_at": "2020-07-26T22:35:31.546-04:00",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"section_id": "4a332bd7-53e3-4e15-86e3-5f21c0f4862a",
"unit": "CY",
"quantity": "200.0",
"unit_price": "15.0",
"extension": "3000.0",
"has_supplemental_description": null,
"supplemental_description": null,
"fuel_factor": "19.0",
"asphalt_factor": "273.0",
"complete": null,
"unattached": null,
"lump_sum": null,
"pending_quantity": 0,
"remaining_quantity": "115.0",
"placed_quantity": "85.0",
"authorized_quantity": "200.0",
"authorized_extension": "3000.0",
"item_package_splits": [
{
"id": "3902357a-7568-494a-bb70-39efe3f2e1b4",
"quantity": "150.0",
"extension": "2250.0",
"fund_package_id": "8bbb5058-45e9-4b47-af07-0c4b7ec1e8a0",
"created_at": "2020-07-26T22:35:31.548-04:00"
}, {
"id": "eacc39ff-a778-4bf2-bf3c-640c2419c5b4",
"quantity": "50.0",
"extension": "750.0",
"fund_package_id": "96b00c36-7d9b-45e3-b126-7cec90dd2da1",
"created_at": "2020-07-26T22:35:31.550-04:00"
}
]
}
This endpoint retrieves a specific item.
HTTP Request
GET https://appia.net/api/v1/items/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the item to retrieve |
Get Item's Materials
curl "https://appia.net/api/v1/items/<ID>/materials"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"item_materials": [
{
"id": "3bca855c-0789-49ee-91c8-45732c9fee5a",
"usage_rate": "0.9",
"item_id": "74da1cbf-eee3-41ff-ba6c-e3eaef8aec79",
"material_id": "ec6027f8-8304-491c-8d62-def04751fcd0",
"created_at": "2020-07-26T22:36:53.749-04:00"
}
]
}
This endpoint retrieves a specific item's materials.
HTTP Request
GET https://appia.net/api/v1/items/<ID>/materials
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the item you would like to retrieve item materials for |
Materials
Get a Specific Material
curl "https://appia.net/api/v1/materials/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "ec6027f8-8304-491c-8d62-def04751fcd0",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"code": "713C",
"description": "202.001 turf",
"unit": "SY",
"requirements": null,
"created_at": "2020-07-26T22:41:13.209-04:00"
}
This endpoint retrieves a specific material.
HTTP Request
GET https://appia.net/api/v1/materials/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the material to retrieve |
Get Material's Items
curl "https://appia.net/api/v1/materials/<ID>/items"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"item_materials": [
{
"id": "3bca855c-0789-49ee-91c8-45732c9fee5a",
"usage_rate": "0.9",
"item_id": "74da1cbf-eee3-41ff-ba6c-e3eaef8aec79",
"material_id": "ec6027f8-8304-491c-8d62-def04751fcd0",
"created_at": "2020-07-26T22:36:53.749-04:00"
}
]
}
This endpoint retrieves a specific material's items.
HTTP Request
GET https://appia.net/api/v1/materials/<ID>/items
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the material you would like to retrieve item materials for |
Payments
Get a Specific Payment
curl "https://appia.net/api/v1/payments/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "7ae5c16b-cade-4ee5-be43-edde6d13c316",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"status": "paid",
"start_at": "2019-11-01",
"end_at": "2019-11-06",
"approval_at": "2019-11-18",
"payment_at": "2019-11-28",
"retainage_percent": "5.0",
"retainage_cap_percent": "0.0",
"retainage_cap_amount": "0.0",
"retainage_released": "0.0",
"remarks": "<b>payment remarks</b>",
"plain_remarks": "payment remarks",
"adjustment": "0.0",
"adjustment_remarks": "no payment adjustment needed",
"retainage_amount": "887.5",
"final": null,
"retainage_cap_rule": "none",
"retainage_amount_to_date": "887.5",
"paid_amount": "17750.0",
"paid_amount_to_date": "17750.0",
"stockpile_advancement": "14822.5",
"stockpile_recovery": "0.0",
"liquidated_damages": "0.0",
"total": "31685.0",
"total_to_date": "31685.0"
}
This endpoint retrieves a specific payment.
HTTP Request
GET https://appia.net/api/v1/payments/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the payment to retrieve |
Get Payment Item Splits
curl "https://appia.net/api/v1/payments/<ID>/payment_item_splits"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"payment_item_splits": [
{
"id": "109150ee-ae00-4120-a508-247a3ceebe74",
"payment_id": "482722aa-83f6-4157-b6e8-2f79a41cb950",
"item_package_split_id": "f11b2b7f-474f-4e85-82e3-7adafadfe05e",
"item_id":"44fb2f8a-93cf-46e5-b22f-5095b7bba688",
"fund_package_id":"8e26e64a-c052-4f70-a0f3-64e1a6d0c3eb",
"placed_quantity_to_date": "4.0",
"placed_amount_to_date": "8.0",
"created_at": "2020-07-29T21:35:24.351-04:00",
"authorized_quantity": "5.0",
"authorized_extension": "10.0",
"prev_placed_quantity_to_date": "0.0",
"prev_placed_amount_to_date": "0.0",
"prev_paid_quantity_to_date": "0.0",
"prev_paid_amount_to_date": "0.0",
"paid_quantity_to_date": "4.0",
"paid_amount_to_date": "8.0",
"prev_authorized_quantity_to_date": "0.0",
"prev_authorized_extension_to_date": "0.0",
"authorized_quantity_to_date": "4.0",
"authorized_extension_to_date": "8.0",
"payable_material_quantity": "0.0",
"has_materials": false,
"insufficient_materials": false,
"witheld_quantity": "0.0",
"paid_quantity": "4.0",
"paid_amount": "8.0"
}, {
"id": "b74e9359-130d-4f56-b944-76e51bb48919",
"payment_id": "482722aa-83f6-4157-b6e8-2f79a41cb950",
"item_package_split_id": "0b1c46ac-a45b-4734-b5ff-b3900c8ec4ac",
"item_id":"5fd19a29-dcdf-4d36-b991-88d386e6a4ae",
"fund_package_id":"8e26e64a-c052-4f70-a0f3-64e1a6d0c3eb",
"placed_quantity_to_date": "6.0",
"placed_amount_to_date": "12.0",
"created_at": "2020-07-29T21:35:24.354-04:00",
"authorized_quantity": "6.0",
"authorized_extension": "12.0",
"prev_placed_quantity_to_date": "0.0",
"prev_placed_amount_to_date": "0.0",
"prev_paid_quantity_to_date": "0.0",
"prev_paid_amount_to_date": "0.0",
"paid_quantity_to_date": "6.0",
"paid_amount_to_date": "12.0",
"prev_authorized_quantity_to_date": "0.0",
"prev_authorized_extension_to_date": "0.0",
"authorized_quantity_to_date": "6.0",
"authorized_extension_to_date": "12.0",
"payable_material_quantity": "0.0",
"has_materials": false,
"insufficient_materials": false,
"witheld_quantity": "0.0",
"paid_quantity": "6.0",
"paid_amount": "12.0"
}
]
}
This endpoint retrieves a specific payment's item splits.
HTTP Request
GET https://appia.net/api/v1/payments/<ID>/payment_item_splits
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the payment you would like to retrieve item splits for |
Get Payment Attachments
curl "https://appia.net/api/v1/payments/<ID>/attachments"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"attachments": [
{
"id": "030960ae-7707-4288-b74f-83991e1a690c",
"name": "eTicket",
"description": "Proof of delivery for stockpile",
"attachment_group": null,
"filename": "dnp-61400083-32195894.pdf",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3"
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
This endpoint retrieves a specific payment's attachments.
HTTP Request
GET https://appia.net/api/v1/payments/<ID>/attachments
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the payment to retrieve attachments for |
Stockpiles
Get a Specific Stockpile
curl "https://appia.net/api/v1/stockpiles/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "7f094848-69b9-4328-9ea5-ba2c9aaf617d",
"item_id": "e22e9b04-b75d-4bba-b5a1-6998e900ad71",
"fund_package_id": "15dc02af-6275-487b-98ff-de975bb57462",
"recovery_rate": "6.5",
"value": "6175.0",
"value_remaining": "5076.5",
"begin_recovery_on": "2020-12-01",
"description": "",
"payment_stockpiles": [
{
"recovery_amount": "1098.5"
},
{
"recovery_amount": "0.0"
}
]
}
This endpoint retrieves a specific stockpile.
HTTP Request
GET https://appia.net/api/v1/stockpiles/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the stockpile to retrieve |
Get Stockpile Events
curl "https://appia.net/api/v1/stockpiles/<ID>/events"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"stockpile_events": [
{
"effective_date": "2020-06-03",
"quantity_change": null,
"value_change": null,
"quantity_remaining": null,
"value_remaining": null,
"action": "Payment #3",
"note": "Advancement: $6,175.00"
}
]
}
This endpoint retrieves a specific stockpile's events.
HTTP Request
GET https://appia.net/api/v1/stockpiles/<ID>/events
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the stockpile to retrieve events for |
Get Stockpile Attachments
curl "https://appia.net/api/v1/stockpiles/<ID>/attachments"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"attachments": [
{
"id": "577fe48a-c262-4713-a9db-d074c16672c0",
"name": "Top soil",
"description": "Picture of delivery",
"attachment_group": null,
"filename": "20170623_130138.jpg"
}
]
}
This endpoint retrieves a specific stockpile's attachments.
HTTP Request
GET https://appia.net/api/v1/stockpiles/<ID>/attachments
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the stockpile to retrieve attachments for |
Time Limits
Get a Specific Time Limit
curl "https://appia.net/api/v1/time_limits/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
Working or Calendar Day Time Limit
{
"id": "d72994d7-a295-44ea-aaa5-2335759ba67d",
"description": "Primary",
"project_id": "975b834f-1f43-40a2-98e1-02fcddea135d",
"category": "working_days",
"is_primary": false,
"liquidated_damages": "112.0",
"completeness_percentage": "450.0",
"start_date": "2021-04-01",
"expected_end_date": "2021-04-08",
"days_charged": 4.5,
"days_remaining": "-3.5",
"original_deadline": "1.0",
"deadline": "1.0",
"liquidated_damages_total": "392.0",
"completed": false
}
This endpoint retrieves a specific time limit.
HTTP Request
GET https://appia.net/api/v1/time_limits/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the time limit to retrieve |
Completion Date Time Limit
{
"id": "931f3201-5d56-4945-a345-215ba9acd516",
"description": "Bridge Completion",
"project_id": "975b834f-1f43-40a2-98e1-02fcddea135d",
"category": "completion_date",
"is_primary": false,
"liquidated_damages": "100.0",
"completeness_percentage": 96.897,
"days_remaining": 43,
"original_deadline": "2021-06-01",
"deadline": "2021-06-01",
"liquidated_damages_total": 0,
"completed": false
}
Get Working Day Charges
curl "https://appia.net/api/v1/time_limits/<ID>/charges"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"charges": [
{
"id": "ba5002b3-d3a2-4835-9d5f-b2189f5d43eb",
"time_limit_id": "d72994d7-a295-44ea-aaa5-2335759ba67d",
"charged_at": "2021-04-05",
"remarks": null,
"created_at": "2021-04-19T14:34:25.686Z",
"updated_at": "2021-04-19T14:34:25.686Z",
"charge": "full_day",
"controlling_item_id": "1069e23d-5126-45b1-b924-a637367bf474",
"contractor_working": true
},
{
"id": "bd5125ad-1eed-483a-ac55-d827f54c4411",
"time_limit_id": "d72994d7-a295-44ea-aaa5-2335759ba67d",
"charged_at": "2021-04-06",
"remarks": "Controlling item was 1.4. Issues: Delayed transport.",
"created_at": "2021-04-19T14:34:25.688Z",
"updated_at": "2021-04-19T15:15:33.552Z",
"charge": "half_day",
"controlling_item_id": "1069e23d-5126-45b1-b924-a637367bf474",
"contractor_working": true
},
{
"id": "3209edc0-f384-49a6-9494-ceeabc4011dd",
"time_limit_id": "d72994d7-a295-44ea-aaa5-2335759ba67d",
"charged_at": "2021-04-07",
"remarks": null,
"created_at": "2021-04-19T14:34:25.689Z",
"updated_at": "2021-04-19T14:34:25.689Z",
"charge": "half_day",
"controlling_item_id": null,
"contractor_working": false
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 3
}
}
This endpoint retrieves a specific working day time limit's charges.
HTTP Request
GET https://appia.net/api/v1/time_limits/<ID>/charges
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the working day time limit to retrieve charges for |
Sections
Get a Specific Section
curl "https://appia.net/api/v1/sections/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "44d14c63-ddf1-4c9d-bdbb-0f0f22829a7f",
"number": "1",
"description": "Pavement",
"project_id": "0632d565-be61-4944-9c49-fc38453292eb",
"created_at": "2020-07-26T22:44:26.993-04:00"
}
This endpoint retrieves a specific section.
HTTP Request
GET https://appia.net/api/v1/sections/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the section to retrieve |
Change Orders
Get a Specific Change Order
curl "https://appia.net/api/v1/change_orders/<ID>"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"id": "a9e2f527-43e7-4ad7-a916-b32bda8a907a",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"status": "approved",
"order_type": "Scope",
"summary": "Scope Change",
"description": "<p>scope change. </p>",
"effective_date": "2021-01-04",
"created_at": "2021-01-04T15:49:11.142Z",
"number": 7,
"project": {
"pending_amount": "6177.0"
}
}
This endpoint retrieves a specific change order.
HTTP Request
GET https://appia.net/api/v1/change_orders/<ID>
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the change order to retrieve |
Get Quantity Changes
curl "https://appia.net/api/v1/change_orders/<ID>/quantities"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"change_order_quantities": [
{
"change_order_id": "85a5c80f-2fb2-4248-a584-a690bd12b1b5",
"item_id": "6745c850-07f8-4a11-8b92-5e26d60154a3",
"extension_delta": "6177.0",
"unit": "STA",
"unit_price": "87.0",
"prev_quantity": "71.0",
"quantity_delta": "71.0",
"description": "EPOXY PAVEMENT MARKINGS",
"supplemental_description": null,
"quantity": "142.0",
"line_number": "0070",
"section": {
"id": "6f8dc2b3-071c-4582-bb64-3e771a341228",
"number": "1",
"description": "Description",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"created_at": "2018-04-08T16:53:19.417Z",
"updated_at": "2018-04-08T16:53:19.417Z",
"number_sort": " 1"
},
"change_order_quantity_splits": [
{
"fund_package_id": "9fadf77f-79b1-4ba9-973d-d481a47f2fe6"
},
{
"fund_package_id": "c70d155f-53a2-45e1-8856-eb156e2ea87b"
},
{
"fund_package_id": "24b2d97d-3847-4049-a0ab-af8d66fe4162"
},
{
"fund_package_id": "8aa5e6d9-a565-44bd-a859-a241d4905d23"
},
{
"fund_package_id": "15dc02af-6275-487b-98ff-de975bb57462"
}
],
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3"
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
This endpoint retrieves a specific change order's quantity changes.
HTTP Request
GET https://appia.net/api/v1/change_orders/<ID>/quantities
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the change order to retrieve quantities for |
Get New Items Changes
curl "https://appia.net/api/v1/change_orders/<ID>/items"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"change_order_items": [
{
"change_order_id": "709f450a-5dd6-450f-8386-fca901f5db03",
"item_id": "0bc1e9f2-1f31-4b27-aa8a-339656b37711",
"reason": "Different Type",
"line_number": "0620",
"description": "SANITARY SEWER, PVC 8\"",
"extension": "0.0",
"supplemental_description": null,
"section": {
"id": "6f8dc2b3-071c-4582-bb64-3e771a341228",
"number": "1",
"description": "Description",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3",
"created_at": "2018-04-08T16:53:19.417Z",
"updated_at": "2018-04-08T16:53:19.417Z",
"number_sort": " 1"
},
"unit": "LF",
"unit_price": "0.0",
"quantity": "0.0",
"change_order_item_splits": [
{
"fund_package_id": "9fadf77f-79b1-4ba9-973d-d481a47f2fe6"
},
{
"fund_package_id": "c70d155f-53a2-45e1-8856-eb156e2ea87b"
},
{
"fund_package_id": "24b2d97d-3847-4049-a0ab-af8d66fe4162"
},
{
"fund_package_id": "8aa5e6d9-a565-44bd-a859-a241d4905d23"
},
{
"fund_package_id": "15dc02af-6275-487b-98ff-de975bb57462"
}
],
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3"
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
This endpoint retrieves a specific change order's new item changes.
HTTP Request
GET https://appia.net/api/v1/change_orders/<ID>/items
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the change order to retrieve new item changes for |
Get Time Limit Changes
curl "https://appia.net/api/v1/change_orders/<ID>/times"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"change_order_times": [
{
"change_order_id": "61677fb7-8a4a-4d39-8b2f-ec0081389183",
"original_deadline": "2019-02-01",
"authorized_deadline": "2019-02-01",
"proposed_extension": 705,
"proposed_deadline": "2021-01-06",
"time_limit": {
"category": "completion_date"
},
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3"
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
This endpoint retrieves a specific change order's time limit changes.
HTTP Request
GET https://appia.net/api/v1/change_orders/<ID>/times
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the change order to retrieve time limit changes for |
Get New Time Limit Changes
curl "https://appia.net/api/v1/change_orders/<ID>/time_limits"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"change_order_time_limits": [
{
"change_order_id": "695ca307-79b1-4272-9533-88e9cc8ec289",
"description": "Project Completion",
"deadline_date": "2019-02-01",
"liquidated_damages": "250.0",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3"
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 1
}
}
This endpoint retrieves a specific change order's new time limit changes.
HTTP Request
GET https://appia.net/api/v1/change_orders/<ID>/time_limits
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the change order to retrieve new time limit changes for |
Get Change Order Attachments
curl "https://appia.net/api/v1/change_orders/<ID>/attachments"
-H "Authorization: a8de477316013a267ecee639aa7e4c9a"
The above command returns JSON structured like this:
{
"attachments": [
{
"id": "80698a09-fdc4-46d1-a4b9-b9d396f47f3d",
"name": "export download FG.PNG",
"description": "attachment 1",
"attachment_group": null,
"filename": "export_download_FG.PNG",
"change_order_id": "a9e2f527-43e7-4ad7-a916-b32bda8a907a",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3"
},
{
"id": "0602bdb7-2036-46d5-a60c-5a7f247681ce",
"name": "export FG from Items.PNG",
"description": "attachment 2",
"attachment_group": null,
"filename": "export_FG_from_Items.PNG",
"change_order_id": "a9e2f527-43e7-4ad7-a916-b32bda8a907a",
"project_id": "9dc06000-e733-4349-a9f3-78caf91686c3"
}
],
"meta": {
"current_page": 1,
"next_page": null,
"prev_page": null,
"total_pages": 1,
"total_count": 2
}
}
This endpoint retrieves a specific change order's attachments.
HTTP Request
GET https://appia.net/api/v1/change_orders/<ID>/attachments
URL Parameters
Parameter | Description |
---|---|
ID | The ID of the change order to retrieve attachments for |
Pagination
Paginated json will include a meta key with pagination data like this:
curl "https://appia.net/api/v1/projects?page=2&per_page=10"
-H "Authorization: Bearer a8de477316013a267ecee639aa7e4c9a"
{
"meta": {
"current_page": 2,
"next_page": 3,
"prev_page": 1,
"total_pages": 5,
"total_count": 52
}
}
Responses are paginated to make large object list responses more manageable. You can control pagination with the page and per_page parameters. Pages start at 1 and the first page will be returned if no page is specified. The number of results per page can be any value between 0 and 100 and defaults to 30.
Query Parameters
Parameter | Default | Description |
---|---|---|
page | 1 | The page number to retrieve |
per_page | 30 | The number of results per page |
Errors
An example of a JSON error response
{ "title": "Not Found", "status": 404 }
The Appia service uses standard HTTP response codes to indicate success or failure of an API request. In general, codes in the 2xx range indicate success, codes in the 4xx range indicate an error that resulted from the provided information, and codes in the 5xx range indicate an error with the Appia service's servers. The Appia API uses the following error codes:
Error Code | Meaning |
---|---|
400 | Bad Request -- The request is malformed. |
401 | Unauthorized -- The API key is not valid. |
403 | Forbidden -- Not authorized to access the requested resource. |
404 | Not Found -- The specified resource could not be found. |
429 | Too Many Requests -- Recieved too many requests (see Rate Limiting). |
500 | Internal Server Error -- We had a problem with our server. Try again later. |
Rate Limiting
Example of HTTP headers and JSON response when the rate limited has been exceeded.
X-Rate-Limit-Limit → 60
X-Rate-Limit-Remaining → 0
X-Rate-Limit-Reset → 2020-10-04 12:58:52 -0400
{
"error": "You have surpassed the maximum number of requests. Please wait until your limit resets.",
"retry_after": "2020-10-04 12:58:52 -0400"
}
Limits are placed on the number of API requests you may make using your API key. This is to prevent abuse that would degrade our ability to maintain consistent API performance for all users. These limits are applied across all Appia API requests for each API key. Exceeding these limits will lead to your API key being temporarily blocked from making further requests.
HTTP Headers and Response Codes
When the rate limit for a given API endpoint is exceeded, it will return an HTTP 429 “Too Many Requests” response code.
The following headers will be returned:
X-Rate-Limit-Limit: The limit that you cannot surpass in a given amount of time.
X-Rate-Limit-Remaining: The number of calls you have available until a given reset time stamp.
X-Rate-Limit-Reset: The timestamp in UTC format for when the limits will be reset.