{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/giveradar-com/json-schema/giveradar-com-charity-detail-schema.json",
  "title": "CharityDetail",
  "x-generated": "2026-11-10",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/giveradar-com-openapi.yaml#/components/schemas/CharityDetail",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "format": "uuid"
    },
    "slug": {
      "type": "string"
    },
    "name": {
      "type": "string"
    },
    "country_code": {
      "type": "string"
    },
    "description": {
      "type": [
        "string",
        "null"
      ]
    },
    "category": {
      "type": [
        "string",
        "null"
      ]
    },
    "founded_year": {
      "type": [
        "integer",
        "null"
      ]
    },
    "website": {
      "type": [
        "string",
        "null"
      ]
    },
    "city": {
      "type": [
        "string",
        "null"
      ]
    },
    "state_province": {
      "type": [
        "string",
        "null"
      ]
    },
    "ein": {
      "type": [
        "string",
        "null"
      ]
    },
    "uk_charity_number": {
      "type": [
        "string",
        "null"
      ]
    },
    "registration_number": {
      "type": [
        "string",
        "null"
      ]
    },
    "annual_revenue": {
      "type": [
        "integer",
        "null"
      ]
    },
    "annual_expenses": {
      "type": [
        "integer",
        "null"
      ]
    },
    "program_expenses": {
      "type": [
        "integer",
        "null"
      ]
    },
    "admin_expenses": {
      "type": [
        "integer",
        "null"
      ]
    },
    "fundraising_expenses": {
      "type": [
        "integer",
        "null"
      ]
    },
    "overhead_ratio": {
      "type": [
        "number",
        "null"
      ]
    },
    "program_spend_pct": {
      "type": [
        "number",
        "null"
      ]
    },
    "top_exec_name": {
      "type": [
        "string",
        "null"
      ],
      "description": "Chief executive (CEO, executive director or president) from the latest filing. Name, title and compensation always describe the same person. Pro only."
    },
    "top_exec_title": {
      "type": [
        "string",
        "null"
      ],
      "description": "Title of top_exec_name as filed. Pro only."
    },
    "top_exec_compensation": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Compensation of top_exec_name from the filing organization, in the charity's currency. Pro only."
    },
    "employee_count": {
      "type": [
        "integer",
        "null"
      ]
    },
    "email": {
      "type": [
        "string",
        "null"
      ]
    },
    "phone": {
      "type": [
        "string",
        "null"
      ]
    },
    "address": {
      "type": [
        "string",
        "null"
      ]
    },
    "donation_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "mission_statement": {
      "type": [
        "string",
        "null"
      ]
    },
    "logo_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "twitter_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "facebook_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "instagram_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "linkedin_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "youtube_url": {
      "type": [
        "string",
        "null"
      ]
    },
    "trust_score": {
      "type": [
        "integer",
        "null"
      ]
    },
    "data_completeness": {
      "type": "integer"
    },
    "verified": {
      "type": "boolean"
    },
    "cause_tags": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "operating_countries": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "sdg_goals": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "data_sources": {
      "type": [
        "array",
        "null"
      ],
      "deprecated": true,
      "description": "Deprecated since 2026-10-21, removed in a future release. Source keys of publicly named sources only (internal pipeline tags are no longer included). Use `sources` instead. Pro only.",
      "items": {
        "type": "string"
      }
    },
    "sources": {
      "type": [
        "array",
        "null"
      ],
      "description": "Where each part of the record comes from, the same list as the Sources tab on the charity page. Pro only.",
      "items": {
        "$ref": "#/$defs/Source"
      }
    },
    "last_updated": {
      "type": "string",
      "format": "date-time"
    },
    "recent_filings": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/Filing"
      }
    },
    "officers": {
      "type": "array",
      "description": "One row per person per fiscal year, latest year first, rows without a fiscal year last, at most 50 rows. Pro only (empty on the free tier).",
      "items": {
        "$ref": "#/$defs/Officer"
      }
    },
    "officers_total": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Number of distinct people on record (not rows). Pro only."
    },
    "red_flags": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/RedFlag"
      }
    },
    "review_summary": {
      "$ref": "#/$defs/ReviewSummary"
    }
  },
  "$defs": {
    "Filing": {
      "type": "object",
      "properties": {
        "fiscal_year": {
          "type": "integer"
        },
        "total_revenue": {
          "type": "integer"
        },
        "total_expenses": {
          "type": "integer"
        },
        "program_expenses": {
          "type": [
            "integer",
            "null"
          ]
        },
        "admin_expenses": {
          "type": [
            "integer",
            "null"
          ]
        },
        "fundraising_expenses": {
          "type": [
            "integer",
            "null"
          ]
        },
        "total_assets": {
          "type": [
            "integer",
            "null"
          ]
        },
        "total_liabilities": {
          "type": [
            "integer",
            "null"
          ]
        },
        "source": {
          "type": "string"
        }
      }
    },
    "Officer": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "compensation": {
          "type": [
            "integer",
            "null"
          ]
        },
        "fiscal_year": {
          "type": [
            "integer",
            "null"
          ],
          "description": "Fiscal year of the filing that lists this person; null for older records whose year is unknown."
        },
        "former": {
          "type": "boolean",
          "description": "Listed in that filing as a former officer, director or trustee."
        },
        "source": {
          "type": "string"
        }
      }
    },
    "RedFlag": {
      "type": "object",
      "properties": {
        "flag_type": {
          "type": "string"
        },
        "severity": {
          "type": "string",
          "enum": [
            "warning",
            "critical"
          ]
        },
        "description": {
          "type": "string"
        },
        "active": {
          "type": "boolean"
        }
      }
    },
    "ReviewSummary": {
      "type": "object",
      "properties": {
        "count": {
          "type": "integer"
        },
        "avg_rating": {
          "type": [
            "number",
            "null"
          ]
        }
      }
    },
    "Source": {
      "type": "object",
      "properties": {
        "section": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "url": {
          "type": [
            "string",
            "null"
          ]
        },
        "as_of": {
          "type": [
            "string",
            "null"
          ],
          "format": "date"
        },
        "note": {
          "type": [
            "string",
            "null"
          ]
        }
      }
    }
  }
}