{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/deeprecall-io/json-schema/deeprecall-io-recalls-feed-response-schema.json",
  "title": "RecallsFeedResponse",
  "description": "Response from the /recalls/feed endpoint.\n\nContains a list of recalls with pagination metadata and enhanced info.",
  "x-generated": "2026-11-05",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/deeprecall-io-openapi.json#/components/schemas/RecallsFeedResponse",
  "properties": {
    "success": {
      "type": "boolean",
      "title": "Success",
      "description": "Whether the request was successful",
      "default": true
    },
    "data": {
      "items": {
        "$ref": "#/$defs/RecallItem"
      },
      "type": "array",
      "title": "Data",
      "description": "List of recall items"
    },
    "pagination": {
      "$ref": "#/$defs/PaginationMeta",
      "description": "Pagination metadata"
    },
    "meta": {
      "additionalProperties": true,
      "type": "object",
      "title": "Meta",
      "description": "Additional metadata (filters applied, timing, etc.)"
    },
    "rate_limit": {
      "anyOf": [
        {
          "$ref": "#/$defs/RateLimitInfo"
        },
        {
          "type": "null"
        }
      ],
      "description": "Rate limit and usage information"
    },
    "data_sources": {
      "anyOf": [
        {
          "$ref": "#/$defs/DataSourceInfo"
        },
        {
          "type": "null"
        }
      ],
      "description": "Data source authorization information"
    }
  },
  "type": "object",
  "required": [
    "data",
    "pagination"
  ],
  "$defs": {
    "DataSourceInfo": {
      "properties": {
        "available": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Available",
          "description": "Data sources available to the user"
        },
        "requested": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Requested",
          "description": "Data sources requested in this query"
        },
        "filtered": {
          "items": {
            "type": "string"
          },
          "type": "array",
          "title": "Filtered",
          "description": "Data sources actually used (authorized subset)"
        }
      },
      "type": "object",
      "required": [
        "available",
        "requested",
        "filtered"
      ],
      "title": "DataSourceInfo",
      "description": "Information about data sources"
    },
    "PaginationMeta": {
      "properties": {
        "total_count": {
          "type": "integer",
          "title": "Total Count",
          "description": "Total number of items matching the query"
        },
        "returned_count": {
          "type": "integer",
          "title": "Returned Count",
          "description": "Number of items returned in this response"
        },
        "limit": {
          "type": "integer",
          "title": "Limit",
          "description": "Requested page size"
        },
        "has_more": {
          "type": "boolean",
          "title": "Has More",
          "description": "Whether there are more items available"
        },
        "next_cursor": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Next Cursor",
          "description": "Cursor to fetch the next page. Null if no more pages."
        }
      },
      "type": "object",
      "required": [
        "total_count",
        "returned_count",
        "limit",
        "has_more"
      ],
      "title": "PaginationMeta",
      "description": "Pagination metadata included in list responses"
    },
    "RateLimitInfo": {
      "properties": {
        "limits": {
          "additionalProperties": {
            "type": "integer"
          },
          "type": "object",
          "title": "Limits",
          "description": "Rate limits (per_minute, per_hour, per_day)"
        },
        "remaining_credits": {
          "type": "integer",
          "title": "Remaining Credits",
          "description": "Remaining API credits this month"
        },
        "monthly_quota": {
          "anyOf": [
            {
              "type": "integer"
            },
            {
              "type": "null"
            }
          ],
          "title": "Monthly Quota",
          "description": "Monthly request quota (null if unlimited)"
        },
        "monthly_usage": {
          "type": "integer",
          "title": "Monthly Usage",
          "description": "Requests used this month"
        }
      },
      "type": "object",
      "required": [
        "limits",
        "remaining_credits",
        "monthly_usage"
      ],
      "title": "RateLimitInfo",
      "description": "Rate limit information for the user"
    },
    "RecallItem": {
      "properties": {
        "source_case_id": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Case Id",
          "description": "Original case ID from source"
        },
        "data_source": {
          "type": "string",
          "title": "Data Source",
          "description": "Data source (e.g., safety_gate_eu)"
        },
        "alert_title": {
          "type": "string",
          "title": "Alert Title",
          "description": "Alert title/headline"
        },
        "alert_summary": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Alert Summary",
          "description": "Summary of the alert"
        },
        "alert_status": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Alert Status",
          "description": "Current status (active, closed)"
        },
        "risk_severity": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Risk Severity",
          "description": "Severity level (high, serious, etc.)"
        },
        "risk_types": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Risk Types",
          "description": "Types of risks identified"
        },
        "hazard_description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Hazard Description",
          "description": "Description of hazard"
        },
        "product_name": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Product Name",
          "description": "Product name"
        },
        "product_brand": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Product Brand",
          "description": "Brand name"
        },
        "product_category": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Product Category",
          "description": "Product category"
        },
        "product_description": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Product Description",
          "description": "Product description"
        },
        "product_model_numbers": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Product Model Numbers",
          "description": "Model numbers"
        },
        "images": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Images",
          "description": "Product image URLs"
        },
        "country_of_origin": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Country Of Origin",
          "description": "Country of origin"
        },
        "geo_jurisdictions": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Geo Jurisdictions",
          "description": "Affected jurisdictions"
        },
        "measure_types": {
          "anyOf": [
            {
              "items": {
                "type": "string"
              },
              "type": "array"
            },
            {
              "type": "null"
            }
          ],
          "title": "Measure Types",
          "description": "Types of measures taken"
        },
        "source_url": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Source Url",
          "description": "Original source URL"
        },
        "notifying_authority": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Notifying Authority",
          "description": "Authority that issued notice"
        },
        "published_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Published At",
          "description": "Original publication date"
        },
        "created_at": {
          "type": "string",
          "title": "Created At",
          "description": "When added to DeepRecall database"
        },
        "updated_at": {
          "anyOf": [
            {
              "type": "string"
            },
            {
              "type": "null"
            }
          ],
          "title": "Updated At",
          "description": "Last update timestamp"
        }
      },
      "type": "object",
      "required": [
        "data_source",
        "alert_title",
        "created_at"
      ],
      "title": "RecallItem",
      "description": "A single recall item from the feed.\n\nRepresents a recalled product with all relevant details."
    }
  }
}