# Search fulfillments

> Source: /api-reference/partner/explorer/fulfillments/search-fulfillments
> 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.
> Full spec: https://docs.journey.com/openapi/partner.v1.json

## `GET /v1/partner/fulfillments/search`

```json
{
  "description": "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.",
  "operationId": "fulfillmentsPartner_searchFulfillments",
  "parameters": [
    {
      "description": "Filter: claimed on or after (ISO 8601)",
      "in": "query",
      "name": "claimedAfter",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Filter: claimed on or before (ISO 8601)",
      "in": "query",
      "name": "claimedBefore",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Filter: expires on or after (ISO 8601)",
      "in": "query",
      "name": "expiresAfter",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Filter: expires on or before (ISO 8601)",
      "in": "query",
      "name": "expiresBefore",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Filter: fulfilled on or after (ISO 8601)",
      "in": "query",
      "name": "fulfilledAfter",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Filter: fulfilled on or before (ISO 8601)",
      "in": "query",
      "name": "fulfilledBefore",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "limit",
      "required": false,
      "schema": {
        "maximum": 100,
        "minimum": 1,
        "type": "number"
      }
    },
    {
      "in": "query",
      "name": "offset",
      "required": false,
      "schema": {
        "minimum": 0,
        "type": "number"
      }
    },
    {
      "description": "External org ID (HXP UUID or WorkOS org ID) for superadmins querying a specific org",
      "in": "query",
      "name": "organizationId",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "in": "query",
      "name": "propertyId",
      "required": false,
      "schema": {
        "type": "number"
      }
    },
    {
      "description": "Generic search across offer name, verification code, and member name",
      "in": "query",
      "name": "q",
      "required": false,
      "schema": {
        "minLength": 2,
        "type": "string"
      }
    },
    {
      "description": "Comma-separated redemption types to include:\ndirect,requireApproval,externalCode,static,propertyInternal,journeyInternal,user,notification,giveaway.\nWhen omitted, defaults to excluding `static` only — every other type\n(direct, requireApproval, externalCode, journeyInternal, ...) is returned,\nso the approval queue (pending_approval rows are always requireApproval)\nstays intact while static catalog offers are hidden. Pass an explicit list\nto filter to specific types instead.",
      "in": "query",
      "name": "redemptionType",
      "required": false,
      "schema": {
        "type": "string"
      }
    },
    {
      "description": "Comma-separated statuses: claimed,fulfilled,pending_approval,approved,rejected,expired",
      "in": "query",
      "name": "status",
      "required": false,
      "schema": {
        "type": "string"
      }
    }
  ],
  "responses": {
    "200": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/FulfillmentSearchResponse"
          }
        }
      },
      "description": "Matching fulfillments with expanded member, offer, reservation, and property detail."
    },
    "400": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/PartnerErrorResponse"
          }
        }
      },
      "description": "Request validation failed. `errors` lists the offending fields."
    },
    "401": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/PartnerErrorResponse"
          }
        }
      },
      "description": "No usable credential. Send `Authorization: Bearer <jwt>` or `X-API-Key: jny_...`."
    },
    "403": {
      "content": {
        "application/json": {
          "schema": {
            "$ref": "#/components/schemas/PartnerErrorResponse"
          }
        }
      },
      "description": "The credential authenticated but lacks the scopes in `x-required-scopes`, or the resource belongs to another organization."
    }
  },
  "security": [
    {
      "partnerBearer": []
    },
    {
      "partnerApiKey": []
    }
  ],
  "summary": "Search fulfillments",
  "tags": [
    "partner/fulfillments"
  ],
  "x-required-scopes": [
    [
      "partner:fulfillments:read"
    ]
  ]
}
```