AMC Stubs Loyalty Management

Workflow capability for AMC Stubs loyalty operations: looking up loyalty accounts by id, email, card, or phone; registering members for campaigns; redeeming points; and unlinking loyalty from AMC accounts. Targeted at customer-care apps, loyalty integrations, and AMC Stubs co-marketing partners.

Run with Naftiko AMC TheatresAMC StubsLoyaltyRewards

What You Can Do

GET
Get account
/loyalty/accounts/{loyalty-account-id}
GET
Get account by email
/loyalty/accounts/by-email/{email-address}
POST
Create redemption
/loyalty/accounts/{loyalty-account-id}/redemptions

MCP Tools

get-amc-loyalty-account

Get an AMC Stubs loyalty account by id, email, card, or phone.

redeem-amc-loyalty-points

Create a points redemption against an AMC Stubs loyalty account.

Capability Spec

loyalty-management.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: AMC Stubs Loyalty Management
  description: 'Workflow capability for AMC Stubs loyalty operations: looking up loyalty accounts by id, email, card, or phone;
    registering members for campaigns; redeeming points; and unlinking loyalty from AMC accounts. Targeted at customer-care
    apps, loyalty integrations, and AMC Stubs co-marketing partners.'
  tags:
  - AMC Theatres
  - AMC Stubs
  - Loyalty
  - Rewards
  created: '2026-05-05'
  modified: '2026-05-06'
binds:
- namespace: env
  keys:
    AMC_VENDOR_KEY: AMC_VENDOR_KEY
capability:
  consumes:
  - type: http
    namespace: amc-theatres-api
    baseUri: https://api.amctheatres.com
    auth:
      type: apiKey
      in: header
      name: X-AMC-Vendor-Key
      value: '{{AMC_VENDOR_KEY}}'
    resources:
    - name: theatres
      path: /v2
      operations:
      - id: list-theatres
        method: GET
        path: /theatres
        description: List all active AMC theatres.
        inputParameters:
        - name: name
          in: query
          type: string
        - name: state
          in: query
          type: string
        - name: city
          in: query
          type: string
        - name: market
          in: query
          type: string
        - name: brand
          in: query
          type: string
        - name: page-size
          in: query
          type: integer
        - name: page-number
          in: query
          type: integer
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: get-theatre
        method: GET
        path: /theatres/{idOrSlug}
        description: Get a single theatre by id or slug.
        inputParameters:
        - name: idOrSlug
          in: path
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: list-theatre-seating-layouts
        method: GET
        path: /theatres/{theatre-number}/seating-layouts
        description: List seating layouts for an auditorium.
        inputParameters:
        - name: theatre-number
          in: path
          type: integer
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: movies
      path: /v2
      operations:
      - id: list-movies
        method: GET
        path: /movies
        description: List all movies.
        inputParameters:
        - name: name
          in: query
          type: string
        - name: page-size
          in: query
          type: integer
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: list-movies-now-playing
        method: GET
        path: /movies/views/now-playing
        description: List now-playing movies.
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: list-movies-coming-soon
        method: GET
        path: /movies/views/coming-soon
        description: List coming-soon movies.
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: list-movies-advance
        method: GET
        path: /movies/views/advance
        description: List advance ticket movies.
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: get-movie
        method: GET
        path: /movies/{idOrSlug}
        description: Get a movie by id or slug.
        inputParameters:
        - name: idOrSlug
          in: path
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: showtimes
      path: /v2
      operations:
      - id: list-theatre-showtimes
        method: GET
        path: /theatres/{theatre-number}/showtimes
        description: List future showtimes for a theatre.
        inputParameters:
        - name: theatre-number
          in: path
          type: integer
        - name: movie-id
          in: query
          type: integer
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: list-theatre-showtimes-by-date
        method: GET
        path: /theatres/{theatre-number}/showtimes/{date}
        description: List showtimes for a theatre on a date.
        inputParameters:
        - name: theatre-number
          in: path
          type: integer
        - name: date
          in: path
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: get-showtime
        method: GET
        path: /showtimes/{id}
        description: Get a showtime by id.
        inputParameters:
        - name: id
          in: path
          type: integer
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: list-showtimes-by-location
        method: GET
        path: /showtimes/views/current-location/{date}/{latitude}/{longitude}
        description: List showtimes near a latitude/longitude on a date.
        inputParameters:
        - name: date
          in: path
          type: string
        - name: latitude
          in: path
          type: number
        - name: longitude
          in: path
          type: number
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: locations
      path: /v2
      operations:
      - id: list-location-suggestions
        method: GET
        path: /location-suggestions
        description: Suggest locations by zip / city / state / theatre name.
        inputParameters:
        - name: query
          in: query
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: markets
      path: /v1
      operations:
      - id: list-markets
        method: GET
        path: /markets
        description: List all AMC markets.
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: states
      path: /v1
      operations:
      - id: list-states
        method: GET
        path: /states
        description: List all states.
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: orders
      path: /v3
      operations:
      - id: create-order
        method: POST
        path: /orders
        description: Create a new order.
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: get-order
        method: GET
        path: /orders/{order-id}
        inputParameters:
        - name: order-id
          in: path
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: add-order-product
        method: POST
        path: /orders/{order-id}/products
        inputParameters:
        - name: order-id
          in: path
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: add-order-payment
        method: POST
        path: /orders/{order-id}/payments
        inputParameters:
        - name: order-id
          in: path
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: delete-order
        method: DELETE
        path: /orders/{order-id}
        inputParameters:
        - name: order-id
          in: path
          type: string
      - id: apply-loyalty-rewards
        method: POST
        path: /orders/{order-id}/loyalty-rewards-application
        inputParameters:
        - name: order-id
          in: path
          type: string
    - name: concessions
      path: /v1
      operations:
      - id: list-theatre-concessions
        method: GET
        path: /theatres/{theatre-id}/concessions
        inputParameters:
        - name: theatre-id
          in: path
          type: integer
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: list-concession-categories
        method: GET
        path: /theatres/{theatre-id}/concessions/categories
        inputParameters:
        - name: theatre-id
          in: path
          type: integer
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: loyalty
      path: /v4
      operations:
      - id: get-loyalty-account
        method: GET
        path: /loyalty-accounts/{loyalty-account-id}
        inputParameters:
        - name: loyalty-account-id
          in: path
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: get-loyalty-account-by-email
        method: GET
        path: /loyalty-accounts/email-{email-address}
        inputParameters:
        - name: email-address
          in: path
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: create-loyalty-redemption
        method: POST
        path: /loyalty-accounts/{loyalty-account-id}/redemptions
        inputParameters:
        - name: loyalty-account-id
          in: path
          type: string
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: webhooks
      path: /v1
      operations:
      - id: list-webhook-events
        method: GET
        path: /webhook-events
        description: List available webhook events.
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: subscribe-webhook
        method: POST
        path: /webhooks
        description: Subscribe to a webhook event.
        outputParameters:
        - name: result
          type: object
          value: $.
      - id: unsubscribe-webhook
        method: DELETE
        path: /webhooks/{webhook-token-id}
        inputParameters:
        - name: webhook-token-id
          in: path
          type: string
  exposes:
  - type: rest
    port: 8094
    namespace: amc-loyalty-api
    description: Unified REST API for AMC Stubs loyalty operations.
    resources:
    - path: /loyalty/accounts/{loyalty-account-id}
      name: loyalty-account
      operations:
      - method: GET
        name: get-account
        call: amc-theatres-api.get-loyalty-account
        with:
          loyalty-account-id: rest.loyalty-account-id
        outputParameters:
        - type: object
          mapping: $.
    - path: /loyalty/accounts/by-email/{email-address}
      name: loyalty-account-by-email
      operations:
      - method: GET
        name: get-account-by-email
        call: amc-theatres-api.get-loyalty-account-by-email
        with:
          email-address: rest.email-address
        outputParameters:
        - type: object
          mapping: $.
    - path: /loyalty/accounts/{loyalty-account-id}/redemptions
      name: loyalty-redemptions
      operations:
      - method: POST
        name: create-redemption
        call: amc-theatres-api.create-loyalty-redemption
        with:
          loyalty-account-id: rest.loyalty-account-id
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9094
    namespace: amc-loyalty-mcp
    transport: http
    tools:
    - name: get-amc-loyalty-account
      description: Get an AMC Stubs loyalty account by id, email, card, or phone.
      call: amc-theatres-api.get-loyalty-account
    - name: redeem-amc-loyalty-points
      description: Create a points redemption against an AMC Stubs loyalty account.
      call: amc-theatres-api.create-loyalty-redemption