MyWalmart icon

MyWalmart associate data API: clock, schedule and inventory

Walmart · Identity

MyWalmart is the associate app Walmart store teams open for clock status, weekly schedules, shift offers, the daily roster and shelf inventory. Those screens talk to a workforce GraphQL gateway at /v1/graphql/associate (signed-in user, punches, shifts, roster, aisle state, work orders) and a profile GraphQL at /v1/graphql/profile (WIN, hire date, emergency contacts, tax address). Shelf inventory is a separate REST surface under /v1/inventory with department stock, delta, item-detail and exception-list calls. Signed-in requests send a Bearer token plus x-country-code, x-user-id, x-store-id and x-client-id identity headers.

MyWalmart is Walmart's associate app for U.S. store teams: clock status, weekly schedules, shift offers, the daily roster, a unified profile (WIN, hire date, job title) and emergency contacts, plus shelf-scan inventory that maps UPCs to aisle, section and bin locations. Those screens ride two GraphQL gateways — one for workforce calls at /v1/graphql/associate and one for profile reads at /v1/graphql/profile — plus a REST inventory surface under /v1/inventory. Signed-in calls send a Bearer token with country, user and store identity headers; shelf-inventory calls add a feature-key header for the scanner.

Screenshots

  • MyWalmart screenshot 1
  • MyWalmart screenshot 2
  • MyWalmart screenshot 3
  • MyWalmart screenshot 4
  • MyWalmart screenshot 5
  • MyWalmart screenshot 6
  • MyWalmart screenshot 7
  • MyWalmart screenshot 8

API surface

  • Signed-in associate (current session)

    POST /v1/graphql/associate osint

    Returns the signed-in associate envelope that seeds the home screen: WIN, preferred name, department, job category, employment status and current clock status.

    Auth: Bearer associate token (Authorization: Bearer) plus identity headers x-country-code, x-user-id, x-store-id and x-client-id.

    • associateId
    • displayName
    • employmentStatus
    • department
    • jobCategoryCode
    • jobCategoryCodeDesc
    • preferredFirstName
    • preferredLastName
    • walmartIdentificationNumber
    • clockStatus
    • facilityDivNumber
    • facilityRegionNumber

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/associate HTTP/1.1
    Authorization: Bearer <access-token>
    x-country-code: US
    x-user-id: u-18492031
    x-store-id: 100
    x-client-id: <client-id>
    Content-Type: application/json
    
    {
      "operationName": "getCurrentAssociate",
      "query": "query getCurrentAssociate { currentAssociate { associate { associateId displayName employmentStatus department jobCategoryCode jobCategoryCodeDesc preferredFirstName preferredLastName walmartIdentificationNumber clockStatus { status } } } }",
      "variables": {}
    }
    {
      "data": {
        "currentAssociate": {
          "associate": {
            "associateId": "10001234",
            "displayName": "Jordan Lee",
            "employmentStatus": "A",
            "department": "82",
            "jobCategoryCode": "1",
            "jobCategoryCodeDesc": "Sales Associate",
            "preferredFirstName": "Jordan",
            "preferredLastName": "Lee",
            "walmartIdentificationNumber": "10001234",
            "clockStatus": { "status": "IN" },
            "facilityDivNumber": "1",
            "facilityRegionNumber": "6"
          }
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • mirrors the associate card the home screen renders after sign-in
    • the same identity headers ride every workforce call in the app
  • Associate profile by user id

    POST /v1/graphql/profile osint

    Looks up the unified associate profile by user id — WIN, hire date, position title and preferred formatted name — used on the profile and team-card screens.

    Auth: Bearer associate token with the same country / user / store identity headers.

    • associateProfile
    • hireDate
    • positionTitle
    • preferredFormattedName
    • walmartIdentificationNumber
    • userId

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/profile HTTP/1.1
    Authorization: Bearer <access-token>
    x-country-code: US
    Content-Type: application/json
    
    {
      "operationName": "getAssociateProfile",
      "query": "query getAssociateProfile($userId: String!) { associateProfile(userId: $userId) { hireDate positionTitle preferredFormattedName walmartIdentificationNumber } }",
      "variables": { "userId": "u-18492031" }
    }
    {
      "data": {
        "associateProfile": {
          "hireDate": "2019-04-12",
          "positionTitle": "Customer Service Manager",
          "preferredFormattedName": "Jordan Lee",
          "walmartIdentificationNumber": "10001234"
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • backs the profile header and team-card screens
    • lookups key off the user id issued at sign-in
  • Clock / punch status

    POST /v1/graphql/associate opendata

    Reads store-level punch state for the daily roster: whether each WIN is clocked in, last punch type/time, and any absence or call-in codes.

    Auth: Bearer associate token plus x-country-code, x-user-id, x-store-id and x-client-id headers.

    • associateId
    • win
    • punch
    • clockStatus
    • clockStatusDesc
    • lastPunchTime
    • lastPunchType
    • absenceRsnCode
    • absenceTypeCode
    • callInMethodCode
    • callInTimestamp

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/associate HTTP/1.1
    Authorization: Bearer <access-token>
    x-country-code: US
    x-store-id: 100
    Content-Type: application/json
    
    {
      "operationName": "getPunchState",
      "query": "query getPunchState($countryCode: String!, $startDate: Date!, $storeId: String!) { rosterDay(countryCode: $countryCode, startDate: $startDate, storeId: $storeId) { associateId win punch { clockStatus clockStatusDesc lastPunchTime lastPunchType } absence(countryCode: $countryCode, date: $startDate) { absenceRsnCode absenceTypeCode callInMethodCode callInTimestamp } } }",
      "variables": {
        "countryCode": "US",
        "startDate": "2026-09-27",
        "storeId": "100"
      }
    }
    {
      "data": {
        "rosterDay": [{
          "associateId": "10001234",
          "win": "10001234",
          "punch": {
            "clockStatus": "IN",
            "clockStatusDesc": "Clocked in",
            "lastPunchTime": "2026-09-27T13:02:11Z",
            "lastPunchType": "IN"
          },
          "absence": {
            "absenceRsnCode": null,
            "absenceTypeCode": null,
            "callInMethodCode": null,
            "callInTimestamp": null
          }
        }]
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • drives the clock-status badge and the daily roster strip
    • absence and call-in codes travel on the same roster row
  • Team schedules with live clock state

    POST /v1/graphql/associate opendata

    Batch-fetches shifts and live clock status for one or more WINs over a date range — the payload behind the schedule list and manager team-time views.

    Auth: Bearer associate token plus x-country-code, x-user-id, x-store-id and x-client-id headers.

    • associateId
    • firstName
    • lastName
    • userId
    • win
    • clockStatus
    • status
    • lastPunchType
    • lastPunchTime
    • scheduleShifts
    • shiftId
    • shiftStartTime
    • shiftEndTime

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/associate HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    
    {
      "operationName": "getTeamSchedules",
      "query": "query getTeamSchedules($wins: [String!]!, $startDate: String!, $endDate: String!) { teamSchedules(request: { wins: $wins, startDate: $startDate, endDate: $endDate }) { associateId firstName lastName userId win clockStatus { status lastPunchType lastPunchTime clockStatusDesc errorCode } scheduleShifts { shiftId shiftStartTime shiftEndTime } } }",
      "variables": {
        "wins": ["10001234"],
        "startDate": "2026-09-21",
        "endDate": "2026-09-27"
      }
    }
    {
      "data": {
        "teamSchedules": [{
          "associateId": "10001234",
          "firstName": "Jordan",
          "lastName": "Lee",
          "userId": "u-18492031",
          "win": "10001234",
          "clockStatus": {
            "status": "IN",
            "lastPunchType": "IN",
            "lastPunchTime": "2026-09-27T13:02:11Z",
            "clockStatusDesc": "Clocked in",
            "errorCode": null
          },
          "scheduleShifts": [{
            "shiftId": "88412001",
            "shiftStartTime": "2026-09-27T13:00:00Z",
            "shiftEndTime": "2026-09-27T21:00:00Z"
          }]
        }]
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • feeds the week-at-a-glance schedule list
    • manager views batch several WINs through the same query
  • Associate store schedule

    POST /v1/graphql/associate opendata

    Returns the associate's store schedule by WIN and store number, including the retail week, shift bounds and job-coded events used by the schedule calendar.

    Auth: Bearer associate token plus x-country-code, x-user-id, x-store-id and x-client-id headers.

    • winNbr
    • sourceInfo
    • weeks
    • scheduleWeekStartDate
    • scheduleWeekEndDate
    • wmWeek
    • shiftId
    • shiftStartTime
    • shiftEndTime
    • storeNumber
    • jobCode
    • jobDescription

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/associate HTTP/1.1
    Authorization: Bearer <access-token>
    x-store-id: 100
    Content-Type: application/json
    
    {
      "operationName": "getStoreSchedule",
      "query": "query getStoreSchedule($country: String!, $storeNbr: Int!, $win: Int!, $startDate: String!, $endDate: String!) { storeSchedule(country: $country, storeNbr: $storeNbr, win: $win, startDate: $startDate, endDate: $endDate) { winNbr sourceInfo weeks { scheduleWeekStartDate scheduleWeekEndDate wmWeek schedules { shiftId shiftStartTime shiftEndTime storeNumber events { type startTime endTime jobCode jobDescription } } } } }",
      "variables": {
        "country": "US",
        "storeNbr": 100,
        "win": 10001234,
        "startDate": "2026-09-21",
        "endDate": "2026-10-04"
      }
    }
    {
      "data": {
        "storeSchedule": {
          "winNbr": 10001234,
          "sourceInfo": "WFM",
          "weeks": [{
            "scheduleWeekStartDate": "2026-09-21",
            "scheduleWeekEndDate": "2026-09-27",
            "wmWeek": "2026-38",
            "schedules": [{
              "shiftId": "88412001",
              "shiftStartTime": "2026-09-27T13:00:00Z",
              "shiftEndTime": "2026-09-27T21:00:00Z",
              "storeNumber": 100,
              "events": [{
                "type": "SHIFT",
                "startTime": "2026-09-27T13:00:00Z",
                "endTime": "2026-09-27T21:00:00Z",
                "jobCode": "1-SALES",
                "jobDescription": "Sales Associate"
              }]
            }]
          }]
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • powers the schedule calendar's week pages
    • job-coded events explain each shift block's role
  • Daily store roster

    POST /v1/graphql/associate osint

    Lists active associates on the store's daily roster with preferred names, pay type, job category, punch state and assigned shift — the team roll-call view.

    Auth: Bearer associate token plus x-country-code, x-user-id, x-store-id and x-client-id headers.

    • associateId
    • firstName
    • lastName
    • fullName
    • preferredFullName
    • payType
    • jobCategoryCodeDesc
    • userId
    • clockStatus
    • lastPunchType
    • shift

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/associate HTTP/1.1
    Authorization: Bearer <access-token>
    x-country-code: US
    x-store-id: 100
    Content-Type: application/json
    
    {
      "operationName": "getStoreRoster",
      "query": "query getStoreRoster($storeNbr: Int!, $countryCode: String!, $days: Int!, $startDate: Date!, $storeId: String!) { storeRoster(countryCode: $countryCode, days: $days, employmentStatus: \"A\", startDate: $startDate, storeId: $storeId) { associateId firstName lastName fullName preferredFullName payType jobCategoryCodeDesc userId punch { clockStatus lastPunchType } shift { name number } } }",
      "variables": {
        "storeNbr": 100,
        "countryCode": "US",
        "days": 1,
        "startDate": "2026-09-27",
        "storeId": "100"
      }
    }
    {
      "data": {
        "storeRoster": [{
          "associateId": "10001234",
          "firstName": "Jordan",
          "lastName": "Lee",
          "fullName": "Jordan Lee",
          "preferredFullName": "Jordan Lee",
          "payType": "HOURLY",
          "jobCategoryCodeDesc": "Sales Associate",
          "userId": "u-18492031",
          "punch": { "clockStatus": "IN", "lastPunchType": "IN" },
          "shift": { "name": "First", "number": 1 }
        }]
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • fills the team roll-call the day plan opens with
    • filters to active employment status by default
  • Emergency contacts

    POST /v1/graphql/profile osint

    Reads the associate's emergency-contact book and compliance opt-in from the unified profile — names, relationship, phone and email used by the emergency contacts screen.

    Auth: Bearer associate token. Lookups keyed by WIN or user id via an id-type argument.

    • userID
    • optInEmergencyCompliance
    • firstName
    • lastName
    • relationship
    • isPrimary
    • emailAddress
    • emailType
    • internationalPhoneCode
    • phoneNumber
    • phoneType

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/profile HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    
    {
      "operationName": "getEmergencyContacts",
      "query": "query getEmergencyContacts($idType: IdType!, $winOrId: String!) { associateById(id: $winOrId, idType: $idType) { profile { contactData { emergencyCompliance { optInEmergencyCompliance txnStatus } emergencyContacts { firstName lastName relationship isPrimary email { emailAddress emailType } phone { countryCode phoneNumber phoneType } } } userID } } }",
      "variables": { "idType": "WIN", "winOrId": "10001234" }
    }
    {
      "data": {
        "associateById": {
          "profile": {
            "userID": "u-18492031",
            "contactData": {
              "emergencyCompliance": {
                "optInEmergencyCompliance": true,
                "txnStatus": "COMMITTED"
              },
              "emergencyContacts": [{
                "firstName": "Alex",
                "lastName": "Lee",
                "relationship": "SPOUSE",
                "isPrimary": true,
                "email": { "emailAddress": "[email protected]", "emailType": "HOME" },
                "phone": {
                  "countryCode": "1",
                  "phoneNumber": "4795550100",
                  "phoneType": "MOBILE"
                }
              }]
            }
          }
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • mirrors the emergency contacts screen's primary-contact card
    • the compliance opt-in flag rides the same profile read
  • Tax / mailing address

    POST /v1/graphql/profile osint

    Returns the associate's tax and mailing address rows from the profile's contact data — line, city, state, postal code and mailing/primary flags.

    Auth: Bearer associate token. WIN-scoped profile read.

    • associateId
    • addressLine1
    • addressLine2
    • city
    • countryName
    • postalCode
    • stateCode
    • stateName
    • isMailing
    • isPermanent
    • isPrimary
    • formattedAddress

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/profile HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    
    {
      "operationName": "getTaxAddress",
      "query": "query getTaxAddress($win: String!) { associateById(id: $win) { associateId profile { contactData { addresses { addressLine1 addressLine2 city countryName postalCode stateCode stateName isMailing isPermanent isPrimary formattedAddress } } } } }",
      "variables": { "win": "10001234" }
    }
    {
      "data": {
        "associateById": {
          "associateId": "10001234",
          "profile": {
            "contactData": {
              "addresses": [{
                "addressLine1": "702 SW 8th St",
                "addressLine2": "",
                "city": "Bentonville",
                "countryName": "United States",
                "postalCode": "72716",
                "stateCode": "AR",
                "stateName": "Arkansas",
                "isMailing": true,
                "isPermanent": true,
                "isPrimary": true,
                "formattedAddress": "702 SW 8th St, Bentonville, AR 72716"
              }]
            }
          }
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • backs the address card on the profile screen
    • mailing and primary flags decide which row the screen leads with
  • Create shift offer

    POST /v1/graphql/associate opendata

    Posts a shift into the pickup / offer pool for a WIN at a store and returns the offered shift events (job code, start/end).

    Auth: Bearer associate token. WIN + store scoped; managers and eligible associates can offer a shift.

    • winNbr
    • shiftId
    • isShiftOffered
    • type
    • startTime
    • endTime
    • jobCode
    • hrdwJobCode
    • jobDescription

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/associate HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    
    {
      "operationName": "offerShiftToPool",
      "query": "mutation offerShiftToPool($country: String!, $storeNbr: Int!, $win: Long!, $input: ShiftOfferInput) { offerShift(country: $country, storeNbr: $storeNbr, win: $win, input: $input) { winNbr shiftId isShiftOffered events { type startTime endTime jobCode hrdwJobCode jobDescription } } }",
      "variables": {
        "country": "US",
        "storeNbr": 100,
        "win": 10001234,
        "input": { "shiftId": "88412001" }
      }
    }
    {
      "data": {
        "offerShift": {
          "winNbr": 10001234,
          "shiftId": "88412001",
          "isShiftOffered": true,
          "events": [{
            "type": "SHIFT",
            "startTime": "2026-09-28T13:00:00Z",
            "endTime": "2026-09-28T21:00:00Z",
            "jobCode": "1-SALES",
            "hrdwJobCode": "1SALES",
            "jobDescription": "Sales Associate"
          }]
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • matches the offer-shift confirmation sheet
    • the returned events mirror the shift's calendar blocks
  • Store aisle / section state

    POST /v1/graphql/associate opendata

    Returns aisle/zone/section work state for shelf-stocking: which section is active, who last worked it, and the pick list of UPCs.

    Auth: Bearer associate token. Country and store headers identify the site.

    • aisleId
    • zoneName
    • sectionId
    • isSectionActive
    • sectionLastWorkedTs
    • legacySectionId
    • lastWorkedUser
    • state
    • pickList

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/associate HTTP/1.1
    Authorization: Bearer <access-token>
    x-country-code: US
    x-store-id: 100
    Content-Type: application/json
    
    {
      "operationName": "getAisleState",
      "query": "query getAisleState($country: String!, $storeId: Int!, $aisles: [String]) { aisleState(country: $country, storeId: $storeId, aisles: $aisles) { aisles { aisleId zoneName sections { sectionId isSectionActive sectionLastWorkedTs legacySectionId lastWorkedUser state pickList } } } }",
      "variables": {
        "country": "US",
        "storeId": 100,
        "aisles": ["12"]
      }
    }
    {
      "data": {
        "aisleState": {
          "aisles": [{
            "aisleId": "12",
            "zoneName": "Grocery",
            "sections": [{
              "sectionId": "12-A",
              "isSectionActive": true,
              "sectionLastWorkedTs": "2026-09-27T15:41:00Z",
              "legacySectionId": "012A",
              "lastWorkedUser": "10001234",
              "state": "IN_PROGRESS",
              "pickList": ["0049000051234"]
            }]
          }]
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • drives the aisle map's per-section status chips
    • the pick list is the same UPC set the scanner overlay highlights
  • Shelf inventory by department

    GET /v1/inventory/shelf-stock opendata

    Downloads department-scoped shelf inventory: CID, UPC, description, image and shelf location (aisle, section, SGLN, zone) used by the scanner overlay.

    Auth: Bearer token plus identity headers (x-country-code, x-user-id, x-store-id, x-client-id) and an x-feature-key: shelf-scan header. A query token paginates.

    • items
    • cid
    • upc
    • description
    • image
    • isItemOnFeature
    • section
    • aisle
    • mod_location
    • sgln
    • zone
    • barcode
    • token

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/inventory/shelf-stock?dept=82 HTTP/1.1
    Authorization: Bearer <access-token>
    x-country-code: US
    x-user-id: u-18492031
    x-store-id: 100
    x-client-id: <client-id>
    x-feature-key: shelf-scan
    {
      "items": [{
        "cid": 5588123,
        "upc": "0049000051234",
        "description": "Great Value Whole Milk 1 gal",
        "image": "https://example.invalid/img/milk.jpg",
        "isItemOnFeature": false,
        "location": {
          "section": 12,
          "aisle": 12,
          "mod_location": "12-A-04",
          "sgln": "0078742000123.12.A",
          "zone": "Grocery",
          "barcode": ["0049000051234"]
        }
      }],
      "token": ["page-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"]
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • fills the scanner overlay's item cards by department
    • the page token continues the download on the next call
  • Shelf inventory deltas by department

    GET /v1/inventory/shelf-stock/deltas opendata

    Fetches CID/UPC eligibility deltas for a department between two timestamps so the on-device inventory cache can refresh without a full download.

    Auth: Bearer token. Same shelf-scan headers as the department inventory call; a query token continues a delta page.

    • cidUpdates
    • upcUpdates
    • token
    • cid
    • upc
    • shelfEligible
    • deptId
    • startTimestamp
    • endTimestamp

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/inventory/shelf-stock/deltas?dept=82&from=1758902400000&to=1758988800000 HTTP/1.1
    Authorization: Bearer <access-token>
    x-country-code: US
    x-store-id: 100
    x-feature-key: shelf-scan
    {
      "cidUpdates": [{
        "cid": 5588123,
        "shelfEligible": true
      }],
      "upcUpdates": [{
        "upc": "0049000051234",
        "cid": 5588123
      }],
      "token": ["page-eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9"]
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • keeps the cached department stock fresh between full syncs
    • timestamps bound the delta window the device asks for
  • Shelf overlay item details

    GET /v1/inventory/items opendata

    Hydrates the item card when an associate taps a shelf overlay: UPC, CID, description, image and all known shelf locations.

    Auth: Bearer token. Same shelf-scan headers; the upc query parameter is the scanned or tapped overlay code.

    • upc
    • description
    • image
    • cid
    • locations
    • section
    • aisle
    • mod_location
    • sgln
    • zone

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/inventory/items?upc=0049000051234 HTTP/1.1
    Authorization: Bearer <access-token>
    x-country-code: US
    x-store-id: 100
    x-feature-key: shelf-scan
    [{
      "upc": "0049000051234",
      "description": "Great Value Whole Milk 1 gal",
      "image": "https://example.invalid/img/milk.jpg",
      "cid": 5588123,
      "locations": [{
        "section": 12,
        "aisle": 12,
        "mod_location": "12-A-04",
        "sgln": "0078742000123.12.A",
        "zone": "Grocery"
      }]
    }]

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • opens when an associate taps a highlighted shelf overlay
    • returns every known location for the scanned code
  • Shelf exception / filter UPCs

    GET /v1/inventory/exceptions opendata

    Downloads exception UPC sets (clearance, deleted, feature) that the shelf scanner uses to filter overlay eligibility.

    Auth: Bearer token. Same shelf-scan headers. Query filters=clearance,deleted and an optional pagination token.

    • itemFilter
    • itemDetails
    • upc
    • token
    • filters
    • paginationToken

    Illustrative example reconstructed from the app's interface — not a live capture.

    GET /v1/inventory/exceptions?filters=clearance,deleted HTTP/1.1
    Authorization: Bearer <access-token>
    x-country-code: US
    x-store-id: 100
    x-feature-key: shelf-scan
    [{
      "itemFilter": "clearance",
      "itemDetails": [{ "upc": "0049000059999" }],
      "token": "page-2"
    }]

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • the scanner hides codes on these exception lists
    • each filter bucket paginates independently
  • Create facilities work order

    POST /v1/graphql/associate opendata

    Opens a facilities work order from a non-emergency alarm or task so associates can file store-maintenance tickets from the app.

    Auth: Bearer associate token. User id and country code identify the actor; position is the associate job role.

    • taskId
    • eventId
    • userId
    • position
    • countryCode
    • status
    • data

    Illustrative example reconstructed from the app's interface — not a live capture.

    POST /v1/graphql/associate HTTP/1.1
    Authorization: Bearer <access-token>
    Content-Type: application/json
    
    {
      "operationName": "openWorkOrder",
      "query": "mutation openWorkOrder($taskId: String!, $eventId: String!, $userId: String!, $position: String!, $countryCode: String!) { openWorkOrder(input: { alarm: { taskId: $taskId, eventId: $eventId, countryCode: $countryCode }, userId: $userId, position: $position }) { status data } }",
      "variables": {
        "taskId": "WO-TASK-4412",
        "eventId": "evt-9981",
        "userId": "u-18492031",
        "position": "Sales Associate",
        "countryCode": "US"
      }
    }
    {
      "data": {
        "openWorkOrder": {
          "status": "CREATED",
          "data": "884199"
        }
      }
    }

    Derived from the app's interface; endpoint details are illustrative, not a live capture.

    • submitted from the maintenance task's action sheet
    • the returned id is the ticket the facilities queue tracks

Data categories

  • associate profiles
  • Walmart Identification Numbers
  • time and attendance
  • schedules and shifts
  • store roster
  • emergency contacts
  • tax addresses
  • store inventory locations

Where teams use this data

  • Associate identity and WIN lookup

    HR and store-ops tools can resolve a user id or WIN through the signed-in associate and profile queries to reach preferred name, hire date, position title, department and job category — the same fields the home and profile screens render.

  • Time, attendance and shift coverage

    Workforce dashboards can poll the punch-state and team-schedule queries for clock state (clockStatus, lastPunchType, lastPunchTime) and shift bounds, then call the shift-offer mutation when a shift needs to enter the pickup pool.

  • Shelf-location inventory sync

    In-store inventory jobs can page the department shelf-stock call for UPC and location (aisle, section, bin), apply eligibility deltas between syncs, and hydrate a scanned item through the item-detail call.

  • Emergency-contact and tax-address audit

    Compliance workflows can read the emergency-contact book (relationship, phoneNumber, emailAddress, opt-in) and the tax address rows (mailing/primary flags, postalCode, stateCode) from the profile graph.

Frequently asked questions

How does MyWalmart identify an associate on the wire?

The workforce GraphQL user query returns associateId, walmartIdentificationNumber (WIN), preferred name, department and jobCategoryCode. Profile reads take a user id or WIN and return hireDate, positionTitle and preferredFormattedName. Later calls stamp the same identity on the x-user-id and x-store-id headers.

Which endpoints back clock-in and the weekly schedule?

The punch-state query reads clockStatus, lastPunchType and lastPunchTime off the daily roster row. Schedule queries return shiftId, shiftStartTime, shiftEndTime and job-coded events, and a shift-offer mutation posts a shift into the pickup pool.

Where does the shelf-location inventory come from?

The REST inventory surface lists department stock with UPC, description and aisle/section/bin location, serves eligibility deltas between two timestamps, hydrates a scanned item's detail card, and downloads exception lists such as clearance and deleted UPCs.

What auth headers do MyWalmart API calls send?

Associates authenticate once and the app attaches Authorization: Bearer plus x-country-code, x-user-id, x-store-id and x-client-id. Shelf-inventory requests add an x-feature-key header that marks the scanner feature.

Topics

  • MyWalmart API
  • Walmart associate data API
  • WIN walmartIdentificationNumber
  • associate clock status
  • store schedule API
  • shelf inventory locations
  • emergency contacts profile
  • shift offer API

Need this app's data API integrated?

We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.

Get a quote