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

# Retrieve a list of shipping rules

> Retrieve the shipping rules configured for your account, in the order they are evaluated.

This endpoint uses cursor-based pagination via `Link` headers. See [Pagination](/api/v3/pagination) for details.



## OpenAPI

````yaml /.openapi/v3/shipping-rules/openapi.yaml get /shipping-rules/rules
openapi: 3.1.0
info:
  title: Shipping Rules [BETA]
  version: 3.0.0
  description: >-
    The Sendcloud Shipping Rules API lets you automate how shipments are
    handled. A shipping rule applies one or more actions to a shipment whenever
    the shipment matches the rule's conditions, so you can set shipping methods,
    add insurance, or update other properties without manual work.
  contact:
    name: Sendcloud API Support
    url: https://www.sendcloud.dev
    email: contact@sendcloud.com
  license:
    name: Apache 2.0
    url: https://www.apache.org/licenses/LICENSE-2.0.html
servers:
  - url: https://panel.sendcloud.sc/api/v3
    description: Sendcloud Production
security: []
tags:
  - name: Rules
    description: Create and manage the shipping rules that are applied to your shipments.
  - name: Possibilities
    description: >-
      Look up the properties, operators, and actions available to build shipping
      rules.
paths:
  /shipping-rules/rules:
    get:
      tags:
        - Rules
      summary: Retrieve a list of shipping rules
      description: >-
        Retrieve the shipping rules configured for your account, in the order
        they are evaluated.


        This endpoint uses cursor-based pagination via `Link` headers. See
        [Pagination](/api/v3/pagination) for details.
      operationId: sc-public-v3-shipping-rules-list-rules
      parameters:
        - schema:
            type:
              - boolean
              - 'null'
          in: query
          name: active
          description: >-
            Filter rules by active state; omit to return both active and
            inactive rules.
          example: true
        - $ref: '#/components/parameters/Cursor'
        - schema:
            type: integer
            maximum: 200
          in: query
          name: page_size
          description: The size of the page to fetch.
          example: 50
      responses:
        '200':
          description: OK
          headers:
            Link:
              description: >-
                The pagination links, according to the web linking specification
                (RFC8288).
              schema:
                type: string
                example: >-
                  <https://panel.sendcloud.sc/api/v3/shipping-rules/rules?cursor=cD0yNTM1NDIyODI%3D>;
                  rel="next"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RuleListResponse'
              examples:
                RetrieveAListOfShippingRules:
                  summary: Retrieve a list of shipping rules
                  value:
                    data:
                      - id: 1
                        name: Insure high-value parcels
                        is_active: true
                        is_invalid: false
                        order: 1
                        updated_at: '2026-06-26T10:15:00Z'
                        criteria:
                          is_and: true
                          conditions:
                            - property: total_order_value
                              operator: greater_than
                              compare_to: '100'
                        actions:
                          - identifier: set_insurance
                            value: '500'
      security:
        - HTTPBasicAuth: []
        - OAuth2ClientCreds: []
components:
  parameters:
    Cursor:
      in: query
      name: cursor
      description: >-
        The cursor query string is used as the pivot value to filter results. If
        no value is provided, the first page of results will be returned. To get
        this value, you must encode the offset, reverse and position into a
        base64 string.


        There are 3 possible parameters to encode:

        - `o`: Offset

        - `r`: Reverse

        - `p`: Position
          
        For example, `r=1&p=300` encoded as a base64 string would be
        `cj0xJnA9MzAw`. The query string would then be `cursor=cj0xJnA9MzAw`.
      schema:
        type: string
        example: cj0xJnA9MzAw
  schemas:
    RuleListResponse:
      title: RuleListResponse
      type: object
      description: A page of shipping rules.
      properties:
        data:
          type: array
          description: Rules on the current page, in evaluation order.
          items:
            $ref: '#/components/schemas/RuleDetail'
      required:
        - data
    RuleDetail:
      title: RuleDetail
      type: object
      description: A shipping rule including its conditions and actions.
      properties:
        id:
          type: integer
          description: ID of the rule.
          example: 1
        name:
          type: string
          description: Name of the rule.
          example: Insure high-value parcels
        is_active:
          type: boolean
          description: Whether the rule is currently evaluating shipments.
          example: true
        is_invalid:
          type: boolean
          description: >-
            True when the rule cannot be evaluated (e.g. references an
            unavailable property or action).
          example: false
        order:
          type:
            - integer
            - 'null'
          description: >-
            Position in the organization's evaluation order; lower values are
            evaluated first.
          example: 1
        updated_at:
          type:
            - string
            - 'null'
          format: date-time
          description: Timestamp of the last update to the rule.
          example: '2026-06-26T10:15:00Z'
        criteria:
          oneOf:
            - $ref: '#/components/schemas/RuleCriteriaDetail'
            - type: 'null'
          description: Criteria that determine when this rule fires.
        actions:
          type: array
          description: Actions executed when the rule fires.
          items:
            $ref: '#/components/schemas/RuleActionDetail'
      required:
        - id
        - name
        - is_active
        - is_invalid
    RuleCriteriaDetail:
      title: RuleCriteriaDetail
      type: object
      description: A set of conditions combined with a boolean operator.
      properties:
        is_and:
          type: boolean
          description: >-
            True when all conditions must match; false when any single condition
            is sufficient.
          example: true
        conditions:
          type: array
          description: Conditions belonging to this criteria block.
          items:
            $ref: '#/components/schemas/RuleConditionDetail'
      required:
        - is_and
    RuleActionDetail:
      title: RuleActionDetail
      type: object
      description: An action stored on a shipping rule.
      properties:
        identifier:
          type: string
          description: Action identifier describing the action type.
          example: set_insurance
        value:
          type:
            - string
            - 'null'
          description: Action parameter value; null when the action has no parameter.
          example: '500'
      required:
        - identifier
    RuleConditionDetail:
      title: RuleConditionDetail
      type: object
      description: A single condition that compares a property to a value.
      properties:
        property:
          type: string
          description: Property identifier evaluated by this condition.
          example: total_order_value
        operator:
          type: string
          description: Operator identifier used by this condition.
          example: greater_than
        compare_to:
          type:
            - string
            - 'null'
          description: Compared value; null for unary operators.
          example: '100'
      required:
        - property
        - operator
  securitySchemes:
    HTTPBasicAuth:
      type: http
      description: >-
        Basic Authentication using API key and secrets is currently the main
        authentication mechanism.
      scheme: basic
    OAuth2ClientCreds:
      type: oauth2
      description: >-
        OAuth2 is a standardized protocol for authorization that allows users to
        share their private resources stored on one site with another site
        without having to provide their credentials. OAuth2 Client Credentials
        Grant workflow. This workflow is typically used for server-to-server
        interactions that require authorization to access specific resources.
      flows:
        clientCredentials:
          tokenUrl: https://account.sendcloud.com/oauth2/token/
          scopes:
            api: Default OAuth scope required to access Sendcloud API.

````