Skip to content

Find Offers

Request

Find and return offers that match the filters given in the request. This supports filtering by a set of:

  • part IDs, including off-the-shelf part IDs, custom part specification IDs, IPNs, and custom component IDs.
  • import context IDs, for off-the-shelf offers linked to an import context.

The above filters may be used on their own or can be combined. In the latter case, only offers matching all filters are returned.

The endpoint supports pagination. Only a limited amount of offers will be returned in one call, this is controlled through the limit parameter. If more offers match, a pagination cursor is returned in the response. This pagination cursor can be used for subsequent calls to the endpoint to find more matching offers. The process can be repeated until all matching offers are returned.

For the request and response body shapes, see the FindOffersRequest and FindOffersResult specifications, as well as the OfferResponse shape. The size of the request is limited, also see the specification there.

Security
BearerAuth
Headers
Acceptstring(OfferAcceptHeader)required

Set this to application/api.luminovo.offer-v1+json.

Value:"application/api.luminovo.offer-v1+json"
Bodyapplication/jsonrequired
cursorstring or null

The cursor to continue returning offers from. This is an opaque string, only a cursor previously returned by this endpoint should be used as input.

In the initial request, no cursor or null should be given.

limitinteger or null, (int64), [ 1 .. 1000 ]

The maximum number of offers to return. If at least this many offers matching the filters remain after the current cursor, then limit offers are returned. The endpoint will never return more than the given limit of offers.

If specified, the limit must be at least 1 and at most 1000. If not specified, the limit defaults to 100.

Default:100
Example:100
filtersobject(FindOffersFilters)required

The filters to find offers for. If the field for a filter is null or not given, then it is not applied. If multiple filters are given, then an offer only matches if it passes all of the given filters.

At least one filter must be given.

curl -i -X POST \
  https://api.luminovo.com/offers/find \
  -H 'Accept: application/api.luminovo.offer-v1+json' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "cursor": "string",
    "limit": 100,
    "filters": {
      "part_ids": [
        "OffTheShelf:a1b2c3d4-5678-90ab-cdef-123456789012",
        "CustomComponent:IPN-001234"
      ],
      "import_context_ids": [
        "0b822595-b86e-4478-aa83-5ac266142653",
        "26446bea-886e-4b01-ba8a-3c955c3bf242"
      ]
    }
  }'

Responses

Successfully found offers

Bodyapplication/json
offersArray of any(OfferResponseV2)required

The offers that match the filters, starting at the input cursor, up to the input limit.

paginationobject(FindOffersPaginationResponse)required

Pagination information on whether more offers are available, and if so, the cursor to continue from.

Response
{ "offers": [ { … } ], "pagination": { "next_cursor": "string", "has_more": true } }