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

# List your recipes

> **Beta.** The request and response shapes may still change.

List your recipes.

Returns your recipes, with their rules, weights, thresholds and declared attributes and parameters.

Pagination works as it does elsewhere: pass `next_cursor` back as `cursor`.


## OpenAPI

````yaml get /v2/watch/management/recipes
openapi: 3.1.0
info:
  title: Prelude API
  version: 2.0.0
  description: The Prelude API allows you to send messages to your users.
  contact:
    email: support@prelude.so
servers:
  - url: https://api.prelude.dev
    description: Production server
security:
  - apiToken: []
tags:
  - name: Notify
    description: Send transactional and marketing messages with compliance enforcement.
  - name: Transactional
    description: Send transactional messages (deprecated - use Notify API instead).
  - name: Verify
    description: Verify phone numbers.
  - name: Watch
    description: Evaluate email addresses and phone numbers for trustworthiness.
  - name: Lookup
    description: >-
      Retrieve detailed information about a phone number including carrier data,
      line type, and portability status.
paths:
  /v2/watch/management/recipes:
    get:
      tags:
        - Watch
      summary: List recipes
      description: |-
        **Beta.** The request and response shapes may still change.

        List your recipes.
      operationId: listWatchRecipes
      parameters:
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            maximum: 200
            default: 50
          description: >-
            Maximum number of recipes to return per page. A larger value is
            clamped to 200 rather than refused.
        - name: cursor
          in: query
          required: false
          schema:
            type: string
          description: Pagination cursor from the previous response.
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WatchRecipeListResponse'
        '400':
          description: KO
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    WatchRecipeListResponse:
      type: object
      properties:
        recipes:
          type: array
          items:
            $ref: '#/components/schemas/WatchRecipe'
        next_cursor:
          type: string
          description: >-
            Pass this back as `cursor` for the next page. Absent on the last
            page.
          examples:
            - rcp_01jc0t6fwwfgfsq1md24mhyztj
      required:
        - recipes
    Error:
      type: object
      properties:
        code:
          type: string
          description: The error code.
          examples:
            - invalid_phone_number
        message:
          type: string
          examples:
            - >-
              The provided phone number is invalid. Provide a valid E.164 phone
              number.
          description: A human-readable message describing the error.
        type:
          type: string
          examples:
            - bad_request
          description: The error type.
        request_id:
          type: string
          examples:
            - 3d19215e-2991-4a05-a41a-527314e6ff6a
          description: >-
            A string that identifies this specific request. Report it back to us
            to help us diagnose your issues.
        param:
          type: string
          examples:
            - phone_number
          description: The parameter the error refers to, when it applies to a single one.
      required:
        - code
        - message
        - type
    WatchRecipe:
      type: object
      properties:
        id:
          type: string
          examples:
            - rcp_01jc0t6fwwfgfsq1md24mhyztj
          description: The recipe identifier. Reference it in a flow's `recipes` to run it.
        name:
          type: string
          examples:
            - signup_proxy_abuse
        catalog_version:
          type: integer
          format: int64
          description: >-
            The version of the Prelude signal catalog this recipe's rules are
            compiled against, stamped by the server when the recipe is created
            or replaced. It is what stops a catalog that later grows or
            deprecates entries from silently changing what this recipe means.
          examples:
            - 1
        status:
          type: string
          enum:
            - DRAFT
            - SHADOW
            - LIVE
            - INACTIVE
        threshold:
          type: integer
          format: int64
          examples:
            - 70
        rules:
          type: array
          items:
            $ref: '#/components/schemas/WatchRecipeRule'
        attributes:
          type: array
          items:
            type: string
          examples:
            - - plan_tier
              - account_age_days
        parameters:
          type: object
          additionalProperties:
            type: string
          examples:
            - blocked_countries: RU,BY
              max_attempts: '5'
      required:
        - id
        - name
        - catalog_version
        - status
        - threshold
        - rules
    WatchRecipeRule:
      type: object
      description: >-
        One rule's place in a recipe - what it contributes to the score, and
        whether it can settle the verdict on its own.
      properties:
        rule_id:
          type: string
          examples:
            - rul_01jc0t6fwwfgfsq1md24mhyztj
          description: A rule you authored, or one from the managed listing.
        weight:
          type: integer
          format: int64
          examples:
            - 40
          description: >-
            What this rule adds to the recipe's score when it triggers. A rule
            that does not trigger, or that could not run, adds nothing.
        preempts:
          type: string
          enum:
            - PASS
            - FLAG
          description: >
            Makes this rule's outcome the recipe's verdict when it triggers,
            bypassing the score. Omit it in the ordinary case, where the rule
            contributes its weight and the total decides.


            It exists because a weighted score cannot express a certainty:
            saying "this alone is conclusive" through the weights means picking
            a number above every threshold the recipe might later be given,
            which stops being true the moment the threshold moves. The weight
            still applies and the score is still reported - a preempting rule
            overrides the conclusion, it does not erase the evidence.
          examples:
            - FLAG
      required:
        - rule_id
        - weight
  securitySchemes:
    apiToken:
      type: http
      scheme: bearer

````