CharitySense Profiles API

Canonical overlay profile and filing resources.

Operations 9

GET /api/v2/charity/{ein}/page Get the bounded first-paint profile payload #
GET /api/v2/charity/{ein}/brand-icon Read the nonprofit icon bytes from the canonical website-enrichment record #
GET /api/v2/charity/{ein}/sections/{SectionId} Get one section advertised by the page manifest #
GET /api/v2/charity/{ein}/filings List filing metadata for one form context #
GET /api/v2/charity/{ein}/money-network Page through exact latest-filing counterparties #
GET /api/v2/charity/{ein}/awards Page through every federal award this organization holds #
GET /api/v2/charity/{ein}/subawards Page through subawards received, with their prime awards #
GET /api/v2/charity/{ein}/grantees List the organizations this one has funded #
GET /api/v2/charity/{ein}/funders List the organizations that have funded this one #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/charitysense-com-profiles-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

charitysense-com-profiles-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CharitySense Profiles API
  version: 3.0.0
  description: Canonical CharitySense API for nonprofit research compiled from the canonical research overlay.
  contact:
    name: CharitySense
    email: mazhar@charitysense.com
    url: https://data.charitysense.com/contact
servers:
- url: https://data.charitysense.com
security: []
tags:
- name: Profiles
  description: Canonical overlay profile and filing resources.
paths:
  /api/v2/charity/{ein}/page:
    get:
      tags:
      - Profiles
      operationId: getCharityPage
      summary: Get the bounded first-paint profile payload
      parameters:
      - $ref: '#/components/parameters/Ein'
      - $ref: '#/components/parameters/Form'
      - $ref: '#/components/parameters/Year'
      responses:
        '200':
          description: Selected form context, hero, live verdict, and section manifest.
          headers:
            ETag:
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CharityPage'
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /api/v2/charity/{ein}/brand-icon:
    get:
      tags:
      - Profiles
      operationId: getCharityBrandIcon
      summary: Read the nonprofit icon bytes from the canonical website-enrichment record
      parameters:
      - $ref: '#/components/parameters/Ein'
      security:
      - BearerAuth: []
      - ApiKeyAuth: []
      responses:
        '200':
          description: A bounded raster icon served from the canonical database record.
          headers:
            ETag:
              schema:
                type: string
          content:
            image/avif: {}
            image/gif: {}
            image/jpeg: {}
            image/png: {}
            image/webp: {}
            image/x-icon: {}
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /api/v2/charity/{ein}/sections/{SectionId}:
    get:
      tags:
      - Profiles
      operationId: getCharitySection
      summary: Get one section advertised by the page manifest
      parameters:
      - $ref: '#/components/parameters/Ein'
      - name: SectionId
        in: path
        required: true
        description: Section Id returned by CharityPage.Sections.
        schema:
          type: string
      - $ref: '#/components/parameters/Form'
      - $ref: '#/components/parameters/Year'
      - $ref: '#/components/parameters/OpaqueCursor'
      - $ref: '#/components/parameters/SectionLimit'
      - $ref: '#/components/parameters/EvidenceRef'
      responses:
        '200':
          description: Section data with canonical evidence references.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CharitySection'
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /api/v2/charity/{ein}/filings:
    get:
      tags:
      - Profiles
      operationId: getCharityFilings
      summary: List filing metadata for one form context
      parameters:
      - $ref: '#/components/parameters/Ein'
      - $ref: '#/components/parameters/Form'
      - $ref: '#/components/parameters/OpaqueCursor'
      - name: Limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 100
          default: 25
      responses:
        '200':
          description: Filing metadata and an optional continuation cursor.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CharityFilings'
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
  /api/v2/charity/{ein}/money-network:
    get:
      tags:
      - Profiles
      operationId: getCharityMoneyNetwork
      summary: Page through exact latest-filing counterparties
      parameters:
      - $ref: '#/components/parameters/Ein'
      - name: Scope
        in: query
        description: The currently supported graph scope. Historical graph retrieval is not available.
        schema:
          type: string
          enum:
          - Latest
          default: Latest
      - name: Cursor
        in: query
        description: Opaque graph document cursor returned by NextCursor.
        schema:
          type: string
      - name: Direction
        in: query
        description: Optional direction relative to the requested EIN.
        schema:
          type: string
          enum:
          - Incoming
          - Outgoing
      - $ref: '#/components/parameters/SectionLimit'
      security:
      - BearerAuth: []
      - ApiKeyAuth: []
      responses:
        '200':
          description: Directed counterparty aggregates with graph evidence.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MoneyNetwork'
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /api/v2/charity/{ein}/awards:
    get:
      tags:
      - Profiles
      operationId: getCharityAwards
      summary: Page through every federal award this organization holds
      parameters:
      - $ref: '#/components/parameters/Ein'
      - name: Cursor
        in: query
        description: Row cursor returned by NextCursor.
        schema:
          type: string
      - $ref: '#/components/parameters/SectionLimit'
      security:
      - BearerAuth: []
      - ApiKeyAuth: []
      responses:
        '200':
          description: Federal awards with purpose, agencies, assistance listing, and place of performance.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AwardList'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /api/v2/charity/{ein}/subawards:
    get:
      tags:
      - Profiles
      operationId: getCharitySubawards
      summary: Page through subawards received, with their prime awards
      parameters:
      - $ref: '#/components/parameters/Ein'
      - name: Cursor
        in: query
        description: Row cursor returned by NextCursor.
        schema:
          type: string
      - $ref: '#/components/parameters/SectionLimit'
      security:
      - BearerAuth: []
      - ApiKeyAuth: []
      responses:
        '200':
          description: Subawards with the prime award and prime recipient behind each.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubawardList'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /api/v2/charity/{ein}/grantees:
    get:
      tags:
      - Profiles
      operationId: getCharityGrantees
      summary: List the organizations this one has funded
      parameters:
      - $ref: '#/components/parameters/Ein'
      - name: Limit
        in: query
        schema:
          type: integer
          minimum: 1
          maximum: 200
          default: 50
      - name: MinYear
        in: query
        schema:
          type: integer
      - name: MinAmount
        in: query
        description: Only count grants at or above this amount.
        schema:
          type: number
      - name: AllCategories
        in: query
        schema:
          type: boolean
          default: false
      security:
      - BearerAuth: []
      - ApiKeyAuth: []
      responses:
        '200':
          description: Recipients ranked by total amount granted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GranteeList'
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /api/v2/charity/{ein}/funders:
    get:
      tags:
      - Profiles
      operationId: getCharityFunders
      summary: List the organizations that have funded this one
      parameters:
      - $ref: '#/components/parameters/Ein'
      - name: Limit
        in: query
        description: Maximum funders to return, largest by amount first.
        schema:
          type: integer
          minimum: 1
          maximum: 200
          default: 50
      - name: MinYear
        in: query
        description: Only count grants filed for this tax year or later.
        schema:
          type: integer
      - name: AllCategories
        in: query
        description: Include non-grant filed money flows alongside grants paid and Schedule I.
        schema:
          type: boolean
          default: false
      security:
      - BearerAuth: []
      - ApiKeyAuth: []
      responses:
        '200':
          description: Funders ranked by total amount granted to this organization.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FunderList'
        '404':
          $ref: '#/components/responses/ErrorResponse'
        '422':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
components:
  parameters:
    Year:
      name: Year
      in: query
      description: Select a filing year. Defaults to the latest filing in the selected form context.
      schema:
        type: integer
    OpaqueCursor:
      name: Cursor
      in: query
      description: Opaque continuation value returned by NextCursor.
      schema:
        type: string
    Ein:
      name: ein
      in: path
      required: true
      description: Nine-digit Employer Identification Number.
      schema:
        type: integer
        minimum: 10000000
        maximum: 999999999
    SectionLimit:
      name: Limit
      in: query
      schema:
        type: integer
        minimum: 1
        maximum: 200
        default: 50
    EvidenceRef:
      name: EvidenceRef
      in: query
      description: 'Exact EvidenceRef returned by a page or section response. Use it when retrieving an evidence-targeted historical filing or schedule row.

        '
      schema:
        type: string
    Form:
      name: Form
      in: query
      description: Select an available form context. Defaults to the profile's primary form.
      schema:
        type: string
        enum:
        - '990'
        - 990EZ
        - 990N
        - 990PF
        - 990T
  schemas:
    Funder:
      type: object
      required:
      - EIN
      properties:
        EIN:
          type: integer
        Name:
          type: string
        Location:
          type: string
        PrimaryForm:
          type: string
        EntityType:
          type: string
        ProfileAvailable:
          type: boolean
          description: Whether a profile exists to open, read from the overlay rather than the filing requirement.
        Amount:
          type: number
        GrantCount:
          type: integer
        RecipientCount:
          type: integer
          description: How many of the requested organizations this funder reaches. Cohort responses only.
        EarliestYear:
          type: integer
        LatestYear:
          type: integer
        Categories:
          type: array
          items:
            type: string
      additionalProperties: false
    ScheduleIndexItem:
      type: object
      required:
      - Name
      - EvidenceRef
      properties:
        Name:
          type: string
        EvidenceRef:
          type: string
      additionalProperties: false
    FinancialTrend:
      type: object
      required:
      - Revenue
      - Expense
      - Assets
      - Liabilities
      properties:
        Revenue:
          type: array
          items:
            $ref: '#/components/schemas/FinancialTrendPoint'
        Expense:
          type: array
          items:
            $ref: '#/components/schemas/FinancialTrendPoint'
        Assets:
          type: array
          items:
            $ref: '#/components/schemas/FinancialTrendPoint'
        Liabilities:
          type: array
          items:
            $ref: '#/components/schemas/FinancialTrendPoint'
      additionalProperties: false
    RelationshipItem:
      type: object
      required:
      - Organization
      - Roles
      - RelationshipType
      - Confidences
      - Evidence
      properties:
        Organization:
          type: object
          additionalProperties: true
        Roles:
          type: array
          minItems: 1
          uniqueItems: true
          items:
            type: string
            enum:
            - Source
            - Target
        RelationshipType:
          type: string
        Confidences:
          type: array
          minItems: 1
          uniqueItems: true
          items:
            type: string
            enum:
            - Authoritative
            - Strong
        Evidence:
          type: array
          minItems: 1
          items:
            type: object
            additionalProperties: true
      additionalProperties: false
    AwardList:
      type: object
      required:
      - EIN
      - Awards
      properties:
        EIN:
          type: integer
        Awards:
          type: array
          items:
            type: object
            additionalProperties: true
        AwardCount:
          type: integer
        AttributionWarnings:
          type: integer
          description: Awards on this page whose filed recipient name matches no known name for the organization. Awards are attributed through a UEI-to-EIN mapping derived from the Federal Audit Clearinghouse, and one bad row there can attach another entity's award history to an unrelated EIN.
        NextCursor:
          type: string
      additionalProperties: false
    MoneyFlowData:
      type: object
      required:
      - FinancialTrend
      properties:
        Revenues:
          type: object
          additionalProperties: true
        Expenses:
          type: object
          additionalProperties: true
        Assets:
          type: object
          additionalProperties: true
        Liabilities:
          type: object
          additionalProperties: true
        FundBalance:
          type: object
          additionalProperties: true
        FinancialTrend:
          $ref: '#/components/schemas/FinancialTrend'
      additionalProperties: false
    Error:
      type: object
      required:
      - detail
      properties:
        detail:
          oneOf:
          - type: string
          - type: object
            properties:
              ErrorCode:
                type: string
              Message:
                type: string
            additionalProperties: true
          - type: array
            description: FastAPI request-validation errors.
            items:
              type: object
              additionalProperties: true
      additionalProperties: false
    FunderList:
      type: object
      required:
      - EIN
      - Funders
      properties:
        EIN:
          type: integer
        Funders:
          type: array
          items:
            $ref: '#/components/schemas/Funder'
        FunderCount:
          type: integer
          description: Distinct counterparties across the whole match, not just the returned page.
        Truncated:
          type: boolean
          description: True when Limit held back some of them.
        TotalAmount:
          type: number
      additionalProperties: false
    OperatingModelModifier:
      type: object
      required:
      - Key
      - Label
      - Summary
      - EvidenceRefs
      properties:
        Key:
          type: string
        Label:
          type: string
        Value:
          type: number
        Summary:
          type: string
        EvidenceRefs:
          type: array
          items:
            type: string
      additionalProperties: false
    FinancialTrendPoint:
      type: object
      required:
      - Year
      properties:
        Year:
          type: integer
        Value:
          type: number
        EvidenceRef:
          type: string
          description: Exact Forms.<Form>.Latest/Filings[n] canonical value reference. Omitted for a year gap.
      additionalProperties: false
    CharityPage:
      type: object
      required:
      - Context
      - Hero
      - Verdict
      - Sections
      properties:
        Context:
          type: object
          required:
          - SelectedForm
          - SelectedYear
          - PrimaryForm
          - AvailableForms
          properties:
            SelectedForm:
              type: string
              enum:
              - '990'
              - 990EZ
              - 990N
              - 990PF
              - 990T
            SelectedYear:
              type: integer
            PrimaryForm:
              type: string
            AvailableForms:
              type: array
              items:
                type: object
                required:
                - Form
                properties:
                  Form:
                    type: string
                  LatestYear:
                    type: integer
                  Primary:
                    type: boolean
                additionalProperties: false
            FilingRange:
              type: object
              properties:
                FirstYear:
                  type: integer
                LatestYear:
                  type: integer
              additionalProperties: false
          additionalProperties: true
        Hero:
          type: object
          required:
          - EIN
          - Name
          - Form
          - Year
          - Enrichment
          - CTA
          - EvidenceRefs
          properties:
            EIN:
              type: string
            Name:
              type: string
            LegalName:
              type: string
              description: Filed legal name when it is available from the compiled presentation contract.
            Form:
              type: string
            Year:
              type: integer
            Location:
              type: object
              properties:
                City:
                  type: string
                State:
                  type: string
                Country:
                  type: string
              additionalProperties: false
            Website:
              type: string
              description: Selected official website from canonical presentation sources.
            Phone:
              type: string
              description: Selected organization phone from canonical presentation sources.
            Mission:
              type: string
              description: The selected mission statement for the organization.
            Description:
              type: string
              description: The selected general overview from canonical presentation sources.
            CurrentYearActivity:
              type: string
              description: The primary program accomplishment reported in the selected filing year.
            Financials:
              type: object
              description: Selected-filing amounts used for concise profile identity and search metadata.
              properties:
                Revenue:
                  type: number
                Expense:
                  type: number
                Assets:
                  type: number
                Liabilities:
                  type: number
              additionalProperties: false
            IRSRecognitionDate:
              oneOf:
              - type: string
              - type: number
            Chips:
              type: array
              items:
                type: object
                required:
                - Label
                - EvidenceRef
                properties:
                  Kind:
                    type: string
                    enum:
                    - Sector
                    - Affiliation
                    - Context
                  Label:
                    type: string
                  EvidenceRef:
                    type: string
                additionalProperties: false
            BrandAssets:
              type: object
              description: Canonical website-enrichment brand-assets presentation block.
              additionalProperties: true
            Contact:
              type: object
              description: Canonical website-enrichment contact block, including SocialLinks when captured by enrichment.
              properties:
                SocialLinks:
                  type: array
                  items:
                    type: object
                    additionalProperties: true
              additionalProperties: true
            Enrichment:
              type: object
              description: Organization-level website-evidence status and capture freshness.
              required:
              - State
              properties:
                State:
                  type: string
                  enum:
                  - Enriched
                  - NotEnriched
                CapturedAt:
                  type: string
                  format: date-time
                  description: Capture date for applicable organization-level website-enrichment evidence.
              additionalProperties: false
            OperatingModel:
              $ref: '#/components/schemas/OperatingModel'
            CTA:
              type: string
              enum:
              - EnhanceProfile
              - RequestDeeperDiligence
            EvidenceRefs:
              type: object
              additionalProperties:
                $ref: '#/components/schemas/EvidenceRef'
          additionalProperties: true
        Verdict:
          type: object
          required:
          - State
          - PolicyVersion
          - BottomLine
          properties:
            State:
              type: string
              enum:
              - Scored
              - NotEnoughData
              - NotRatedHere
            Score:
              type: number
            Verdict:
              type: string
            PolicyVersion:
              type: string
            BottomLine:
              type: string
          additionalProperties: true
        Sections:
          type: array
          items:
            $ref: '#/components/schemas/SectionManifestItem'
        SEO:
          type: object
          description: Published runtime data_seo metadata for this entity.
          additionalProperties: true
        CompiledAt: {}
        SchemaVersion: {}
      additionalProperties: false
    SectionManifestItem:
      type: object
      required:
      - Id
      - Kind
      - Title
      - Summary
      - SourceTags
      properties:
        Id:
          type: string
        Kind:
          type: string
          enum:
          - Band
          - Evidence
        Title:
          type: string
        Summary:
          type: string
        SourceTags:
          type: array
          items:
            type: string
        Form:
          type: string
        Year:
          type: integer
        Ref:
          type: string
        Pageable:
          type: boolean
        Status:
          type: object
          required:
          - Label
          - Tone
          properties:
            Label:
              type: string
            Tone:
              type: string
              enum:
              - Good
              - Caution
              - Concern
              - Neutral
            Score:
              type: number
          additionalProperties: false
      additionalProperties: true
    RelatedOrganizationsData:
      type: object
      required:
      - Relationships
      properties:
        Relationships:
          type: array
          items:
            $ref: '#/components/schemas/RelationshipItem'
      additionalProperties: false
    MoneyNetwork:
      type: object
      required:
      - Scope
      properties:
        Scope:
          type: string
          enum:
          - Latest
        Edges:
          type: array
          items:
            type: object
            additionalProperties: true
        NextCursor:
          type: string
      additionalProperties: false
    OperatingModelClassification:
      type: object
      required:
      - Key
      - Label
      - Summary
      - EvidenceRefs
      properties:
        Key:
          type: string
        Label:
          type: string
        PrimaryShare:
          type: number
        Summary:
          type: string
        EvidenceRefs:
          type: array
          items:
            type: string
      additionalProperties: false
    SubawardList:
      type: object
      required:
      - EIN
      - Subawards
      properties:
        EIN:
          type: integer
        Subawards:
          type: array
          items:
            type: object
            additionalProperties: true
        SubawardCount:
          type: integer
        AttributionWarnings:
          type: integer
          description: Subawards whose filed recipient name matches no known name for the organization.
        Truncated:
          type: boolean
        NextCursor:
          type: string
      additionalProperties: false
    EvidenceRef:
      type: object
      required:
      - Ref
      properties:
        Collection:
          type: string
        Form:
          type: string
        TaxYear:
          type: integer
        Ref:
          type: string
        SourcePath:
          type: string
        SourceDocument:
          type: string
        Citation:
          type: string
      additionalProperties: true
    OperatingModel:
      type: object
      description: Display operating model sourced from the selected full-return context when available.
      required:
      - Form
      - Resource
      - Delivery
      properties:
        Form:
          type: string
          enum:
          - '990'
          - 990EZ
          - 990PF
        TaxYear:
          type: integer
        Resource:
          $ref: '#/components/schemas/OperatingModelClassification'
        Delivery:
          $ref: '#/components/schemas/OperatingModelClassification'
        Modifiers:
          type: array
          items:
            $ref: '#/components/schemas/OperatingModelModifier'
      additionalProperties: false
    CharityFilings:
      type: object
      required:
      - Form
      - Filings
      properties:
        Form:
          type: string
        Filings:
          type: array
          items:
            type: object
            properties:
              Year:
                type: integer
              TaxPeriodEnd: {}
              Validation: {}
              Source:
                type: object
                additionalProperties: true
            additionalProperties: false
        NextCursor:
          type: string
      additionalProperties: false
    GranteeList:
      type: object
      required:
      - EIN
      - Grantees
      properties:
        EIN:
          type: integer
        Grantees:
          type: array
          items:
            $ref: '#/components/schemas/Funder'
        GranteeCount:
          type: integer
          description: Distinct counterparties across the whole match, not just the returned page.
        Truncated:
          type: boolean
          description: True when Limit held back some of them.
        TotalAmount:
          type: number
      additionalProperties: false
    CharitySection:
      type: object
      required:
      - Section
      - Data
      - EvidenceRefs
      properties:
        Section:
          $ref: '#/components/schemas/SectionManifestItem'
        Data:
          description: Canonical section data. MoneyFlow responses conform to MoneyFlowData.
          anyOf:
          - $ref: '#/components/schemas/MoneyFlowData'
          - $ref: '#/components/schemas/RelatedOrganizationsData'
          - type: object
            additionalProperties: true
          - type: array
            items: {}
        EvidenceRefs:
          type: array
          items:
            $ref: '#/components/schemas/EvidenceRef'
        ScheduleIndex:
          type: array
          description: Stable lightweight index for a Schedules response; complete indexed schedules remain in paged Data.
          items:
            $ref: '#/components/schemas/ScheduleIndexItem'
        NextCursor:
          type: string
      additionalProperties: false
  responses:
    ErrorResponse:
      description: Request error in detail, with a stable ErrorCode when available.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Error'
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
    ApiKeyAuth:
      type: apiKey
      in: header
      name: X-CharitySense-API-Key
externalDocs:
  description: Agent integration guide and recommended workflow.
  url: https://data.charitysense.com/agents