canonical: https://jentic.com/apis/prioritysoftware.github.io/prioritysoftware-github

# Prioritysoftware Priority REST API

Priority REST API provides OData-based access to Priority ERP entities for reading, querying, creating, updating, and deleting business data. The API exposes 11 endpoints supporting full CRUD on dynamic entity collections, nested entity navigation, batch operations for bulk processing, and incremental sync via the $since parameter. Authentication options include Basic auth, OAuth2 via External ID, and Personal Access Tokens.

## For AI agents

Access Priority ERP via OData for CRUD, batch operations, and incremental sync. Supports OAuth2, Basic auth, and PAT across all Priority business forms and subforms.

## Scope

Does not handle payroll, HR management, or manufacturing execution - use for OData-based CRUD, batch, and sync access to Priority ERP business entities only.

## Capabilities

- Query any Priority ERP entity collection with OData filter, orderby, select, expand, and since parameters
- Perform incremental data sync using the $since timestamp parameter for modified records
- Execute batch operations to process multiple inserts and updates in a single request
- Navigate multi-level entity hierarchies through parent-child subform paths
- Authenticate via OAuth2 authorization code flow, Basic auth, or Personal Access Tokens
- Create and update related entities at nested subform levels
- Delete entities from any Priority form collection by key

## Use cases

### Incremental Data Synchronization

Keep external systems in sync with Priority ERP by querying only records modified since the last sync point. The $since parameter accepts an ISO 8601 timestamp and returns only entities changed after that time. This dramatically reduces data transfer for integrations that run frequently, enabling near-real-time sync of orders, invoices, and inventory without pulling entire datasets.

Example prompt: Query the ORDERS entity collection with $since set to '2026-06-14T00:00:00Z' to retrieve all orders modified in the last 24 hours, and return their order numbers and status

### Multi-Level Entity Management

Create and manage nested business entities through Priority's hierarchical form structure. The API supports creating parent entities and then adding child records at multiple levels, such as creating an order header and then posting line items and delivery details as related entities. PATCH operations at nested paths allow updating individual line items without touching the parent record.

Example prompt: Create a new ORDERS entity with CUSTNAME 'Beta Corp', then POST two ORDERITEMS related entities with PARTNAME 'A100' qty 10 and PARTNAME 'B200' qty 5, then PATCH the second item to qty 8

### Batch Bulk Processing

Process high volumes of ERP data changes in single batch requests. The batch endpoint accepts multiple insert and update operations, processes them server-side, and returns consolidated results. This is essential for nightly data imports, warehouse stock adjustments, or end-of-day accounting reconciliations where hundreds of records need updating atomically.

Example prompt: Execute a batch operation on ORDERS('ORD001')/$batch containing 5 insert operations to add new ORDERITEMS with different part numbers and quantities

### AI Agent ERP Access via Jentic

AI agents can interact with Priority ERP through Jentic without manually constructing OData URLs or managing OAuth2 token refresh. Jentic provides typed operation schemas for all Priority endpoints and handles credential lifecycle, enabling agents to query financial data, create business records, and perform batch operations by expressing intent in natural language.

Example prompt: Search Jentic for 'sync priority erp orders since yesterday', load the getEntityCollection operation schema, and execute with entityCollection 'ORDERS' and $since '2026-06-14T00:00:00Z'

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/` | List available entity collections |
| GET | `/$metadata` | Get OData schema metadata |
| GET | `/{entityCollection}` | Query entities with OData parameters and $since |
| POST | `/{entityCollection}` | Create a new entity |
| GET | `/{entityCollection}('{entityId}')` | Retrieve an entity by ID |
| PATCH | `/{entityCollection}('{entityId}')` | Update an entity |
| GET | `/{entityCollection}('{entityId}')/{relatedEntity}` | Navigate to related entities |
| POST | `/{entityCollection}('{entityId}')/$batch` | Batch insert/update operations |

## Key resources

- **Entity Collections** — CRUD operations on any Priority form with OData query parameters and incremental sync
- **Related Entities** — Navigate and manage nested subform entities through parent-child paths
- **Batch Operations** — Combine multiple insert/update operations into single requests for bulk processing
- **Service Metadata** — Discover available entity collections and retrieve OData schema definitions

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 64 / 100
- **Maturity:** AI-Aware
- **Dimensions:**
  - Foundational Compliance: 74 / 100
  - Developer Experience & Jentic Compatibility: 60 / 100
  - AI-Readiness & Agent Experience: 53 / 100
  - Agent Usability: 94 / 100
  - Security: 50 / 100
  - AI Discoverability: 77 / 100
- **View full report:** https://jentic.com/apis/prioritysoftware.github.io/prioritysoftware-github/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Priority REST API by hand means choosing Basic auth, OAuth2, or a Personal Access Token, refreshing OAuth2 tokens yourself, and assembling the templated OData host with your server, environment, and company before touching the {entityCollection} path. Through Jentic you install once, import the Priority REST API from the API Directory, store the credentials once, and your agent calls it.
- **Permission scoping:** Priority puts the entity id in the URL path (/{entityCollection}('{entityId}')), so a rule can pin your agent to specific entity records. You choose the operations it may call, so a write like PATCH on an entity is not included unless you add it.
- **Credential handling:** Your Priority Basic auth credentials, OAuth2 token, or Personal Access Token are stored once, encrypted, by your own Jentic One instance and injected at execution time. They never enter the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'sync orders from Priority since yesterday' or 'create an invoice in Priority ERP', and Jentic returns the matching operation with its input schema, including the dynamic entity collection path variable, so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Priority REST API** — Jentic-generated spec for the same Priority ERP with metadata cache clearing
- **Priority Software REST API** — Vendor-official spec with app license auth and explicit rate limit documentation
- **Shopify API** — E-commerce platform for order capture that syncs with Priority ERP back-office

## FAQ

### What authentication does the Priority REST API support?

The API supports three authentication methods: Basic auth with Priority username and password, OAuth2 via External ID using the authorization code flow, and Personal Access Tokens (PAT) passed in the Authorization header. OAuth2 is recommended for production integrations where token refresh is needed. Through Jentic, all credential types are stored encrypted in the vault.

### How do I perform incremental sync with the Priority REST API?

Use the $since query parameter on the GET /{entityCollection} endpoint with an ISO 8601 timestamp value. The API returns only entities modified after that timestamp. For example, GET /ORDERS?$since=2026-06-14T00:00:00Z returns orders changed in the last day. Store the latest sync timestamp after each run for the next query.

### Can I execute batch operations with the Priority REST API?

Yes. POST to /{entityCollection}('{entityId}')/$batch with a JSON body containing multiple insert or update operations. This processes them server-side in a single request, reducing network overhead for bulk data changes. Useful for nightly imports or bulk inventory adjustments.

### How do I navigate to related subform entities?

Use the path pattern GET /{entityCollection}('{entityId}')/{relatedEntity} to access child records. For example, GET /ORDERS('ORD001')/ORDERITEMS returns all line items for that order. You can also POST to the same path to create new related entities, or PATCH /{entityCollection}('{entityId}')/{relatedEntity}('{relatedEntityId}') to update a specific child record.

### How do I query Priority ERP forms through Jentic?

Search Jentic for 'query priority erp orders' or any intent describing your data need. Load the getEntityCollection operation schema which includes the entityCollection path parameter and all OData query options. Execute with your form name and filters. Install with pip install jentic and set JENTIC_AGENT_API_KEY.

### What entity collections are available in the Priority REST API?

Call GET / (the service root) to retrieve a list of all available entity collections in your Priority instance. Each entry has a name (the form name like ORDERS, CUSTOMERS, INVOICES) and a URL. The full schema is at GET /$metadata which returns an XML document describing all entity types, properties, and relationships.

### Can I limit what my agent is allowed to do with the Priority REST API?

Yes. Because you run Jentic One yourself, your own rules decide which Priority operations the agent may call, so read-only work like GET on an entity collection can be allowed while a write such as PATCH or a POST batch insert stays off unless you add it. Since Priority puts the entity id in the URL path (/{entityCollection}('{entityId}')), you can pin the agent to specific entity records rather than a whole collection. Your Basic auth, OAuth2 token, or Personal Access Token is injected only at execution time under those rules, so the agent never sees the raw credentials.
