NAV Navbar
cURL

Introduction

Welcome! Appia's 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 programmatcally 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 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 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 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

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 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 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 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 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": "91cbea15-d7d8-4114-929b-825ec4f2ba03",
      "item_id": "05b95afd-fbfe-4b96-ab32-26d3e8aecaed",
      "daily_report_id": "60d014db-e1c1-4551-bcfd-b6e41b53ee70",
      "created_at": "2020-07-26T22:37:58.608-04:00",
      "remarks": null,
      "location": "Gainesville",
      "contractor_id": "0e0f065b-1138-488b-8708-cb230b475faf",
      "station_from_plus": "2.5",
      "station_to_plus": "1.03",
      "station_from": 1,
      "station_to": 2,
      "quantity": "0.5",
      "unit_price": "70.0",
      "amount": "35.0",
      "item_posting_package_splits": [
        {
          "id": "65b18818-f18c-4684-876e-8209335ad126",
          "fund_package_id": "b11a2dee-0166-4337-9fe7-2d2952a3cc22",
          "quantity": "0.5",
          "created_at": "2020-07-26T22:37:58.610-04:00",
          "amount": "35.0",
          "material_usages": [
            {
              "id": "ddc1375b-a5ef-4930-8216-a7478ef6f858",
              "usage_rate": "1.1",
              "quantity": "0.55",
              "item_material_id": "193cf212-4604-4248-a51a-a126a6e9320c",
              "created_at": "2020-07-26T22:37:58.636-04:00",
              "reviewed": true
            }
          ]
        }, {
          "id": "90e2918f-e08c-43ba-b540-b16a684d7d92",
          "fund_package_id": "3e43e36c-3d67-49df-a644-c03ed8c42428",
          "quantity": "0.0",
          "created_at": "2020-07-26T22:37:58.611-04:00",
          "amount": "0.0",
          "material_usages": []
        }
      ]
    }
  ]
}

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 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

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",
  "paid_amount": "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/daily_reports/<ID>/payment_item_splits

URL Parameters

Parameter Description
ID The ID of the payment you would like to retrieve item splits 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

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

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 Appia'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: