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

# Get Rule

> Get all rules that have been set for your project.



## OpenAPI

````yaml POST /v1/rules/list
openapi: 3.0.3
info:
  title: Stytch API
  description: The Stytch API provides endpoints for authentication and user management.
  version: 2.1.1
  contact:
    name: Stytch Support
    url: https://stytch.com/docs
    email: support@stytch.com
servers:
  - url: https://api.stytch.com
    description: Production server
  - url: https://test.stytch.com
    description: Test server
security:
  - basicAuth: []
paths:
  /v1/rules/list:
    servers:
      - url: https://telemetry.stytch.com
    post:
      tags:
        - Fraud
      summary: List
      description: Get all rules that have been set for your project.
      operationId: api_fraud_v1_fraud_rules_List
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/api_fraud_v1_fraud_rules_ListRequest'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/api_fraud_v1_fraud_rules_ListResponse'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
          content:
            application/json:
              example:
                status_code: 401
                request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141
                error_type: unauthorized_credentials
                error_message: Unauthorized credentials.
                error_url: https://stytch.com/docs/api/errors/401
        '429':
          description: Too Many Requests
          content:
            application/json:
              example:
                status_code: 429
                request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141
                error_type: too_many_requests
                error_message: Too many requests have been made.
                error_url: https://stytch.com/docs/api/errors/429
        '500':
          description: Internal server error
          content:
            application/json:
              example:
                status_code: 500
                request_id: request-id-test-b05c992f-ebdc-489d-a754-c7e70ba13141
                error_type: internal_server_error
                error_message: >-
                  Oops, something seems to have gone wrong, please reach out to
                  support@stytch.com to let us know what went wrong.
                error_url: https://stytch.com/docs/api/errors/500
      x-code-samples:
        - lang: csharp
          label: C#
          source: |-
            // POST /v1/rules/list
            const stytch = require('stytch');

            const client = new stytch.B2BClient({
              project_id: '${projectId}',
              secret: '${secret}',
            });

            const params = {
              limit: 10,
            };

            client.Fraud.Rules.List(params)
              .then(resp => { console.log(resp) })
              .catch(err => { console.log(err) });
        - lang: go
          label: Go
          source: "// POST /v1/rules/list\npackage main\n\nimport (\n\t\"context\"\n\t\"log\"\n\n\t\"github.com/stytchauth/stytch-go/v18/stytch/consumer/fraud/rules\"\n\t\"github.com/stytchauth/stytch-go/v18/stytch/consumer/stytchapi\"\n)\n\nfunc main() {\n\tclient, err := stytchapi.NewClient(\n\t\t\"${projectId}\",\n\t\t\"${secret}\",\n\t)\n\tif err != nil {\n\t\tlog.Fatalf(\"error instantiating client: %v\", err)\n\t}\n\n\tparams := &rules.ListParams{\n\t\tLimit: 10,\n\t}\n\n\tresp, err := client.Fraud.Rules.List(context.Background(), params)\n\tif err != nil {\n\t\tlog.Fatalf(\"error in method call: %v\", err)\n\t}\n\n\tlog.Println(resp)\n}\n"
        - lang: java
          label: Java
          source: |-
            // POST /v1/rules/list
            package com.example;

            import com.stytch.java.common.StytchResult;
            import com.stytch.java.consumer.models.fraudrules.ListRequest;
            import com.stytch.java.consumer.StytchClient;

            public class Main {
                public static void main(String[] args) {
                    StytchClient.configure("${projectId}", "${secret}");

                    ListRequest params = new ListRequest();
                    params.setLimit(10);

                    Object result = StytchClient.getFraud().getRules().list(params);
                    if (result instanceof StytchResult.Success) {
                      System.out.println(((StytchResult.Success) result).getValue());
                    } else {
                      System.out.println(((StytchResult.Error) result).getException());
                    }
                }
            }
        - lang: kotlin
          label: Kotlin
          source: |
            // POST /v1/rules/list
            package com.example

            import com.stytch.java.consumer.StytchClient
            import com.stytch.java.consumer.models.fraudrules.ListRequest

            fun main() {
                StytchClient.configure(
                    projectId = "${projectId}",
                    secret = "${secret}",
                )

                when (
                    val result =
                        StytchClient.fraud.rules.list(
                            ListRequest(
                                limit = 10,
                            ),
                        )
                ) {
                    is StytchResult.Success -> println(result.value)
                    is StytchResult.Error -> println(result.exception)
                }
            }
        - lang: javascript
          label: Node.js
          source: |-
            // POST /v1/rules/list
            const stytch = require('stytch');

            const client = new stytch.Client({
              project_id: '${projectId}',
              secret: '${secret}',
            });

            const params = {
              limit: 10,
            };

            client.fraud.rules.list(params)
              .then(resp => { console.log(resp) })
              .catch(err => { console.log(err) });
        - lang: php
          label: PHP
          source: |-
            $response = $client->fraud->rules->list([
                'limit' => 10,
            ]);
        - lang: python
          label: Python
          source: |
            # POST /v1/rules/list
            from stytch import Client

            client = Client(
                project_id="${projectId}",
                secret="${secret}",
            )

            resp = client.fraud.rules.list(
                limit=10,
            )

            print(resp)
        - lang: ruby
          label: Ruby
          source: |-
            # frozen_string_literal: true

            # POST /v1/rules/list
            require 'stytch'

            client = Stytch::Client.new(
              project_id: "${projectId}",
              secret: "${secret}"
            )

            resp = client.fraud.rules.list(
              limit: 10
              
            )

            puts resp
        - lang: rust
          label: Rust
          source: |-
            // POST /v1/rules/list
            use stytch::consumer::client::Client;
            use stytch::consumer::fraud_rules::ListRequest;

            fn main() {
                let client = Client::new("${projectId}", "${secret}").unwrap();
                let resp = client.fraud.rules.list(
                    ListRequest{
                        limit: 10,
                        ..Default::default()
                    }
                ).await;
                println!("The response is {:?}", resp);
            }
        - lang: bash
          label: cURL
          source: |-
            # POST /v1/rules/list
            curl --request POST \
              --url https://telemetry.stytch.com/v1/rules/list \
              -u '${projectId}:${secret}' \
              -H 'Content-Type: application/json' \
              -d '{
                "limit": 10
              }'
components:
  schemas:
    api_fraud_v1_fraud_rules_ListRequest:
      type: object
      properties:
        cursor:
          type: string
          description: >-
            The `cursor` field allows you to paginate through your results. Each
            result array is limited to 100 results. If your query returns more
            than 100 results, you will need to paginate the responses using the
            `cursor`. If you receive a response that includes a non-null
            `next_cursor`, repeat the request with the `next_cursor` value set
            to the `cursor` field to retrieve the next page of results. Continue
            to make requests until the `next_cursor` in the response is null.
        limit:
          type: integer
          format: int32
          description: >-
            The number of results to return per page. The default limit is 10. A
            maximum of 100 results can be returned by a single get request. If
            the total size of your result set is greater than one page size, you
            must paginate the response. See the `cursor` field.
      description: Request type
    api_fraud_v1_fraud_rules_ListResponse:
      type: object
      properties:
        request_id:
          type: string
          description: >-
            Globally unique UUID that is returned with every API call. This
            value is important to log for debugging purposes; we may ask for
            this value to help identify a specific API call when helping you
            debug an issue.
        next_cursor:
          type: string
          description: >-
            The `next_cursor` string is returned when your result contains more
            than one page of results. This value is passed into your next
            request in the `cursor` field.
        rules:
          type: array
          items:
            $ref: '#/components/schemas/api_fraud_v1_Rule'
          description: A list of rules for the project
        status_code:
          type: integer
          format: int32
          description: >-
            The HTTP status code of the response. Stytch follows standard HTTP
            response status code patterns, e.g. 2XX values equate to success,
            3XX values are redirects, 4XX are client errors, and 5XX are server
            errors.
      required:
        - request_id
        - next_cursor
        - rules
        - status_code
    api_fraud_v1_Rule:
      type: object
      properties:
        rule_type:
          $ref: '#/components/schemas/api_fraud_v1_RuleType'
          description: >-
            The rule type. The possible values are `VISITOR_ID`, `BROWSER_ID`,
            `VISITOR_FINGERPRINT`, `BROWSER_FINGERPRINT`,
            `HARDWARE_FINGERPRINT`, `NETWORK_FINGERPRINT`, `CIDR_BLOCK`, `ASN`,
            or `COUNTRY_CODE`.
        action:
          $ref: '#/components/schemas/api_fraud_v1_RuleAction'
          description: >-
            The action (`ALLOW`, `BLOCK`, or `CHALLENGE`) that will be returned
            for this rule.
        created_at:
          type: string
          description: >-
            The time when the rule was created. Values conform to the RFC 3339
            standard and are expressed in UTC, e.g. `2021-12-29T12:33:09Z`.
        visitor_id:
          type: string
          description: The visitor ID that a rule was set for.
        browser_id:
          type: string
          description: The browser ID that a rule was set for.
        visitor_fingerprint:
          type: string
          description: The visitor fingerprint that a rule was set for.
        browser_fingerprint:
          type: string
          description: The browser fingerprint that a rule was set for.
        hardware_fingerprint:
          type: string
          description: The hardware fingerprint that a rule was set for.
        network_fingerprint:
          type: string
          description: The network fingerprint that a rule was set for.
        cidr_block:
          type: string
          description: >-
            The CIDR block that a rule was set for. If an end user's IP address
            is within this CIDR block, this rule will be applied.
        country_code:
          type: string
          description: The country code that a rule was set for.
        asn:
          type: string
          description: The ASN that a rule was set for.
        description:
          type: string
          description: A description for the rule.
        expires_at:
          type: string
          description: >-
            The timestamp when the rule expires. Values conform to the RFC 3339
            standard and are expressed in UTC, e.g. `2021-12-29T12:33:09Z`.
        last_updated_at:
          type: string
          description: >-
            The time when the rule was last updated. Will be null if the rule
            has never been updated. Values conform to the RFC 3339 standard and
            are expressed in UTC, e.g. `2021-12-29T12:33:09Z`.
      required:
        - rule_type
        - action
        - created_at
    api_fraud_v1_RuleType:
      type: string
      enum:
        - VISITOR_ID
        - BROWSER_ID
        - VISITOR_FINGERPRINT
        - BROWSER_FINGERPRINT
        - HARDWARE_FINGERPRINT
        - NETWORK_FINGERPRINT
        - CIDR_BLOCK
        - ASN
        - COUNTRY_CODE
    api_fraud_v1_RuleAction:
      type: string
      enum:
        - ALLOW
        - CHALLENGE
        - BLOCK
        - NONE
  securitySchemes:
    basicAuth:
      type: http
      scheme: basic

````