Skip to main content

Getting started

The Pickware ERP API uses GraphQL over HTTPS. Every request — queries and mutations — is an HTTP POST to the GraphQL endpoint with a JSON body containing a query string and, optionally, a variables object and an operationName. GET is not supported; use POST even for read-only queries. The exact API base URL is provided during onboarding.

POST https://<your-pickware-api-domain>/api/_action/pickware-graphql
Content-Type: application/json

Run your first query

This query fetches the first five products and their pagination cursors. See the generated products query, Product type, and ProductFilterInput reference for all available fields and filters.

query FirstProducts {
products(first: 5) {
edges {
cursor
node {
id
productNumber
gtin
name
physicalStock
availableStock
}
}
pageInfo {
hasNextPage
endCursor
}
}
}

Minimal curl example

Replace $PICKWARE_API_TOKEN with a token that has the required scopes. Token handling is described in Authentication.

curl https://<your-pickware-api-domain>/api/_action/pickware-graphql \
--request POST \
--header "Authorization: Bearer $PICKWARE_API_TOKEN" \
--header "Content-Type: application/json" \
--data '{"query":"query FirstProducts { products(first: 5) { edges { node { id productNumber gtin name physicalStock availableStock } } pageInfo { hasNextPage endCursor } } }"}'

Using a GraphQL client library

The curl example shows that the wire protocol is plain JSON over HTTPS, so any HTTP client works. For real integrations a GraphQL client is usually a better fit — it handles variable encoding, response typing, retries, and (with a generated SDK) schema-aware autocomplete. Some well-established options:

Pair any of these with a code generator (for example GraphQL Code Generator) to get types and helpers derived from the SDL.

Pagination

List fields use cursor-based pagination. Pass first to limit the page size and after with the endCursor from the previous response to fetch the next page. The shared PageInfo type describes the pagination metadata returned by connection fields.

For synchronization jobs, continue with Working with lists.