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

# Get Stories for a Nonprofit

> Get impact stories for a single nonprofit by EIN.

Returns human transformation narratives with emotional hooks, quotes, and before/after states extracted from annual reports.



## OpenAPI

````yaml GET /impact/stories/{ein}
openapi: 3.1.0
info:
  title: Giving Compass Insights
  description: >+

    ## Overview


    The Giving Compass Insights API provides access to nonprofit data, impact
    stories, financial information, and AI-powered search capabilities.


    ## Authentication


    All endpoints require an API key passed via the `X-API-Key` header.


    ```

    X-API-Key: your_api_key_here

    ```



    ## Core Capabilities


    ### Nonprofit Search

    Search and filter nonprofits by location, revenue, expenses, cause areas,
    and Charity Navigator ratings.


    ### Impact Data

    Access AI-extracted impact stories and metrics from nonprofit annual
    reports:

    - **Stories**: Human transformation narratives with emotional hooks, quotes,
    and before/after states

    - **Metrics**: Quantitative measures (people served, meals distributed,
    volunteers, etc.)


    ### Feed Data

    Access and filter nonprofit posts (articles, events, videos, job postings)
    from organizations:

    - **Content Types**: Filter by classification (articles, videos, events,
    podcasts, job postings, volunteer opportunities)

    - **Location Filtering**: Filter posts by nonprofit's city, county, state,
    ZIP code, or geographic radius (lat/lng)

    - **Cause Area Filtering**: Filter by NTEE codes to find posts from
    organizations working in specific cause areas


    ### AI Chat

    Natural language search for nonprofits and content. Example queries:

    - `Find articles about clean water`

    - `Find nonprofits in Chicago with revenue over 100k`

    - `Show nonprofits in TX that help the blind`

    - `Nonprofits that are similar to JDRF`

    - `Nonprofits that focus on SDG 5 with revenue between 1M and 5M`

  version: 1.0.0
servers:
  - url: https://api.givingcompass.org/insights
security: []
tags:
  - name: Insights
    description: >-
      Search nonprofits, retrieve financial data, and access AI-powered chat for
      nonprofit discovery.
  - name: Impact
    description: >-
      Access impact stories and metrics extracted from nonprofit annual reports.
      Stories are human transformation narratives with emotional hooks and
      quotes. Metrics are quantitative measures reported by nonprofits.
  - name: Feed
    description: >-
      Access nonprofit posts and content feeds with advanced filtering by
      location, cause area, and content type. Filter posts by organization
      location (city, county, state, ZIP, lat/lng radius) and NTEE codes
  - name: Beta
    description: Beta endpoints - may change without notice.
paths:
  /impact/stories/{ein}:
    get:
      tags:
        - Impact
      summary: Get Stories for a Nonprofit
      description: >-
        Get impact stories for a single nonprofit by EIN.


        Returns human transformation narratives with emotional hooks, quotes,
        and before/after states extracted from annual reports.
      operationId: get_impact_stories_impact_stories__ein__get
      parameters:
        - name: ein
          in: path
          required: true
          schema:
            type: string
            minLength: 9
            maxLength: 9
            pattern: ^\d{9}$
            title: EIN (Employer Identification Number)
            description: The unique 9 digit identifier assigned to businesses by the IRS
          description: The unique 9 digit identifier assigned to businesses by the IRS
        - name: min_power_score
          in: query
          required: false
          schema:
            anyOf:
              - type: number
              - type: 'null'
            title: Min Power Score
        - name: page
          in: query
          required: false
          schema:
            type: integer
            minimum: 1
            description: Page number
            default: 1
            title: Page
          description: Page number
        - name: size
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            description: Page size
            default: 20
            title: Size
          description: Page size
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/PaginatedResponse_InsightsImpactStoryResponse_
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - APIKeyHeader: []
components:
  schemas:
    PaginatedResponse_InsightsImpactStoryResponse_:
      properties:
        items:
          items:
            $ref: '#/components/schemas/InsightsImpactStoryResponse'
          type: array
          title: Items
        total:
          type: integer
          title: Total
        page:
          type: integer
          title: Page
        size:
          type: integer
          title: Size
      type: object
      required:
        - items
        - total
        - page
        - size
      title: PaginatedResponse[InsightsImpactStoryResponse]
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    InsightsImpactStoryResponse:
      properties:
        ein:
          type: string
          title: Ein
        organization_name:
          type: string
          title: Organization Name
        story_title:
          type: string
          title: Story Title
        story_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Story Id
        emotional_hook:
          anyOf:
            - type: string
            - type: 'null'
          title: Emotional Hook
        full_quote:
          anyOf:
            - type: string
            - type: 'null'
          title: Full Quote
        quote_attribution:
          anyOf:
            - type: string
            - type: 'null'
          title: Quote Attribution
        protagonist:
          anyOf:
            - type: string
            - type: 'null'
          title: Protagonist
        before_state:
          anyOf:
            - type: string
            - type: 'null'
          title: Before State
        transformation_moment:
          anyOf:
            - type: string
            - type: 'null'
          title: Transformation Moment
        after_state:
          anyOf:
            - type: string
            - type: 'null'
          title: After State
        time_to_impact:
          anyOf:
            - type: string
            - type: 'null'
          title: Time To Impact
        obstacles_overcome:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Obstacles Overcome
        metrics:
          anyOf:
            - items:
                $ref: '#/components/schemas/EmbeddedImpactMetric'
              type: array
            - type: 'null'
          title: Metrics
        ripple_effect:
          anyOf:
            - type: string
            - type: 'null'
          title: Ripple Effect
        call_to_action:
          anyOf:
            - type: string
            - type: 'null'
          title: Call To Action
        story_category:
          anyOf:
            - type: string
            - type: 'null'
          title: Story Category
        identity_alignment:
          anyOf:
            - type: string
            - type: 'null'
          title: Identity Alignment
        date_extracted:
          anyOf:
            - type: string
            - type: 'null'
          title: Date Extracted
        source_url:
          anyOf:
            - type: string
            - type: 'null'
          title: Source Url
        report_year:
          anyOf:
            - type: integer
            - type: 'null'
          title: Report Year
        power_score:
          anyOf:
            - type: number
            - type: 'null'
          title: Power Score
        confidence_score:
          anyOf:
            - type: number
            - type: 'null'
          title: Confidence Score
      type: object
      required:
        - ein
        - organization_name
        - story_title
      title: InsightsImpactStoryResponse
      description: >-
        Public API response for impact stories (excludes internal fields like
        model_used)
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    EmbeddedImpactMetric:
      properties:
        metric_id:
          type: string
          title: Metric Id
        metric_text:
          type: string
          title: Metric Text
        metric_type:
          type: string
          title: Metric Type
        metric_value:
          type: number
          title: Metric Value
        unit:
          anyOf:
            - type: string
            - type: 'null'
          title: Unit
        geo_impact:
          anyOf:
            - type: string
            - type: 'null'
          title: Geo Impact
        time_aggregation:
          anyOf:
            - type: string
            - type: 'null'
          title: Time Aggregation
      type: object
      required:
        - metric_id
        - metric_text
        - metric_type
        - metric_value
      title: EmbeddedImpactMetric
      description: Minimal metric representation for embedding in impact stories
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: Add a header [X-API-Key] with the token
      in: header
      name: X-API-Key

````