> **For AI agents:** this page is a focused, LLM-optimized view of a
> single Fiber AI operation. Before calling it, fetch the routing
> instructions at [`https://api.fiber.ai/llms.txt`](https://api.fiber.ai/llms.txt) and the full operation
> index at [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md).

# previewTrackerSignal

`POST /v1/tracker/rules/preview-signal`

**Tags:** `Tracker`

Preview a signal

**Endpoint:** `https://api.fiber.ai/v1/tracker/rules/preview-signal`

## Description

Returns an example signal payload for a given rule configuration. No side effects — nothing is created or dispatched. Free to call. Useful for understanding signal shapes before creating rules.

⚡ Rate limit: 120 requests per 1 minute

💰 Cost: FREE! No credits are charged for this API. ⓘ

## Request body (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "apiKey": {
      "type": "string",
      "description": "Your Fiber API key"
    },
    "config": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "headcount_crossed_threshold"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "direction": {
              "type": "string",
              "enum": [
                "above",
                "below"
              ],
              "description": "Whether to alert when headcount crosses the threshold going up or down"
            },
            "threshold": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "description": "The employee count threshold to watch for crossing. Any positive integer is accepted."
            }
          },
          "required": [
            "type",
            "entityType",
            "direction",
            "threshold"
          ],
          "title": "Headcount crossed threshold"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "headcount_growth_percent"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "minPercentChange": {
              "type": "number",
              "exclusiveMinimum": 0,
              "maximum": 1000,
              "description": "Minimum percent change to trigger (e.g. 20 means 20% growth)"
            },
            "direction": {
              "type": "string",
              "enum": [
                "grew",
                "shrank",
                "either"
              ],
              "description": "Whether to alert on growth, shrinkage, or either"
            },
            "minStartingHeadcount": {
              "type": [
                "integer",
                "null"
              ],
              "exclusiveMinimum": 0,
              "description": "Only alert if the company had at least this many employees before the change. Omit for any starting size."
            }
          },
          "required": [
            "type",
            "entityType",
            "minPercentChange",
            "direction"
          ],
          "title": "Headcount growth percent"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "new_funding_round"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "minAmountUsd": {
              "type": [
                "number",
                "null"
              ],
              "minimum": 0,
              "description": "Only alert for rounds above this amount. Omit for any amount."
            },
            "roundTypes": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "pre_seed",
                  "seed",
                  "angel",
                  "series_a",
                  "series_b",
                  "series_c",
                  "series_d",
                  "series_e",
                  "series_f",
                  "series_g",
                  "private_equity",
                  "debt_financing",
                  "grant",
                  "convertible_note",
                  "corporate_round",
                  "undisclosed"
                ]
              },
              "minItems": 1,
              "description": "Round types to alert on. Defaults to equity-focused types when omitted. Set explicitly to include debt/grant types."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "New funding round"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "funding_stage_changed"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "toStages": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "pre_seed",
                  "seed",
                  "series_a",
                  "series_b",
                  "series_c",
                  "series_d",
                  "series_e",
                  "series_f",
                  "series_g",
                  "private_equity",
                  "public",
                  "acquired"
                ]
              },
              "minItems": 1,
              "description": "Only alert if new stage is one of these. Omit for any stage change."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Funding stage changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "job_posting_with_keyword"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "keywords": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Alert when a job posting contains any of these keywords in the selected search fields."
            },
            "searchFields": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "title",
                  "description"
                ]
              },
              "minItems": 1,
              "description": "Job posting fields to search for the keywords. Omit to search the title only."
            },
            "seniorityLevels": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "Internship",
                  "Entry level",
                  "Associate",
                  "Mid-Senior level",
                  "Director",
                  "Executive"
                ]
              },
              "minItems": 1,
              "description": "Only alert for these seniority levels. Omit for any level."
            },
            "modalities": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "On-site",
                  "Remote",
                  "Hybrid"
                ]
              },
              "minItems": 1,
              "description": "Only alert for these job modalities. Omit for any."
            },
            "locationTypes": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "remote",
                  "on_site",
                  "hybrid"
                ]
              },
              "minItems": 1,
              "description": "Deprecated. Use modalities instead.",
              "deprecated": true
            },
            "minPostings": {
              "type": [
                "integer",
                "null"
              ],
              "exclusiveMinimum": 0,
              "description": "Only alert if at least this many NEW matching postings are detected in a single check cycle. Omit for 1 (any new match)."
            }
          },
          "required": [
            "type",
            "entityType",
            "keywords"
          ],
          "title": "Job posting with keyword"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "job_posting_in_function"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "jobFunctions": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "Accounting",
                  "Administrative",
                  "Advertising",
                  "Analyst",
                  "Art / Creative",
                  "Business Development",
                  "Community & Social Services",
                  "Consulting",
                  "Customer Service",
                  "Design",
                  "Distribution",
                  "Education",
                  "Engineering",
                  "Entrepreneurship",
                  "Finance",
                  "General Business",
                  "Health Care Provider",
                  "Human Resources",
                  "Information Technology",
                  "Legal",
                  "Management",
                  "Manufacturing",
                  "Marketing",
                  "Military & Protective Services",
                  "Other",
                  "Product Management",
                  "Production",
                  "Program & Product Management",
                  "Project Management",
                  "Public Relations",
                  "Purchasing",
                  "Quality Assurance",
                  "Real Estate",
                  "Research",
                  "Sales",
                  "Science",
                  "Strategy / Planning",
                  "Supply Chain",
                  "Training",
                  "Writing / Editing"
                ]
              },
              "description": "Alert when a job posting is in any of these departments/functions."
            },
            "minPostings": {
              "type": [
                "integer",
                "null"
              ],
              "exclusiveMinimum": 0,
              "description": "Only alert if at least this many NEW matching postings are detected in a single check cycle. Omit for 1 (any new match)."
            }
          },
          "required": [
            "type",
            "entityType",
            "jobFunctions"
          ],
          "title": "Job posting in function"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "news_with_keyword"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "keywords": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Alert when a news article title or summary matches any keyword"
            },
            "sentiment": {
              "type": [
                "string",
                "null"
              ],
              "enum": [
                "positive",
                "negative",
                "neutral",
                null
              ],
              "description": "Only alert for news with this sentiment. Omit for any sentiment."
            }
          },
          "required": [
            "type",
            "entityType",
            "keywords"
          ],
          "title": "News with keyword"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "company_news"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "sentiment": {
              "type": [
                "string",
                "null"
              ],
              "enum": [
                "positive",
                "negative",
                "neutral",
                null
              ],
              "description": "Only alert for news with this sentiment. Omit for any sentiment."
            },
            "minArticles": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "description": "Only alert when at least this many articles are detected in a single check. Useful for filtering noise from single tangential mentions. Omit for any count."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Company news"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "hq_location_changed"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "HQ location changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "company_status_changed"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "toStatuses": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "operating",
                  "acquired",
                  "closed",
                  "ipo",
                  "subsidiary"
                ]
              },
              "minItems": 1,
              "description": "Only alert if new status is one of these. Omit for any status change."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Company status changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "technology_added"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "technologies": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Only alert for these technologies. Omit for any new technology."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Technology added"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "company_posted"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "minReactions": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0,
              "description": "Only alert for posts with at least this many reactions. Omit for any."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Company posted"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "company_posted_with_keyword"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "keywords": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Alert for posts matching these keywords."
            },
            "minReactions": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0,
              "description": "Only alert for posts with at least this many reactions. Omit for any."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Company posted with keyword"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "follower_count_growth"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "minAbsoluteGrowth": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0,
              "description": "Minimum absolute follower increase to trigger. Omit or set to 0 for any increase."
            },
            "minPercentGrowth": {
              "type": [
                "number",
                "null"
              ],
              "exclusiveMinimum": 0,
              "description": "Minimum percent follower increase to trigger. Omit for any increase."
            },
            "minStartingFollowerCount": {
              "type": [
                "integer",
                "null"
              ],
              "exclusiveMinimum": 0,
              "description": "Only alert if the company had at least this many followers before the growth. Omit for any starting count."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Follower count growth"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "company_name_changed"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Company name changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "company_description_changed"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "keywords": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Only alert if new description contains one of these keywords. Omit for any change."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Company description changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "company_went_inactive"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "description": "Fires when a company becomes inactive.",
          "title": "Company went inactive"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "employee_count_milestone"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "milestone": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "description": "The employee count threshold to watch for crossing. Any positive integer is accepted. Equivalent to 'threshold' in headcount_crossed_threshold."
            },
            "direction": {
              "type": "string",
              "enum": [
                "above",
                "below"
              ],
              "description": "Whether to alert when crossing above or below the milestone"
            }
          },
          "required": [
            "type",
            "entityType",
            "milestone",
            "direction"
          ],
          "description": "Fires when the employee count crosses the specified value. Supports any positive integer, not just round milestones. Functionally equivalent to headcount_crossed_threshold.",
          "title": "Employee count milestone"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "new_office_location"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "countries": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "pattern": "^[A-Z]{3}$",
                "minLength": 3,
                "maxLength": 3
              },
              "minItems": 1,
              "description": "ISO 3166-1 alpha-3 country codes (e.g. 'USA', 'GBR', 'DEU'). Only alert for offices in these countries. Omit for any new office."
            },
            "cities": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "City names (e.g. 'San Francisco', 'London', 'Berlin'). Only alert for offices in these cities. Omit for any new office."
            },
            "regions": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Region codes (e.g. 'X-EMEA', 'X-APAC', 'X-EUROPE'). Expands to constituent country codes. Omit for any."
            },
            "states": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "State or province names (e.g. 'California', 'Ontario'). Omit for any."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "New office location"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "company_logo_changed"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Company logo changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "acquired_company"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "minPriceUsd": {
              "type": [
                "number",
                "null"
              ],
              "minimum": 0,
              "description": "Only alert for acquisitions above this price. Omit for any acquisition."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Acquired company"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "new_investor"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "investorNames": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Only alert when a new investor's name matches one of these (exact, case-insensitive). Omit for any new investor."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "New investor"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "recently_hired_with_title"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "titleKeywords": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Title keywords to search for. Fires when the company hires someone whose title matches any keyword."
            },
            "minNewHires": {
              "type": [
                "integer",
                "null"
              ],
              "exclusiveMinimum": 0,
              "description": "Minimum number of NEW hires detected in a single check cycle to trigger the alert. Only counts employees who appeared since the last check. Omit for 1."
            }
          },
          "required": [
            "type",
            "entityType",
            "titleKeywords"
          ],
          "title": "Recently hired with title"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "department_size_threshold"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "department": {
              "type": "string",
              "enum": [
                "Accounting",
                "Administrative",
                "Advertising",
                "Analyst",
                "Art / Creative",
                "Business Development",
                "Community & Social Services",
                "Consulting",
                "Customer Service",
                "Design",
                "Distribution",
                "Education",
                "Engineering",
                "Entrepreneurship",
                "Finance",
                "General Business",
                "Health Care Provider",
                "Human Resources",
                "Information Technology",
                "Legal",
                "Management",
                "Manufacturing",
                "Marketing",
                "Military & Protective Services",
                "Other",
                "Product Management",
                "Production",
                "Program & Product Management",
                "Project Management",
                "Public Relations",
                "Purchasing",
                "Quality Assurance",
                "Real Estate",
                "Research",
                "Sales",
                "Science",
                "Strategy / Planning",
                "Supply Chain",
                "Training",
                "Writing / Editing"
              ],
              "description": "Department to track. Matched against the company's organizational structure."
            },
            "threshold": {
              "type": "integer",
              "exclusiveMinimum": 0,
              "description": "The employee count threshold to watch for crossing"
            },
            "direction": {
              "type": "string",
              "enum": [
                "above",
                "below"
              ],
              "description": "Whether to alert when department size crosses above or below the threshold"
            }
          },
          "required": [
            "type",
            "entityType",
            "department",
            "threshold",
            "direction"
          ],
          "title": "Department size threshold"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "recent_layoffs"
            },
            "entityType": {
              "type": "string",
              "const": "company"
            },
            "minPeopleAffected": {
              "type": [
                "integer",
                "null"
              ],
              "exclusiveMinimum": 0,
              "description": "Only alert if at least this many people were laid off. Omit for any layoff."
            },
            "minPercentAffected": {
              "type": [
                "number",
                "null"
              ],
              "exclusiveMinimum": 0,
              "maximum": 100,
              "description": "Only alert if at least this percentage of the workforce was laid off. Omit for any layoff."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Recent layoffs"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_changed_company"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "toCompanies": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Only alert if they moved TO one of these companies (domains or slugs). Omit for any."
            },
            "fromCompanies": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Only alert if they moved FROM one of these companies. Omit for any."
            },
            "toTitleKeywords": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Only alert if their title at the new company contains one of these keywords."
            },
            "toSeniorityLevels": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "Internship",
                  "Entry level",
                  "Associate",
                  "Mid-Senior level",
                  "Director",
                  "Executive"
                ]
              },
              "minItems": 1,
              "description": "Only alert if their seniority at the new company is one of these levels."
            },
            "toEmploymentTypes": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "Full-time",
                  "Part-time",
                  "Contract",
                  "Internship",
                  "Temporary",
                  "Volunteer"
                ]
              },
              "minItems": 1,
              "description": "Only alert for these employment types at the new company. Omit for any."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Person changed company"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_title_changed"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "titleKeywords": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Only alert if new title contains one of these keywords. Omit for any title change."
            },
            "toSeniority": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "Internship",
                  "Entry level",
                  "Associate",
                  "Mid-Senior level",
                  "Director",
                  "Executive"
                ]
              },
              "minItems": 1,
              "description": "Only alert if the new position's seniority level matches one of these. Omit for any seniority."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Person title changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_stealth_changed"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "direction": {
              "type": "string",
              "enum": [
                "entered",
                "exited",
                "either"
              ],
              "description": "Whether to alert on entering stealth, exiting, or either"
            }
          },
          "required": [
            "type",
            "entityType",
            "direction"
          ],
          "title": "Person stealth changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_open_to_work"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "direction": {
              "type": "string",
              "enum": [
                "started",
                "stopped",
                "either"
              ],
              "description": "Whether to alert when they start or stop signaling open-to-work"
            }
          },
          "required": [
            "type",
            "entityType",
            "direction"
          ],
          "title": "Person open to work"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_is_hiring"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "direction": {
              "type": "string",
              "enum": [
                "started",
                "stopped",
                "either"
              ],
              "description": "Whether to alert when they start or stop signaling is-hiring"
            }
          },
          "required": [
            "type",
            "entityType",
            "direction"
          ],
          "title": "Person is hiring"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_headline_changed"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "keywords": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Only alert if new headline contains one of these keywords. Omit for any change."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Person headline changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_location_changed"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "toCountries": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "pattern": "^[A-Z]{3}$",
                "minLength": 3,
                "maxLength": 3
              },
              "minItems": 1,
              "description": "ISO 3166-1 alpha-3 country codes (e.g. 'USA', 'GBR', 'DEU'). Only alert if moved to one of these countries. Omit for any relocation."
            },
            "fromCountries": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "pattern": "^[A-Z]{3}$",
                "minLength": 3,
                "maxLength": 3
              },
              "minItems": 1,
              "description": "Only alert if they moved FROM one of these countries. Omit for any."
            },
            "regions": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Region codes (e.g. 'X-EMEA', 'X-APAC'). Only alert if destination country is in one of these regions. Omit for any."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Person location changed"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_tag_gained"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "tags": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "student",
                  "attended-top-us-university",
                  "attended-top-global-university",
                  "second-time-founder",
                  "deep-technical-background",
                  "major-tech-company-experience",
                  "fortune-500-executive",
                  "recently-changed-companies",
                  "recently-promoted",
                  "decision-maker",
                  "c-suite",
                  "experienced-executive",
                  "phd",
                  "influencer",
                  "board-member"
                ]
              },
              "minItems": 1,
              "description": "Alert when the person gains any of these system-assigned tags."
            }
          },
          "required": [
            "type",
            "entityType",
            "tags"
          ],
          "title": "Person tag gained"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_posted"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "minReactions": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0,
              "description": "Only alert for posts with at least this many reactions. Omit for any."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Person posted"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_posted_with_keyword"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "keywords": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Alert for posts matching these keywords."
            },
            "minReactions": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 0,
              "description": "Only alert for posts with at least this many reactions. Omit for any."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Person posted with keyword"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
              "description": "Compare against a snapshot from approximately N days ago instead of the most recent prior snapshot. Omit for the default previous-snapshot comparison. Maximum 90 days."
            },
            "isDummy": {
              "type": "boolean",
              "description": "When true, this rule only fires via the fire-dummy endpoint and is skipped during normal pipeline runs."
            },
            "type": {
              "type": "string",
              "const": "person_reacted_to_post"
            },
            "entityType": {
              "type": "string",
              "const": "person"
            },
            "keywords": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "minLength": 1
              },
              "minItems": 1,
              "description": "Only alert for reactions on posts whose content or author name matches these keywords. Omit for any reaction."
            },
            "reactionTypes": {
              "type": [
                "array",
                "null"
              ],
              "items": {
                "type": "string",
                "enum": [
                  "LIKE",
                  "LOVE",
                  "INSIGHTFUL",
                  "CELEBRATE",
                  "SUPPORT",
                  "FUNNY"
                ]
              },
              "minItems": 1,
              "description": "Only alert for these reaction types. Omit for any type."
            }
          },
          "required": [
            "type",
            "entityType"
          ],
          "title": "Person reacted to post"
        },
        {
          "type": "object",
          "properties": {
            "lookbackDays": {
              "type": [
                "integer",
                "null"
              ],
              "minimum": 1,
              "maximum": 90,
          
… _truncated to 65536 chars for ai-docs._
```

## Response — success (JSON Schema)

```json
{
  "type": "object",
  "properties": {
    "output": {
      "type": "object",
      "properties": {
        "signal": {
          "type": "object",
          "properties": {
            "type": {
              "type": "string",
              "description": "Rule type slug (e.g. person_connections_milestone)."
            },
            "summary": {
              "type": "string",
              "description": "Human-readable description of what changed."
            },
            "changeData": {
              "type": "array",
              "items": {
                "type": "object",
                "additionalProperties": {}
              },
              "description": "Structured payload describing what changed."
            },
            "isDummy": {
              "type": "boolean",
              "enum": [
                true
              ]
            }
          },
          "required": [
            "type",
            "summary",
            "changeData",
            "isDummy"
          ]
        }
      },
      "required": [
        "signal"
      ]
    },
    "chargeInfo": {
      "oneOf": [
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-now"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsCharged"
          ],
          "description": "Credits were charged immediately for this operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charging-later"
              ]
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "message"
          ],
          "description": "Credits will be charged after the operation completes"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "charged-for-async-process"
              ]
            },
            "creditsCharged": {
              "type": "number"
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsCharged",
            "message"
          ],
          "description": "Credits that were charged for an asynchronous operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "free"
              ]
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "message"
          ],
          "description": "No credits were charged for this operation"
        },
        {
          "type": "object",
          "properties": {
            "method": {
              "type": "string",
              "enum": [
                "credits-refunded"
              ]
            },
            "creditsRefunded": {
              "type": "number"
            },
            "message": {
              "type": "string"
            },
            "lowCreditAlert": {
              "type": [
                "object",
                "null"
              ],
              "properties": {
                "getMoreCreditsUrl": {
                  "type": "string",
                  "format": "uri",
                  "description": "URL to top up credits or restart billing cycle to get fresh credits."
                },
                "message": {
                  "type": "string",
                  "description": "Human-readable credits warning."
                },
                "availableCredits": {
                  "type": "number",
                  "description": "Number of credits remaining in the current billing period."
                }
              },
              "required": [
                "getMoreCreditsUrl",
                "message",
                "availableCredits"
              ],
              "description": "Contains a link to get more credits, a warning message, and the remaining credit count."
            }
          },
          "required": [
            "method",
            "creditsRefunded",
            "message"
          ],
          "description": "Credits were refunded for this operation"
        }
      ]
    },
    "warnings": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "object",
        "properties": {
          "field": {
            "type": "string",
            "description": "Full path to extraneous field (e.g., 'searchParams.ExtraField')"
          },
          "message": {
            "type": "string",
            "description": "Warning message"
          }
        },
        "required": [
          "field",
          "message"
        ]
      },
      "description": "Warnings about extraneous fields in request"
    },
    "advice": {
      "type": [
        "array",
        "null"
      ],
      "items": {
        "type": "string"
      },
      "description": "Tips, recommendations, and suggestions for using this API effectively."
    }
  },
  "required": [
    "output",
    "chargeInfo"
  ],
  "additionalProperties": false
}
```

---

Canonical JSON: [`https://api.fiber.ai/openapi.json`](https://api.fiber.ai/openapi.json)
Operation index: [`https://api.fiber.ai/ai-docs/index.md`](https://api.fiber.ai/ai-docs/index.md)
