# Pull Items via API

*The following explains how to pull item data from Yellow Dog via the Fetch API.*

## Endpoints That Retrieve Item Data

| 
| [GET /items](/rest/fetch/api/items/get-items) | Multiple items from any store unless filtered |
| [GET /items/{itemId}](/rest/fetch/api/items/get-items-byid) | Details on a specific item from any store given its item `id` GUID. |
| [GET /stores/{storeId}/items](/rest/fetch/api/stores/get-stores-items) | Multiple items from a specific store unless filtered |


Of the above three endpoints that are able to retrieve item data, a two-way POS
integration will generally use either
[GET /items](/rest/fetch/api/items/get-items) or
[GET /stores/{storeId}/items](/rest/fetch/api/stores/get-stores-items).
If all of the item data that the POS is interested in can be found in one store,
[GET /stores/{storeId}/items](/rest/fetch/api/stores/get-stores-items) will help
narrow the results to the relevant data. Otherwise,
[GET /items](/rest/fetch/api/items/get-items) can return all item data in the entire
database and the caller can take care of filtering what is needed.

Since the query parameters supported by these two endpoints are the same, it is
relatively easy to start with either endpoint and change your mind later if necessary.

## Start with all items then get limited updates

### Paginate through all of this store's items

`GET /stores/{storeId}/items?Expand=Stores&pageNumber=1&pageSize=100`

For populating your initial datastore, it is best to make a call through all pages of the
items endpoint with the proper expansion query parameters.
From this point forward, you should be able to use the following `lastUpdated`
example to refresh
your datastore with only the changes that have occured in the item configuration.

### Limit Subsequent Item Pulls with `lastUpdated`

`GET /stores/{storeId}/items?Expand=Stores&filter=lastUpdated>=20260401`

This request will return all the items that have a lastUpdated later than `2026-04-01`.
It is highly recommended that you use a request like this for updating your data store
for the latest item configurations.
It is recommended that the lastUpdated filter value be set as the last time the item refresh cycle began.

Note that if the update request does not specify pagination parameters, it will return
no more than the default page size of 100 items. For this reason, you should at least
check the response headers to make sure you have not missed any items in an update due
to this limit.
The frequency at which you check for updates will also influence the typical count
in an update response and how much time goes by without having the latest item data.

## Include store specific item data

When pulling item data, make sure to use the `?Expand=Stores` query parameter to
include store specific data.
Even if you only care about the item data for one store,
you will need this expansion parameter to get pricing information since
Yellow Dog lists it under store specific data.

## POS specific item data

Yellow Dog allows a POS to define its own item annotation requirements to
add POS specific data to items.
See [How to include POS specific item annotations](/rest/user-guide/05-pos-integrations/item-annotation) for details.