> ## Documentation Index
> Fetch the complete documentation index at: https://docs.stockshift.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Pull a feed's changes

> The entities that changed after `cursor`, oldest first, up to `limit`
(500 by default, 2,000 at most). Each is its current record, or a
delete when it is gone or the member may not see it, and several
changes to one entity come as one. Keep `next_cursor` and send it to
read on; a page with no changes still returns one. Changes of a
transaction that has not finished are held back until it does. A
cursor the device cannot continue from answers 410 `resync_required`
with a `reason`: download the snapshot again. Needs the feed's
permission and plan feature, and a token with `sync:read` and the scope
of the feed's area, such as `inventory:read`.



## OpenAPI

````yaml /openapi.json get /sync/feeds/{feed}/changes
openapi: 3.1.2
info:
  title: StockShift API
  version: 1.0.0
  description: >-
    The StockShift REST API. Start with the guides for authentication, scopes,
    pagination, errors and webhooks.
servers:
  - url: https://app.stockshift.io/api/v1
    description: Production
  - url: https://app.beta.stockshift.io/api/v1
    description: Beta
security:
  - apiKey: []
  - oauth2: []
tags:
  - name: Witnessed stock actions
    description: >-
      Hold a stock action for a second person, who recounts blind and signs, and
      read both signatures. Stock changes only once the witness signs.
  - name: Item stock
    description: >-
      Everything about one item's stock: where it is, what is promised, how it
      is tracked and what it costs.
  - name: Transfers
    description: >-
      Move stock from one location to another, with time in transit between
      shipping and receiving.
  - name: Landed costs
    description: >-
      Add freight, duty and other charges to the cost of stock you have
      received.
  - name: Stock counts
    description: >-
      Count what is on the shelf, compare it with what StockShift expects and
      post the difference once someone approves it.
  - name: Locations
    description: >-
      The warehouses, rooms and bins stock is kept in. Most stock calls need a
      location ID from here.
  - name: Periods
    description: >-
      Close each month once it is reported: lock what is dated in it, check
      nothing is left open and keep the stock value at its end.
  - name: Inventory imports
    description: >-
      Load opening stock from a CSV file, with a preview before anything is
      posted.
  - name: Release requests
    description: >-
      Ask QA to release stock that is on hold, and decline or withdraw the
      request. Releasing the stock closes it.
  - name: Signers
    description: >-
      Who may sign witnessed stock actions: whose identity was checked, how and
      when, and the failed signings reviewers must see.
  - name: Stock
    description: >-
      How much of each item is where. Read levels, now or at a past date, and
      post adjustments when stock is found, lost or damaged.
  - name: Witnessing rules
    description: >-
      Which stock actions wait for a second person to recount and sign, such as
      removing a controlled substance.
  - name: Allocation rules
    description: >-
      Which lots are picked first when stock is reserved or shipped, such as
      first expiry first out.
  - name: Inventory settings
    description: >-
      How the organization handles stock, such as whether stock may go negative
      and how it is costed.
  - name: Lots
    description: Batches of stock that share a lot number, and when they expire.
  - name: Movements
    description: >-
      The ledger behind every stock level. Movements are never edited; you
      correct one by reversing it.
  - name: Serial numbers
    description: Individually tracked units, and where each one is now.
  - name: Stock moves
    description: >-
      Move stock from one location to another in one step, such as from a dock
      to a shelf, and undo a move whole.
  - name: Bulk previews
    description: >-
      Check a list of stock lines before a bulk move, adjustment, hold or print,
      and see what each line needs decided.
  - name: Items
    description: >-
      The products and materials you stock, buy, make or sell. An item's ID or
      SKU is what most other endpoints ask for.
  - name: Families
    description: >-
      Groups of items that differ only by options such as size or color, and the
      variants made from them.
  - name: Catalog imports
    description: >-
      Create or update items from a CSV file, with a preview before anything is
      saved.
  - name: Custom fields
    description: >-
      Extra fields the organization adds to its items. Define them here, then
      set their values on each item.
  - name: Product library
    description: >-
      Look up a product by its GTIN and create an item from what the library
      knows about it.
  - name: Units
    description: >-
      Units of measure, such as each, box or kg. Items count in one base unit
      and convert from the others.
  - name: Scanning
    description: Turn a scanned barcode into the item, unit or labeled piece it identifies.
  - name: Suppliers
    description: >-
      The companies you buy from, the people you deal with there and what they
      charge you.
  - name: Purchase orders
    description: >-
      Orders to suppliers. Draft one, approve it, send it and receive the goods
      against it.
  - name: Purchasing imports
    description: Load suppliers and their catalogs from CSV files.
  - name: Purchasing settings
    description: >-
      How the organization buys, such as the approval threshold and how far a
      receipt may go over the order.
  - name: Receipts
    description: >-
      Goods received against purchase orders. Reverse a receipt to correct it,
      or print labels for what came in.
  - name: Item suppliers
    description: Which suppliers sell an item, and at what price.
  - name: Purchasing exports
    description: >-
      Download suppliers or their catalogs as CSV, in the same columns the
      import reads.
  - name: Sales orders
    description: >-
      Customer orders. Take one as a draft, confirm it to hold stock, then ship
      it and invoice it.
  - name: Customers
    description: The companies you sell to and the people you deal with there.
  - name: Invoices
    description: Bills for what you have sold, and the payments recorded against them.
  - name: Price lists
    description: >-
      The prices a customer pays, with quantity breaks. Give a customer a price
      list and their orders price themselves.
  - name: Quotes
    description: Offers to customers. An accepted quote becomes a sales order.
  - name: Tax rates
    description: The sales tax rates invoices are charged at.
  - name: Sales imports
    description: Load customers and price lists from CSV files.
  - name: Returns
    description: >-
      Goods customers send back: authorize the return, then receive it into
      stock and credit it.
  - name: Shipments
    description: What left the building for each sales order.
  - name: Sales settings
    description: >-
      How the organization sells, such as when stock is reserved and whether
      invoices can go out before shipping.
  - name: Certificates of conformance
    description: >-
      Signed certificates that the goods on a shipment conform to the order,
      kept exactly as they were signed.
  - name: Prices
    description: >-
      Ask what a customer would pay for a quantity of an item before you put it
      on an order.
  - name: Sales exports
    description: >-
      Download customers and price lists as CSV, in the same columns the import
      reads.
  - name: Builds
    description: >-
      Orders to make something. Release a build to the floor, issue its parts
      and complete it into stock.
  - name: Repairs
    description: >-
      Repairs of units customers send back: check the warranty, record the parts
      put in and taken out, then complete the repair or bill it.
  - name: Routings
    description: The steps a build goes through and the work center each step runs at.
  - name: Work centers
    description: The machines, cells or teams where the steps of a routing are done.
  - name: Warranty terms
    description: >-
      How long an item is under warranty and whether it counts from shipment or
      build, with terms of their own for some customers.
  - name: Genealogy
    description: >-
      Trace a lot or serial number back to what went into it, or forward to what
      it went into.
  - name: Manufacturing settings
    description: >-
      How the organization builds, such as whether operations may overlap and
      the status finished goods go into.
  - name: Scheduling
    description: Plan open builds onto working days.
  - name: Cost variances
    description: Where a completed build cost more or less than its standard cost.
  - name: BOMs
    description: >-
      Bills of materials: the parts and quantities that go into an item, kept as
      revisions.
  - name: Engineering changes
    description: >-
      Change orders that propose new BOM revisions and release them once
      approved.
  - name: Engineering imports
    description: Load bills of materials from a CSV file or a CAD export.
  - name: Engineering settings
    description: >-
      How the organization manages engineering changes, such as how many
      approvals a change order needs.
  - name: Engineering exports
    description: Download bills of materials as CSV, in the same columns the import reads.
  - name: Where used
    description: Find every BOM an item appears in, before you change or retire it.
  - name: Inspection plans
    description: >-
      What to check, on which items and how many: the characteristics, sampling
      and inspection point of each plan.
  - name: Inspections
    description: >-
      Inspections opened by receipts, operations and builds. Record their
      results to pass or fail the stock they hold.
  - name: Forecasts
    description: >-
      Expected demand for each item, week by week, and the changes planners make
      to it.
  - name: Scenarios
    description: Copies of the forecast to try out changes without touching the real plan.
  - name: Demand
    description: Past demand for an item at a location, which the forecasts are built from.
  - name: Suggestions
    description: >-
      What the plan says to buy or build. Accept one to raise the purchase order
      or build, or dismiss it.
  - name: Replenishment
    description: >-
      How each item is kept in stock at each location: reorder points, minimums
      and maximums or periodic review.
  - name: Holidays
    description: >-
      Days the organization does not work, which the plan skips when it counts
      lead times.
  - name: Planning settings
    description: >-
      How the organization plans, such as the forecast horizon and service
      level.
  - name: Automations
    description: >-
      Rules that run steps when something happens or on a schedule. Edit the
      draft, then publish it to turn it on.
  - name: Runs
    description: >-
      Each time an automation ran: what started it, what each step did and where
      it failed.
  - name: Approvals
    description: Runs paused for a person to approve or reject before they carry on.
  - name: Automation settings
    description: >-
      Organization-wide limits on automations, such as runs a minute and whether
      someone may approve their own run.
  - name: Automation templates
    description: Ready-made automations to start from.
  - name: Events
    description: >-
      The events an automation can be triggered by, and the data each one
      carries.
  - name: Step catalog
    description: Every step an automation can use and the inputs each one takes.
  - name: Views
    description: >-
      Saved reports: the dataset, filters, grouping and chart someone set up,
      ready to run again.
  - name: Dashboards
    description: Pages of charts and KPIs laid out on a grid.
  - name: Datasets
    description: >-
      The data you can report on and the fields in each. Start here to build a
      report.
  - name: Schedules
    description: >-
      Send a report by email on a schedule, or alert someone when a value
      crosses a threshold.
  - name: KPIs
    description: Single numbers worth watching, defined as a formula over a dataset.
  - name: View folders
    description: Folders that keep saved views organized.
  - name: Insights exports
    description: >-
      Export a report to a file. Large exports run in the background and are
      ready to download later.
  - name: Report templates
    description: Ready-made reports, such as stock aging, to start a view from.
  - name: Reports
    description: >-
      Run a report definition and get its rows or its chart back, without saving
      it first.
  - name: Dashboard
    description: >-
      The figures on the app's home screen, if you want to show the same numbers
      elsewhere.
  - name: Dashboard templates
    description: Ready-made dashboards to start from.
  - name: Formulas
    description: >-
      Check a formula against a dataset before you save it in a KPI or a
      calculated field.
  - name: Connections
    description: >-
      Connected accounts in other systems, what each one syncs and the history
      of its sync runs.
  - name: Shipping
    description: >-
      Carrier rates, the labels bought for orders and returns, and the scans
      that track each parcel.
  - name: Sourcing
    description: >-
      Distributor part prices and stock: search a connected distributor, link
      items to its parts and price a BOM revision.
  - name: Tax addresses
    description: The addresses a connected tax service taxes each sale by, checked with it.
  - name: Connectors
    description: The systems StockShift can connect to, and what each connector can sync.
  - name: Label sets
    description: Every batch of labels printed, so you can find it again and reprint it.
  - name: Label templates
    description: The layouts labels are printed with.
  - name: Pieces
    description: >-
      Look up a labeled piece from the code on its label: the item, lot or
      serial and how much it holds.
  - name: Branding and templates
    description: >-
      The logo, colors, terms and custom fields every quote, purchase order,
      invoice and packing slip prints with.
  - name: Mobile apps
    description: >-
      How the StockShift mobile apps enroll a device, sign in and stay in step
      with the server.
  - name: Devices
    description: >-
      The phones and scanners enrolled in the organization. Lock a lost one,
      wipe it or retire it.
  - name: Scanner setup
    description: >-
      Printable sheets of barcodes that configure a hardware scanner, and each
      person's scanner preferences.
  - name: Enrollments
    description: Make the QR codes that enroll shared devices and kiosks.
  - name: Sync feeds
    description: >-
      Download a snapshot of the data a device needs, then pull the changes
      since.
  - name: Sync commands
    description: >-
      Send the changes a device made while offline. Each command is applied
      once, however often it is sent.
  - name: Sync files
    description: Download the files, such as item images, that a feed points to.
  - name: Profile
    description: >-
      The signed-in person's own account: their details, password, passkeys,
      second factor and sessions.
  - name: Notifications
    description: >-
      The signed-in member's inbox: what needs them, what is unread, and what
      they are told about and how.
  - name: Invitations
    description: Invite people to join the organization, and accept an invitation.
  - name: Roles
    description: Roles and the permissions in each. A member can do what their roles allow.
  - name: Staff access
    description: >-
      Requests from StockShift support to look at the organization's data, which
      an owner must grant.
  - name: Team
    description: The people in the organization and the roles they hold.
  - name: API keys
    description: Create and revoke the keys scripts and integrations use to call this API.
  - name: Organizations
    description: The organizations the signed-in person belongs to.
  - name: Signatures
    description: >-
      Some actions need an electronic signature. Get a signing token here and
      send it with the call.
  - name: Registration
    description: Sign up for a new account and organization.
  - name: Organization
    description: >-
      Organization-wide policy: how long records are kept, session rules, legal
      holds and closing the organization down.
  - name: Address
    description: The billing address that appears on the organization's invoices.
  - name: History
    description: Who changed which field of a record, when and from what.
  - name: Destruction certificates
    description: Check that a certificate of data destruction is genuine.
  - name: Billing
    description: >-
      Check or change the plan, buy run packs for automations, see invoices and
      update the payment method.
  - name: Webhooks
    description: >-
      Register URLs to be told when things happen, and see each delivery and its
      response.
  - name: OAuth apps
    description: >-
      Third-party apps members have connected through OAuth. Revoke one to cut
      off its access.
  - name: REST hooks
    description: >-
      For connected apps such as Zapier: subscribe one event to a URL, and
      unsubscribe it.
  - name: MCP server
    description: >-
      Let an AI assistant work in StockShift through the Model Context Protocol,
      with the same permissions as the member who connects it.
  - name: Recent events
    description: >-
      The latest events of a type, as deliveries send them, to poll or to use as
      samples.
  - name: Webhook events
    description: Every event webhooks and REST hooks can send, with the shape of its data.
paths:
  /sync/feeds/{feed}/changes:
    get:
      tags:
        - Sync feeds
      summary: Pull a feed's changes
      description: |-
        The entities that changed after `cursor`, oldest first, up to `limit`
        (500 by default, 2,000 at most). Each is its current record, or a
        delete when it is gone or the member may not see it, and several
        changes to one entity come as one. Keep `next_cursor` and send it to
        read on; a page with no changes still returns one. Changes of a
        transaction that has not finished are held back until it does. A
        cursor the device cannot continue from answers 410 `resync_required`
        with a `reason`: download the snapshot again. Needs the feed's
        permission and plan feature, and a token with `sync:read` and the scope
        of the feed's area, such as `inventory:read`.
      operationId: v1.sync.changes
      parameters:
        - name: feed
          in: path
          required: true
          schema:
            type: string
        - name: cursor
          in: query
          description: >-
            The `next_cursor` of the previous page. Leave it out to read from
            the start.
          schema:
            type:
              - string
              - 'null'
            maxLength: 2048
        - name: limit
          in: query
          description: How many changes to return, 500 when left out.
          schema:
            type:
              - integer
              - 'null'
            minimum: 1
            maximum: 2000
          example: 500
        - name: schema
          in: query
          description: >-
            The feed schema version the device holds. A different one answers
            410 schema_changed.
          schema:
            type:
              - integer
              - 'null'
            minimum: 1
          example: 1
      responses:
        '200':
          description: '`ChangesResource`'
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    $ref: '#/components/schemas/ChangesResource'
                required:
                  - data
          headers:
            X-RateLimit-Limit:
              description: >-
                Requests a minute allowed for this token, or for the address
                without one.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: Requests left this minute.
              schema:
                type: integer
        '400':
          $ref: '#/components/responses/InvalidCursor'
        '401':
          $ref: '#/components/responses/AuthenticationException'
        '403':
          $ref: '#/components/responses/DeviceRequired'
        '404':
          $ref: '#/components/responses/UnknownFeed'
        '410':
          $ref: '#/components/responses/ResyncRequired'
        '422':
          $ref: '#/components/responses/ValidationException'
        '429':
          description: Too many requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProblemDetails'
          headers:
            Retry-After:
              description: Seconds until the limit resets.
              schema:
                type: integer
            X-RateLimit-Limit:
              description: Requests a minute allowed.
              schema:
                type: integer
            X-RateLimit-Remaining:
              description: 'Requests left this minute: none.'
              schema:
                type: integer
      x-codeSamples:
        - lang: typescript
          label: TypeScript SDK
          source: >-
            import { StockShift } from "@stockshift/sdk";


            const stockshift = new StockShift({ token:
            process.env.STOCKSHIFT_TOKEN! });


            const result = await stockshift.get("/sync/feeds/{feed}/changes", {
              path: { feed: "01J8QZ4M..." },
            });
components:
  schemas:
    ChangesResource:
      type: object
      properties:
        changes:
          type: array
          items:
            $ref: '#/components/schemas/SyncChange'
        next_cursor:
          type: string
          description: >-
            Pass as `cursor` to read on. A page with no changes still returns
            one.
        has_more:
          type: boolean
          description: Whether more changes wait; ask again at once.
      required:
        - changes
        - next_cursor
        - has_more
      title: ChangesResource
    ProblemDetails:
      type: object
      properties:
        type:
          type: string
          format: uri
          description: Links to the documentation for this code.
        title:
          type: string
          description: The HTTP status text.
        status:
          type: integer
          description: The HTTP status code.
        code:
          type: string
          description: A stable machine readable name, such as validation_failed.
        detail:
          type: string
          description: What went wrong, for people.
        errors:
          type: object
          description: >-
            Errors by field. On validation_failed, and on a refusal with a code
            of its own such as insufficient_stock or document_closed.
          additionalProperties:
            type: array
            items:
              type: string
        feature:
          type: string
          description: The plan feature needed. Only on plan_upgrade_required.
        reason:
          type: string
          description: Why a device must download a feed again. Only on resync_required.
        attempts_left:
          type: integer
          description: >-
            How many refused signatures are left before the member is locked on
            the device. Only on signature_assertion_invalid.
        rule_ids:
          type: array
          description: >-
            The witnessing rules that cover the stock. Only on
            verification_required.
          items:
            type: string
        witness:
          type: string
          description: >-
            Where the witness signs: same_device, remote or either. Only on
            verification_required.
        blind_recount:
          type: boolean
          description: >-
            Whether the witness recounts before seeing the quantity. Only on
            verification_required.
        flags:
          type: array
          description: >-
            The flags a bulk line's decisions leave open, as the bulk preview
            names them. Only on decision_required.
          items:
            type: object
            properties:
              flag:
                type: string
              facts:
                type: object
                description: >-
                  The facts of the flag, as in the bulk preview; the others are
                  null.
                additionalProperties:
                  anyOf:
                    - type: string
                    - type: integer
                    - type: array
                      items:
                        type: string
                    - type: 'null'
              choices:
                type: array
                items:
                  type: string
            required:
              - flag
              - facts
              - choices
      required:
        - type
        - title
        - status
        - code
        - detail
      title: ProblemDetails
    SyncChange:
      type: object
      description: 'One entity''s change: its current record, or a delete.'
      properties:
        entity_type:
          type: string
          description: The kind of record, such as `stock_location`.
        id:
          type: string
        op:
          type: string
          enum:
            - upsert
            - delete
          description: '`delete` means the record is gone or the member may not see it.'
        version:
          type: integer
          description: >-
            The id of the entity's latest change. Apply an upsert only when it
            is newer than the one held.
        data:
          oneOf:
            - $ref: '#/components/schemas/CatalogRecord'
            - $ref: '#/components/schemas/CountsRecord'
            - $ref: '#/components/schemas/LabelsRecord'
            - $ref: '#/components/schemas/LocationsRecord'
            - $ref: '#/components/schemas/MeRecord'
            - $ref: '#/components/schemas/PickingRecord'
            - $ref: '#/components/schemas/ReceivingRecord'
            - $ref: '#/components/schemas/ReferenceRecord'
            - $ref: '#/components/schemas/ShopFloorRecord'
            - $ref: '#/components/schemas/StockRecord'
            - $ref: '#/components/schemas/StockActivityRecord'
            - $ref: '#/components/schemas/TransfersRecord'
            - type: 'null'
          description: The record as the feed describes it; null for a delete.
      required:
        - entity_type
        - id
        - op
        - version
        - data
    CatalogRecord:
      oneOf:
        - type: object
          title: ItemSync
          description: An `item` record.
          properties:
            id:
              type: string
            sku:
              type: string
            name:
              type: string
            family_id:
              type:
                - string
                - 'null'
            unit:
              type: string
              description: The code of the item's base unit.
            tracking:
              type: string
              enum:
                - none
                - lot
                - serial
            expiry_tracked:
              type: boolean
            archived:
              type: boolean
            controlled_schedule:
              type:
                - string
                - 'null'
              enum:
                - I
                - II
                - III
                - IV
                - V
                - null
              description: >-
                The controlled substance schedule witnessing rules match on;
                none when null.
            thumbnail:
              type:
                - object
                - 'null'
              description: >-
                Download the file from `GET /api/v1/sync/files/{file_id}` and
                keep it while the hash is unchanged.
              properties:
                file_id:
                  type: string
                hash:
                  type: string
              required:
                - file_id
                - hash
              additionalProperties: false
          required:
            - id
            - sku
            - name
            - family_id
            - unit
            - tracking
            - expiry_tracked
            - archived
            - controlled_schedule
            - thumbnail
          additionalProperties: false
        - type: object
          title: ItemBarcodeSync
          description: >-
            An `item_barcode` record. Resolve a scan by comparing the scanned
            code, normalized as the server does, with `lookup`.
          properties:
            id:
              type: string
            item_id:
              type: string
            code:
              type: string
            lookup:
              type: string
            symbology:
              type: string
            unit:
              type:
                - string
                - 'null'
              description: The code of the unit one scan counts, or null for the base unit.
            quantity_per_scan:
              type: string
              description: >-
                How many of the item's base unit one scan counts, an exact
                decimal.
          required:
            - id
            - item_id
            - code
            - lookup
            - symbology
            - unit
            - quantity_per_scan
          additionalProperties: false
        - type: object
          title: ItemFamilySync
          description: An `item_family` record.
          properties:
            id:
              type: string
            code:
              type: string
            name:
              type: string
            options:
              type: array
              items:
                type: object
                properties:
                  name:
                    type: string
                  values:
                    type: array
                    items:
                      type: string
                required:
                  - name
                  - values
          required:
            - id
            - code
            - name
            - options
          additionalProperties: false
        - type: object
          title: ItemUnitConversionSync
          description: >-
            An `item_unit_conversion` record: how many base units one of `unit`
            is.
          properties:
            id:
              type: string
            item_id:
              type: string
            unit:
              type: string
            factor:
              type: string
              description: An exact decimal.
          required:
            - id
            - item_id
            - unit
            - factor
          additionalProperties: false
      title: CatalogRecord
      description: A record of the catalog feed, at schema version 2.
    CountsRecord:
      type: object
      title: CountsRecord
      description: A record of the counts feed, at schema version 1.
      properties:
        id:
          type: string
        location_id:
          type: string
        blind:
          type: boolean
          description: Whether the lines leave out `expected`.
        started_at:
          type: string
          format: date-time
        lines:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                  item_id:
                    type: string
                  lot_id:
                    type:
                      - string
                      - 'null'
                  lot_number:
                    type:
                      - string
                      - 'null'
                  serial_id:
                    type:
                      - string
                      - 'null'
                  serial_number:
                    type:
                      - string
                      - 'null'
                  unit:
                    type: string
                    description: The code of the item's base unit.
                  expected:
                    type: string
                    description: A decimal in the base unit. A blind count leaves it out.
                  counted:
                    type:
                      - string
                      - 'null'
                    description: A decimal in the base unit, or null while uncounted.
                  counted_at:
                    type:
                      - string
                      - 'null'
                    format: date-time
                required:
                  - id
                  - item_id
                  - lot_id
                  - lot_number
                  - serial_id
                  - serial_number
                  - unit
                  - counted
                  - counted_at
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  A line of an item this device may not hold. Open the document
                  online to see it.
                properties:
                  id:
                    type: string
                  online_only:
                    type: boolean
                    const: true
                required:
                  - id
                  - online_only
                additionalProperties: false
      required:
        - id
        - location_id
        - blind
        - started_at
        - lines
      additionalProperties: false
    LabelsRecord:
      oneOf:
        - type: object
          title: LabelSetSync
          description: >-
            A `label_set` record: labels printed together, with the facts
            printed on every label in it. A set of several items, such as a bulk
            print, has null `item_id`, `sku`, `name`, `gtin` and `date`; each of
            its pieces names its own item.
          properties:
            id:
              type: string
            code:
              type: string
              description: The set ID printed on its labels.
            item_id:
              type:
                - string
                - 'null'
              description: Null for a set of several items.
            sku:
              type:
                - string
                - 'null'
            name:
              type:
                - string
                - 'null'
            gtin:
              type:
                - string
                - 'null'
            source:
              type: string
              enum:
                - receipt
                - build
                - stock
            orientation:
              type: string
              enum:
                - portrait
                - landscape
            piece_count:
              type: integer
            template_version:
              type: integer
              description: >-
                The version of the label template the set printed with; 0 is the
                default template.
            date:
              type:
                - object
                - 'null'
              description: The one fixed date the label prints.
              properties:
                kind:
                  type: string
                  enum:
                    - expires
                    - use_by
                    - made
                    - received
                    - released
                date:
                  type: string
                  description: As YYYY-MM-DD.
              required:
                - kind
                - date
              additionalProperties: false
            printed_at:
              type: string
              description: ISO 8601.
          required:
            - id
            - code
            - item_id
            - sku
            - name
            - gtin
            - source
            - orientation
            - piece_count
            - template_version
            - date
            - printed_at
          additionalProperties: false
        - type: object
          title: LabelPieceSync
          description: >-
            A `label_piece` record: one labelled piece. Resolve a scanned piece
            ID by comparing it, normalized as the server does, with `code`.
          properties:
            id:
              type: string
            set_id:
              type: string
            item_id:
              type: string
              description: >-
                The item its label is for: its set's, or its own in a set of
                several items.
            code:
              type: string
              description: The piece ID printed on its label.
            number:
              type: integer
              description: Its place in the set, from 1.
            lot:
              type:
                - string
                - 'null'
            serial:
              type:
                - string
                - 'null'
            quantity:
              type: string
              description: A plain decimal without trailing zeros.
            unit:
              type: string
            reprints:
              type: integer
              description: How many times the label was printed again.
            reprinted_at:
              type:
                - string
                - 'null'
              description: ISO 8601; null until the label is reprinted.
          required:
            - id
            - set_id
            - item_id
            - code
            - number
            - lot
            - serial
            - quantity
            - unit
            - reprints
            - reprinted_at
          additionalProperties: false
      title: LabelsRecord
      description: A record of the labels feed, at schema version 1.
    LocationsRecord:
      oneOf:
        - type: object
          title: StockLocationSync
          description: A `stock_location` record.
          properties:
            id:
              type: string
            code:
              type: string
            name:
              type: string
            kind:
              type: string
              enum:
                - site
                - transit
                - subcontractor
            archived:
              type: boolean
            scan_code:
              type:
                - string
                - 'null'
              description: >-
                What a scan of the location's sign reads, matched without regard
                to case.
          required:
            - id
            - code
            - name
            - kind
            - archived
            - scan_code
          additionalProperties: false
        - type: object
          title: WorkCenterSync
          description: >-
            A `work_center` record, sent only to members who may see work
            centers.
          properties:
            id:
              type: string
            code:
              type: string
            name:
              type: string
            location_id:
              type: string
            archived:
              type: boolean
          required:
            - id
            - code
            - name
            - location_id
            - archived
          additionalProperties: false
      title: LocationsRecord
      description: A record of the locations feed, at schema version 1.
    MeRecord:
      type: object
      properties:
        member:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            locale:
              type:
                - string
                - 'null'
          required:
            - id
            - name
            - locale
          additionalProperties: false
        organization:
          type: object
          properties:
            id:
              type: string
            name:
              type: string
            base_currency:
              type: string
              description: An ISO 4217 code.
          required:
            - id
            - name
            - base_currency
          additionalProperties: false
        permissions:
          type: array
          items:
            type: string
          description: What the member may do in the organization.
        entitlements:
          type: array
          items:
            type: string
          description: The features of the organization's plan.
        device:
          type: object
          properties:
            id:
              type: string
            kind:
              type: string
            location_id:
              type:
                - string
                - 'null'
            work_center_id:
              type:
                - string
                - 'null'
          required:
            - id
            - kind
            - location_id
            - work_center_id
          additionalProperties: false
        settings:
          type: object
          properties:
            offline_grace_hours:
              type: integer
              description: How long this device may stay offline before it locks itself.
            allow_negative_stock:
              type: boolean
            can_see_costs:
              type: boolean
            confidential_on_devices:
              type: boolean
              description: >-
                Whether the organization lets personal devices hold confidential
                records. Only a personal device of a member who may see them
                receives any.
            grace_cap_hours:
              type:
                - integer
                - 'null'
              description: >-
                The most hours a personal device may stay offline while
                confidential records are allowed on devices; null when nothing
                caps it. `offline_grace_hours` already reflects it.
            passcode_required:
              type: boolean
              description: >-
                Whether the app must refuse to keep confidential records unless
                the device has an OS passcode.
          required:
            - offline_grace_hours
            - allow_negative_stock
            - can_see_costs
            - confidential_on_devices
            - grace_cap_hours
            - passcode_required
          additionalProperties: false
        members:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
            required:
              - id
              - name
            additionalProperties: false
          description: >-
            Every member of the organization, in name order, so the app can say
            who made a change. A member it does not find here shows as someone.
        verification_policies:
          type: array
          description: >-
            The organization's witnessing rules, in order. A rule matches a
            stock action when the action is one of its `actions` and its
            `reasons` (for `adjust_out`, when any) include the adjustment's
            reason. Every scope it sets must also match: `organization_wide`, or
            an item of one of its `schedules` and a location among its
            `location_ids`. When several match, the strictest value of each
            field wins, and Schedule I or II and destruction never sign with
            `pin` or offline. Empty when the plan does not include witnessing.
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              actions:
                type: array
                items:
                  type: string
                  enum:
                    - adjust_out
                    - adjust_in
                    - status_change
                    - move
                    - count
              reasons:
                type: array
                items:
                  type: string
              schedules:
                type: array
                items:
                  type: string
                  enum:
                    - I
                    - II
                    - III
                    - IV
                    - V
              location_ids:
                type: array
                items:
                  type: string
              organization_wide:
                type: boolean
              witness:
                type: string
                enum:
                  - same_device
                  - either
                  - remote
              blind_recount:
                type: boolean
              signing:
                type: string
                enum:
                  - security_key
                  - reauth
                  - pin
              offline:
                type: boolean
              pending_minutes:
                type: integer
            required:
              - id
              - name
              - actions
              - reasons
              - schedules
              - location_ids
              - organization_wide
              - witness
              - blind_recount
              - signing
              - offline
              - pending_minutes
            additionalProperties: false
        release_requests:
          type: array
          description: >-
            The member's own requests to release held stock, oldest first: the
            open ones and those closed in the last 30 days. `command_id` is the
            device command that opened one, null when it was opened on the web;
            `waiting_command_id` is the change that waits on the device for it.
            `closed_by` is a member id as in `members`.
          items:
            type: object
            properties:
              id:
                type: string
              command_id:
                type:
                  - string
                  - 'null'
              waiting_command_id:
                type:
                  - string
                  - 'null'
              state:
                type: string
                enum:
                  - open
                  - released
                  - declined
                  - withdrawn
              closed_at:
                type:
                  - string
                  - 'null'
                format: date-time
              closed_by:
                type:
                  - string
                  - 'null'
            required:
              - id
              - command_id
              - waiting_command_id
              - state
              - closed_at
              - closed_by
            additionalProperties: false
      required:
        - member
        - organization
        - permissions
        - entitlements
        - device
        - settings
        - members
        - verification_policies
        - release_requests
      additionalProperties: false
      title: MeRecord
      description: A record of the me feed, at schema version 4.
    PickingRecord:
      type: object
      title: PickingRecord
      description: A record of the picking feed, at schema version 1.
      properties:
        id:
          type: string
        number:
          type: string
        status:
          type: string
          enum:
            - confirmed
            - partially_shipped
        customer_name:
          type: string
        location_id:
          type: string
          description: Where the order ships from.
        ship_by:
          type:
            - string
            - 'null'
          format: date
        ship_to_city:
          type:
            - string
            - 'null'
        ship_to_country:
          type:
            - string
            - 'null'
        lines:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                  item_id:
                    type: string
                  quantity:
                    type: string
                    description: A decimal in the line's unit.
                  unit:
                    type: string
                    description: The code of the unit the quantities are in.
                  reserved:
                    type: string
                    description: Held for the line, in the line's unit.
                  picked:
                    type: string
                    description: Shipped so far, in the line's unit.
                  holds:
                    type: array
                    items:
                      type: object
                      properties:
                        location_id:
                          type: string
                        quantity:
                          type: string
                          description: A decimal in the item's base unit.
                        lot_id:
                          type:
                            - string
                            - 'null'
                        lot_number:
                          type:
                            - string
                            - 'null'
                        serial_id:
                          type:
                            - string
                            - 'null'
                        serial_number:
                          type:
                            - string
                            - 'null'
                      required:
                        - location_id
                        - quantity
                        - lot_id
                        - lot_number
                        - serial_id
                        - serial_number
                      additionalProperties: false
                required:
                  - id
                  - item_id
                  - quantity
                  - unit
                  - reserved
                  - picked
                  - holds
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  A line of an item this device may not hold. Open the document
                  online to see it.
                properties:
                  id:
                    type: string
                  online_only:
                    type: boolean
                    const: true
                required:
                  - id
                  - online_only
                additionalProperties: false
      required:
        - id
        - number
        - status
        - customer_name
        - location_id
        - ship_by
        - ship_to_city
        - ship_to_country
        - lines
      additionalProperties: false
    ReceivingRecord:
      type: object
      title: ReceivingRecord
      description: A record of the receiving feed, at schema version 1.
      properties:
        id:
          type: string
        number:
          type: string
        status:
          type: string
          enum:
            - approved
            - sent
            - partially_received
        supplier_id:
          type: string
        supplier_name:
          type: string
        location_id:
          type: string
          description: Where the order delivers.
        expected_on:
          type:
            - string
            - 'null'
          format: date
        origin_capture:
          type: boolean
          description: >-
            Whether a receipt may record the country of origin: the plan
            includes it.
        lines:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                  item_id:
                    type: string
                  ordered:
                    type: string
                    description: A decimal in the line's unit.
                  received:
                    type: string
                    description: A decimal in the line's unit.
                  open:
                    type: string
                    description: What is still to come, never below zero.
                  unit:
                    type: string
                    description: The code of the unit the quantities are in.
                  tracking:
                    type: string
                    enum:
                      - none
                      - lot
                      - serial
                    description: What a receipt of the item must capture.
                required:
                  - id
                  - item_id
                  - ordered
                  - received
                  - open
                  - unit
                  - tracking
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  A line of an item this device may not hold. Open the document
                  online to see it.
                properties:
                  id:
                    type: string
                  online_only:
                    type: boolean
                    const: true
                required:
                  - id
                  - online_only
                additionalProperties: false
      required:
        - id
        - number
        - status
        - supplier_id
        - supplier_name
        - location_id
        - expected_on
        - origin_capture
        - lines
      additionalProperties: false
    ReferenceRecord:
      oneOf:
        - type: object
          title: CodeSync
          description: >-
            An `adjustment_reason` record (a reason a person may give for a
            stock adjustment) or a `symbology` record (a barcode symbology a
            scan can report).
          properties:
            code:
              type: string
          required:
            - code
          additionalProperties: false
        - type: object
          title: StockStatusSync
          description: A `stock_status` record.
          properties:
            code:
              type: string
            available:
              type: boolean
              description: Whether stock in this status may be used.
          required:
            - code
            - available
          additionalProperties: false
        - type: object
          title: CountrySync
          description: A `country` record.
          properties:
            code:
              type: string
              description: The ISO 3166-1 alpha-2 code, lower case.
            name:
              type: string
          required:
            - code
            - name
          additionalProperties: false
        - type: object
          title: UnitSync
          description: >-
            A `standard_unit` record (the units every organization has) or a
            `unit` record (the organization's own).
          properties:
            id:
              type: string
            code:
              type: string
            name:
              type: string
            dimension:
              type: string
            factor:
              type:
                - string
                - 'null'
              description: >-
                How many of the dimension's reference unit one of this is, an
                exact decimal; null when it has no standard size.
            standard:
              type: boolean
          required:
            - id
            - code
            - name
            - dimension
            - factor
            - standard
          additionalProperties: false
      title: ReferenceRecord
      description: A record of the reference feed, at schema version 3872671621.
    ShopFloorRecord:
      oneOf:
        - type: object
          title: BuildSync
          description: >-
            A `build` record: a released or in progress build with an operation
            at a work center in scope.
          properties:
            id:
              type: string
            number:
              type: string
            item_id:
              type: string
              description: >-
                The item the build makes; its lot or serial tracking is in its
                `catalog` record.
            quantity:
              type: string
              description: In the item's base unit, an exact decimal.
            location_id:
              type: string
            due_on:
              type:
                - string
                - 'null'
              description: The due date, Y-m-d.
            status:
              type: string
              enum:
                - released
                - in_progress
            priority:
              type: string
              enum:
                - high
                - normal
                - low
            revision_label:
              type:
                - string
                - 'null'
            lot:
              type:
                - string
                - 'null'
              description: >-
                The lot number the build records for its output; null until it
                does.
            serials:
              type: array
              items:
                type: string
              description: >-
                The serial numbers the build records for its output; empty until
                it does.
          required:
            - id
            - number
            - item_id
            - quantity
            - location_id
            - due_on
            - status
            - priority
            - revision_label
            - lot
            - serials
          additionalProperties: false
        - type: object
          title: BuildLineSync
          description: >-
            A `build_line` record: a part the build has to issue. Its lot or
            serial tracking is in the item's `catalog` record.
          properties:
            id:
              type: string
            build_id:
              type: string
            sequence:
              type: integer
            component_id:
              type: string
            quantity:
              type: string
              description: Scrap included, in `unit`, an exact decimal.
            unit:
              type: string
            issued:
              type: string
              description: >-
                How much has been issued so far, in the item's base unit, an
                exact decimal.
          required:
            - id
            - build_id
            - sequence
            - component_id
            - quantity
            - unit
            - issued
          additionalProperties: false
        - type: object
          title: BuildOperationSync
          description: 'A `build_operation` record: an operation at a work center in scope.'
          properties:
            id:
              type: string
            build_id:
              type: string
            routing_operation_id:
              type:
                - string
                - 'null'
              description: The `operation_id` of its instruction files.
            sequence:
              type: integer
            name:
              type: string
            work_center_id:
              type: string
            status:
              type: string
              enum:
                - pending
                - running
                - paused
                - completed
            setup_minutes:
              type: string
              description: Planned, once for the build, an exact decimal.
            run_minutes:
              type: string
              description: Planned for the build's whole quantity, an exact decimal.
            instructions:
              type:
                - string
                - 'null'
            started_at:
              type:
                - string
                - 'null'
              description: >-
                When the span running now began, ISO 8601; null unless it is
                running.
            started_by:
              type:
                - integer
                - 'null'
              description: >-
                The id of the member working on it now; null unless it is
                running.
          required:
            - id
            - build_id
            - routing_operation_id
            - sequence
            - name
            - work_center_id
            - status
            - setup_minutes
            - run_minutes
            - instructions
            - started_at
            - started_by
          additionalProperties: false
        - type: object
          title: BuildProblemSync
          description: >-
            A `build_problem` record: an open problem on the build or one of its
            operations.
          properties:
            id:
              type: string
            build_id:
              type: string
            operation_id:
              type:
                - string
                - 'null'
            reason:
              type: string
              enum:
                - material
                - machine
                - quality
                - instructions
                - other
            note:
              type: string
            created_at:
              type: string
          required:
            - id
            - build_id
            - operation_id
            - reason
            - note
            - created_at
          additionalProperties: false
        - type: object
          title: OperationFileSync
          description: >-
            A `routing_operation_file` record: a file of an operation's work
            instructions. Download it from `GET /api/v1/sync/files/{file_id}`
            and keep it while the hash is unchanged. The content under a file id
            never changes.
          properties:
            id:
              type: string
            operation_id:
              type: string
              description: >-
                The `routing_operation_id` of the build operations it belongs
                to.
            file_id:
              type: string
            name:
              type: string
            mime_type:
              type: string
            size:
              type: integer
              description: In bytes.
            key:
              type: string
              description: The same on every routing revision the file was carried to.
            hash:
              type: string
          required:
            - id
            - operation_id
            - file_id
            - name
            - mime_type
            - size
            - key
            - hash
          additionalProperties: false
      title: ShopFloorRecord
      description: A record of the shop_floor feed, at schema version 1.
    StockRecord:
      oneOf:
        - type: object
          title: StockLevelSync
          description: >-
            A `stock_level` record: stock of an item at a location, in a status
            and lot. A level at zero is not sent.
          properties:
            id:
              type: string
            item_id:
              type: string
            location_id:
              type: string
            status:
              type: string
              enum:
                - available
                - quarantined
                - rejected
            lot_id:
              type:
                - string
                - 'null'
            quantity:
              type: string
              description: A decimal in the item's base unit.
            unit:
              type: string
              description: The code of the item's base unit, as the catalog feed sends it.
            value:
              type: string
              description: >-
                What the stock is worth in the organization's currency. Only
                members who may see costs get it.
          required:
            - id
            - item_id
            - location_id
            - status
            - lot_id
            - quantity
            - unit
          additionalProperties: false
        - type: object
          title: StockLotSync
          description: 'A `stock_lot` record: a lot with stock at the device''s locations.'
          properties:
            id:
              type: string
            item_id:
              type: string
            number:
              type: string
            expires_on:
              type:
                - string
                - 'null'
              format: date
          required:
            - id
            - item_id
            - number
            - expires_on
          additionalProperties: false
        - type: object
          title: StockSerialSync
          description: >-
            A `stock_serial` record: a serial unit on hand at one of the
            device's locations.
          properties:
            id:
              type: string
            item_id:
              type: string
            number:
              type: string
            location_id:
              type: string
            status:
              type: string
              enum:
                - available
                - quarantined
                - rejected
          required:
            - id
            - item_id
            - number
            - location_id
            - status
          additionalProperties: false
      title: StockRecord
      description: A record of the stock feed, at schema version 1.
    StockActivityRecord:
      type: object
      title: StockActivityRecord
      description: A record of the stock_activity feed, at schema version 1.
      properties:
        id:
          type: string
        item_id:
          type: string
        location_id:
          type: string
        lot_id:
          type:
            - string
            - 'null'
        quantity:
          type: string
          description: >-
            A signed decimal in the item's base unit: negative when stock went
            out.
        status:
          type: string
          enum:
            - available
            - quarantined
            - rejected
        reason:
          type: string
          description: >-
            Why the stock changed, such as `transfer`, `shipment` or
            `status_change`.
        source_type:
          type:
            - string
            - 'null'
          description: >-
            The kind of document that posted it, such as `stock_transfer`, or
            null for an adjustment.
        posted_at:
          type: string
          format: date-time
          description: The server's time.
        member_id:
          type:
            - string
            - 'null'
          description: >-
            The member who made it, as the `me` feed lists them, or null when no
            person did.
      required:
        - id
        - item_id
        - location_id
        - lot_id
        - quantity
        - status
        - reason
        - source_type
        - posted_at
        - member_id
      additionalProperties: false
    TransfersRecord:
      type: object
      title: TransfersRecord
      description: A record of the transfers feed, at schema version 1.
      properties:
        id:
          type: string
        status:
          type: string
          enum:
            - draft
            - shipped
        from_location_id:
          type: string
        to_location_id:
          type: string
        shipped_at:
          type:
            - string
            - 'null'
          format: date-time
        lines:
          type: array
          items:
            oneOf:
              - type: object
                properties:
                  id:
                    type: string
                  item_id:
                    type: string
                  quantity:
                    type: string
                    description: A decimal in the item's base unit.
                  unit:
                    type: string
                    description: The code of the item's base unit.
                  entered_quantity:
                    type: string
                    description: A decimal in `entered_unit`.
                  entered_unit:
                    type: string
                  shipped:
                    type: string
                    description: >-
                      What has been shipped, in the base unit: all of the line
                      once the transfer is shipped, nothing before.
                  lot:
                    type:
                      - string
                      - 'null'
                    description: A lot number.
                  serials:
                    type: array
                    items:
                      type: string
                  received:
                    type: string
                    description: A decimal in the item's base unit.
                  received_serials:
                    type: array
                    items:
                      type: string
                required:
                  - id
                  - item_id
                  - quantity
                  - unit
                  - entered_quantity
                  - entered_unit
                  - shipped
                  - lot
                  - serials
                  - received
                  - received_serials
                additionalProperties: false
              - type: object
                title: OnlineOnlyLine
                description: >-
                  A line of an item this device may not hold. Open the document
                  online to see it.
                properties:
                  id:
                    type: string
                  online_only:
                    type: boolean
                    const: true
                required:
                  - id
                  - online_only
                additionalProperties: false
      required:
        - id
        - status
        - from_location_id
        - to_location_id
        - shipped_at
        - lines
      additionalProperties: false
  responses:
    InvalidCursor:
      description: Invalid cursor
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    AuthenticationException:
      description: Unauthenticated
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    DeviceRequired:
      description: Device required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    UnknownFeed:
      description: Feed not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    ResyncRequired:
      description: Resync required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
    ValidationException:
      description: Validation error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetails'
  securitySchemes:
    apiKey:
      type: http
      description: >-
        For your own scripts and server-to-server integrations. Create a key in
        the app under Settings > Access > API keys and copy it then, because it
        is shown once. Send it as `Authorization: Bearer <key>`. The key acts as
        the member who made it, in the organization it was made in. A call needs
        the member's permission and one of the key's scopes, such as
        `inventory:read` or `sales:write`. A key with `*` has every scope.
      scheme: bearer
    oauth2:
      type: oauth2
      description: >-
        For apps that other people connect to their StockShift account. Use the
        OAuth 2.1 authorization code flow with PKCE (S256); there is no client
        secret. Discover the endpoints at
        `/.well-known/oauth-authorization-server` (RFC 8414) and register your
        app at `POST /oauth/register` (RFC 7591). The member chooses the
        organization and approves the scopes on the consent page, and the token
        can never do more than the member could. Send it as `Authorization:
        Bearer <token>`, as you would an API key. Access tokens last an hour;
        each refresh returns a new refresh token, so store it.
      flows:
        authorizationCode:
          authorizationUrl: https://app.stockshift.io/oauth/authorize
          tokenUrl: https://app.stockshift.io/oauth/token
          refreshUrl: https://app.stockshift.io/oauth/token
          scopes:
            access:read: Access read
            audit:read: Audit read
            address:read: Address read
            address:write: Address write
            billing:read: Billing read
            catalog:read: Catalog read
            catalog:write: Catalog write
            dashboard:read: Dashboard read
            dashboard:write: Dashboard write
            developer:read: Developer read
            developer:write: Developer write
            devices:read: Devices read
            devices:write: Devices write
            documents:read: Documents read
            documents:write: Documents write
            notifications:read: Notifications read
            notifications:write: Notifications write
            inventory:read: Inventory read
            inventory:write: Inventory write
            purchasing:read: Purchasing read
            purchasing:write: Purchasing write
            quality:read: Quality read
            quality:write: Quality write
            sales:read: Sales read
            sales:write: Sales write
            engineering:read: Engineering read
            engineering:write: Engineering write
            manufacturing:read: Manufacturing read
            manufacturing:write: Manufacturing write
            automation:read: Automation read
            automation:write: Automation write
            insights:read: Insights read
            insights:write: Insights write
            integrations:read: Integrations read
            integrations:write: Integrations write
            labels:read: Labels read
            labels:write: Labels write
            library:read: Library read
            organization:read: Organization read
            organization:write: Organization write
            planning:read: Planning read
            planning:write: Planning write
            sync:read: Sync read
            sync:write: Sync write

````

## Related topics

- [Download a feed's snapshot](https://docs.stockshift.io/api-reference/sync-feeds/download-a-feeds-snapshot.md)
- [Ask what a polling device has to do](https://docs.stockshift.io/api-reference/sync-feeds/ask-what-a-polling-device-has-to-do.md)
- [List sync feeds](https://docs.stockshift.io/api-reference/sync-feeds/list-sync-feeds.md)


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.