Zinrelo Members API

Enroll, retrieve, update, block, and manage loyalty program members.

Business capability
Loyalty & Retention Management BC-420.40

Operations 12

GET /v1/loyalty/users List members #
POST /v1/loyalty/users Create a member #
GET /v1/loyalty/users/{user_email} Get a member #
GET /v1/loyalty/users/{user_email}/transactions List a member's transactions #
GET /v1/loyalty/users/{user_email}/eligible_activities List a member's eligible activities #
GET /v1/loyalty/users/{user_email}/redemptions List a member's redemptions #
GET /v1/loyalty/users/{user_email}/next_tier Get a member's next tier #
PUT /v1/loyalty/users/{user_email}/block Block a member #
POST /v1/loyalty/update_user_email Update a member's email #
POST /v1/loyalty/unsubscribe_email Unsubscribe a member #
GET /v1/loyalty/unsubscribed_users List unsubscribed members #
GET /v2/loyalty-storefront/transactions List member transactions (storefront) #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/zinrelo-members-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

zinrelo-members-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Zinrelo Loyalty Members API
  description: The Zinrelo Loyalty API is a REST API for building and operating loyalty and rewards programs across web, mobile, in-store, and other sales channels.
  version: '1.0'
  contact:
    name: Zinrelo
    url: https://www.zinrelo.com
servers:
- url: https://api.zinrelo.com
  description: Zinrelo production API
security:
- partnerId: []
  apiKey: []
tags:
- name: Members
  description: Enroll, retrieve, update, block, and manage loyalty program members.
paths:
  /v1/loyalty/users:
    get:
      operationId: listMembers
      tags:
      - Members
      summary: List members
      description: Retrieves all enrolled loyalty program members.
      parameters:
      - name: start_cursor
        in: query
        schema:
          type: integer
          default: 0
        description: Pagination cursor position.
      - name: count
        in: query
        schema:
          type: integer
          default: 100
        description: Number of members to return.
      responses:
        '200':
          description: A list of members.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberList'
        '401':
          $ref: '#/components/responses/Unauthorized'
    post:
      operationId: createMember
      tags:
      - Members
      summary: Create a member
      description: Enrolls a new participant in the loyalty program.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MemberCreate'
      responses:
        '200':
          description: The created member.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/loyalty/users/{user_email}:
    get:
      operationId: getMember
      tags:
      - Members
      summary: Get a member
      description: Fetches a specific member's details and point balances.
      parameters:
      - $ref: '#/components/parameters/UserEmail'
      responses:
        '200':
          description: The member.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Member'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '404':
          $ref: '#/components/responses/NotFound'
  /v1/loyalty/users/{user_email}/transactions:
    get:
      operationId: listMemberTransactions
      tags:
      - Members
      summary: List a member's transactions
      description: Returns the historical loyalty transactions for a specific member.
      parameters:
      - $ref: '#/components/parameters/UserEmail'
      responses:
        '200':
          description: A list of the member's transactions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/loyalty/users/{user_email}/eligible_activities:
    get:
      operationId: listMemberEligibleActivities
      tags:
      - Members
      summary: List a member's eligible activities
      description: Lists the loyalty activities available to a specific member.
      parameters:
      - $ref: '#/components/parameters/UserEmail'
      responses:
        '200':
          description: A list of eligible activities.
          content:
            application/json:
              schema:
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/loyalty/users/{user_email}/redemptions:
    get:
      operationId: listMemberRedemptions
      tags:
      - Members
      summary: List a member's redemptions
      description: Retrieves the redemption options and redemptions available to a member.
      parameters:
      - $ref: '#/components/parameters/UserEmail'
      responses:
        '200':
          description: A list of the member's redemptions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RedemptionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/loyalty/users/{user_email}/next_tier:
    get:
      operationId: getMemberNextTier
      tags:
      - Members
      summary: Get a member's next tier
      description: Returns the member's upcoming tier status and progress.
      parameters:
      - $ref: '#/components/parameters/UserEmail'
      responses:
        '200':
          description: The member's next tier status.
          content:
            application/json:
              schema:
                type: object
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/loyalty/users/{user_email}/block:
    put:
      operationId: blockMember
      tags:
      - Members
      summary: Block a member
      description: Restricts a member from participating in the loyalty program.
      parameters:
      - $ref: '#/components/parameters/UserEmail'
      responses:
        '200':
          description: The member was blocked.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/loyalty/update_user_email:
    post:
      operationId: updateMemberEmail
      tags:
      - Members
      summary: Update a member's email
      description: Modifies the email address associated with a member.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                old_email:
                  type: string
                new_email:
                  type: string
      responses:
        '200':
          description: The member email was updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/loyalty/unsubscribe_email:
    post:
      operationId: unsubscribeMember
      tags:
      - Members
      summary: Unsubscribe a member
      description: Opts a member out of loyalty program communications.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                user_email:
                  type: string
      responses:
        '200':
          description: The member was unsubscribed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StatusResponse'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v1/loyalty/unsubscribed_users:
    get:
      operationId: listUnsubscribedMembers
      tags:
      - Members
      summary: List unsubscribed members
      description: Lists members who have opted out of communications.
      responses:
        '200':
          description: A list of unsubscribed members.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MemberList'
        '401':
          $ref: '#/components/responses/Unauthorized'
  /v2/loyalty-storefront/transactions:
    get:
      operationId: listStorefrontTransactions
      tags:
      - Members
      summary: List member transactions (storefront)
      description: Returns a list of the authenticated member's transactions, identified by the access token and partner id. Supports pagination and date, status, and points-status filters.
      parameters:
      - name: start_cursor
        in: query
        schema:
          type: integer
          default: 0
      - name: count
        in: query
        schema:
          type: integer
          default: 100
      - name: status
        in: query
        schema:
          type: string
          enum:
          - Approved
          - Rejected
          - Pending
      - name: language
        in: query
        schema:
          type: string
          default: english
      responses:
        '200':
          description: A list of the member's transactions.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TransactionList'
        '401':
          $ref: '#/components/responses/Unauthorized'
components:
  schemas:
    MemberList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Member'
        total_count:
          type: integer
    MemberCreate:
      type: object
      required:
      - user_email
      properties:
        user_email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
    TransactionList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Transaction'
        total_count:
          type: integer
    Member:
      type: object
      properties:
        user_email:
          type: string
        first_name:
          type: string
        last_name:
          type: string
        available_points:
          type: integer
        redeemed_points:
          type: integer
        expired_points:
          type: integer
        tier_name:
          type: string
        member_since:
          type: string
    Error:
      type: object
      properties:
        success:
          type: boolean
        error_code:
          type: string
        message:
          type: string
    Transaction:
      type: object
      properties:
        transaction_id:
          type: string
        user_email:
          type: string
        activity_id:
          type: string
        points:
          type: integer
        status:
          type: string
          enum:
          - Approved
          - Rejected
          - Pending
        created_date:
          type: string
        approved_date:
          type: string
    StatusResponse:
      type: object
      properties:
        success:
          type: boolean
        message:
          type: string
    Redemption:
      type: object
      properties:
        redemption_id:
          type: string
        user_email:
          type: string
        reward_id:
          type: string
        points_redeemed:
          type: integer
        status:
          type: string
    RedemptionList:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/Redemption'
        total_count:
          type: integer
  responses:
    Unauthorized:
      description: Authentication failed - missing or invalid partner-id or api-key.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: The requested resource was not found.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  parameters:
    UserEmail:
      name: user_email
      in: path
      required: true
      description: The member's email address, used as the member identifier.
      schema:
        type: string
  securitySchemes:
    partnerId:
      type: apiKey
      in: header
      name: partner-id
      description: Your Zinrelo Partner ID, provisioned to your account.
    apiKey:
      type: apiKey
      in: header
      name: api-key
      description: Your Zinrelo API key, provisioned to your account.