Journey Docs
Partner API ExplorerFulfillments

Search fulfillments

Required scopepartner:fulfillments:read
GET
/v1/partner/fulfillments/search

Free-text search across offer name, verification code, and member name, with status, redemption-type, property, and date filters. Returns richer rows than the plain list.

Authorization

headerAuthorizationBearer <token>

WorkOS access token (JWT) for a user who is a member of the partner organization. The organization the request is scoped to is taken from the token, not from a header or query parameter.

Only a JWT is accepted in this header. A Journey jny_ API key sent as a bearer token is rejected with 401 Invalid or expired token; send it in X-API-Key instead.

WorkOS organization API keys are not accepted yet.

Query Parameters

claimedAfter?string

Filter: claimed on or after (ISO 8601)

claimedBefore?string

Filter: claimed on or before (ISO 8601)

expiresAfter?string

Filter: expires on or after (ISO 8601)

expiresBefore?string

Filter: expires on or before (ISO 8601)

fulfilledAfter?string

Filter: fulfilled on or after (ISO 8601)

fulfilledBefore?string

Filter: fulfilled on or before (ISO 8601)

limit?number
Range1 <= value <= 100
offset?number
Range0 <= value
organizationId?string

External org ID (HXP UUID or WorkOS org ID) for superadmins querying a specific org

propertyId?number
q?string

Generic search across offer name, verification code, and member name

Length2 <= length
redemptionType?string

Comma-separated redemption types to include: direct,requireApproval,externalCode,static,propertyInternal,journeyInternal,user,notification,giveaway. When omitted, defaults to excluding static only — every other type (direct, requireApproval, externalCode, journeyInternal, ...) is returned, so the approval queue (pending_approval rows are always requireApproval) stays intact while static catalog offers are hidden. Pass an explicit list to filter to specific types instead.

status?string

Comma-separated statuses: claimed,fulfilled,pending_approval,approved,rejected,expired

Response Body

Matching fulfillments with expanded member, offer, reservation, and property detail.

application/json
  1. response
items*array<>
limit*number
offset*number
total*number
curl -X GET 'https://api-prd.cf.journey.com/v1/partner/fulfillments/search'
{  "items": [    {      "approvalStatus": "string",      "canApprove": true,      "canFulfill": true,      "claimedAt": "string",      "createdAt": "string",      "expiresAt": "string",      "fulfilledAt": "string",      "id": "string",      "member": {        "externalMemberId": "string",        "firstName": "string",        "lastName": "string"      },      "offer": {        "categoryName": "string",        "categorySlug": "string",        "fulfillmentType": "string",        "howToRedeem": "string",        "imageThumbUrl": "string",        "name": "string",        "publicName": "string",        "requiresApproval": true,        "staffInstructions": "string"      },      "offerId": "string",      "operatorNotes": "string",      "perkId": 0,      "pointsCharged": 0,      "property": {        "externalId": "string",        "id": 0,        "name": "string"      },      "qrCodeUrl": "string",      "redemptionType": "string",      "reservation": {        "checkIn": "string",        "checkOut": "string",        "externalId": "string"      },      "retailValue": 0,      "status": "string",      "updatedAt": "string",      "verificationCode": "string"    }  ],  "limit": 0,  "offset": 0,  "total": 0}