For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Dashboard
DocsAPI Reference
DocsAPI Reference
  • Getting Started
    • Welcome
    • Authentication
Dashboard
LogoLogo
On this page
  • Welcome to the Ply API
  • What you can do
  • Quick start
  • Base URL
  • Response format
  • Resource references
  • Error format
  • Conventions
Getting Started

Welcome

Build powerful integrations with the Ply Public API
Was this page helpful?
Edit this page

Authentication

Secure your API requests with API keys and scopes
Next
Built with

Welcome to the Ply API

The Ply Public API gives you programmatic access to your inventory, purchasing, and field operations data. Use it to build custom integrations, sync with your ERP, automate purchasing workflows, or power dashboards with real-time inventory data.

What you can do

Materials & Kits

Create, update, and manage your material catalog and kit assemblies. Track variations, categories, and tags.

Purchase Orders

Create and manage purchase orders end-to-end — from draft to received. Add line items, track status, and manage supplier relationships.

Inventory & Locations

Query real-time inventory levels across all locations. View history, run low-stock and dead-shelf reports, and manage inventory counts.

Field Requests & Pick Lists

Automate field material requests and warehouse pick lists. Track status changes and priority updates.

Quick start

1

Enable the API add-on

The Ply Public API is an add-on feature. Verify that API access is enabled for your account under Settings > Integrations. If you don’t see the API Keys option, contact your account manager to add it to your plan.

2

Get your API key

Navigate to Settings > Integrations > API Keys in the Ply app. Create a new key and select the scopes your integration requires.

3

Make your first request

$curl -X GET "https://api.getply.com/api/v1/materials?page=0&size=10" \
> -H "API_KEY: YOUR_API_KEY"
4

Explore the API Reference

Browse the full API Reference to see all available endpoints, request/response schemas, and try requests directly from the docs.

Base URL

All API requests are made to:

https://api.getply.com/api/v1

A sandbox environment is available for testing:

https://sandbox-api.getply.com/api/v1

Response format

All list endpoints return paginated responses:

1{
2 "data": [...],
3 "pagination": {
4 "page": 0,
5 "size": 20,
6 "totalElements": 142,
7 "totalPages": 8
8 }
9}

Use page, size, and sort query parameters to control pagination:

ParameterDefaultDescription
page0Zero-based page index
size20Items per page (max 100)
sortvariesSort field and direction, e.g. createdAt,desc

Resource references

Related resources are returned as nested objects with id and name:

1{
2 "id": "550e8400-e29b-41d4-a716-446655440000",
3 "orderNumber": "PO-1042",
4 "supplier": {
5 "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
6 "name": "Ferguson Enterprises"
7 },
8 "location": {
9 "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
10 "name": "Main Warehouse"
11 }
12}

Error format

All errors follow a consistent structure:

1{
2 "code": "NOT_FOUND",
3 "message": "Purchase order not found",
4 "status": 404,
5 "timestamp": "2026-03-20T14:30:00",
6 "path": "/api/v1/purchase-orders/550e8400-..."
7}
StatusCodeDescription
400VALIDATION_ERRORInvalid request body or parameters
401MISSING_API_KEY / INVALID_API_KEYMissing or invalid API key
403INSUFFICIENT_SCOPEAPI key lacks required scope
404NOT_FOUNDResource not found
409CONFLICTRequest conflicts with current resource state
429RATE_LIMIT_EXCEEDEDToo many requests
500INTERNAL_ERRORUnexpected server error

Conventions

  • IDs are UUIDs: 550e8400-e29b-41d4-a716-446655440000
  • Timestamps use ISO 8601: 2026-03-20T14:30:00
  • Dates use ISO 8601: 2026-03-20
  • Money values are decimal numbers in USD
  • Deletes return 204 No Content. Most resources are soft-deleted and no longer appear in list or get endpoints. Exception: deleting a supplier detaches it from your business rather than soft-deleting the record