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

# List public frontend entities

> Returns visible public entities for a program or program tree, with optional search, filter, sort, and pagination controls. The controller creates or refreshes a Redis frontend session, marks the session as paginated, applies program setup and settings checks, and returns processed recipient cards plus public display settings. This endpoint is public and uses the optional session id for cart/login state rather than bearer authentication.



## OpenAPI

````yaml get /frontend/entities/all/{client_id}/{program_id}/{session_id}
openapi: 3.0.0
info:
  title: Gratona API
  description: >-
    REST API for the Gratona fundraising platform, including donor, donation,
    sponsorship, program, event, and integration workflows. Endpoints are
    organized by tag. Most endpoints require either a Passport bearer token or
    an issued API key — see the Security Schemes section.
  contact:
    name: Gratona Engineering
    url: https://gratona.com
    email: devs@gratona.com
  version: 1.0.0
servers:
  - url: https://api.gratona.com/v1
    description: Server Version 1.0.0
security: []
tags:
  - name: Auth
    description: >-
      Login, signup, logout, password reset, and email verification for admin
      users and donors.
  - name: Donors
    description: >-
      Donor records: CRUD, profile fields, household linkage, search, filters,
      merge, and duplicate detection.
  - name: Donations
    description: >-
      Individual donation records, recurring commitments, soft credits, refunds,
      designations, and exports.
  - name: Sponsorships
    description: >-
      Donor-to-entity sponsorship relationships, lifecycle transitions, and
      sponsorship-specific filters.
  - name: Entities
    description: >-
      Recipient records (children, families, projects, animals, etc.), their
      status, and entity-level fields.
  - name: Programs
    description: >-
      Program / campaign configuration: hierarchy, settings, and program-level
      metadata.
  - name: Forms
    description: >-
      Custom form builder (HysForm), form fields, standardized donor fields, and
      field migrations.
  - name: Trips
    description: >-
      Mission-trip management: trips, participants, budgets, tasks,
      e-signatures, fundraising milestones, and background checks.
  - name: Communications
    description: >-
      Email templates, SMS, newsletters, donor email manager, and per-donor
      notes.
  - name: Payments
    description: >-
      Payment-gateway management (Stripe, PayPal, Flutterwave, QuickBooks).
      Excludes inbound webhooks — see the Webhooks tag.
  - name: Reports
    description: Dashboards, analytics, scheduled reports, and exports.
  - name: Admin
    description: >-
      Client-account administration: users, groups/permissions, settings,
      integrations, and account lifecycle.
  - name: Donor Portal
    description: >-
      Endpoints consumed by the donor-facing portal (donor login, dashboard,
      donation history, messages).
  - name: Recipient Portal
    description: Endpoints consumed by the recipient-facing portal.
  - name: Public
    description: >-
      Unauthenticated public endpoints: donor signup, public trip pages,
      peer-to-peer campaigns, public checkout.
  - name: Webhooks
    description: >-
      Inbound webhooks from third parties (Stripe, PayPal, Flutterwave, Checkr,
      DropboxSign). Annotated minimally for reference; payload shapes are owned
      by the upstream provider.
  - name: Client
    description: Client
  - name: Email Settings
    description: Email Settings
  - name: Admin Dashboard
    description: Admin Dashboard
  - name: Historical Archived Updates
    description: Historical Archived Updates
  - name: Team & access
    description: Team & access
  - name: Files
    description: Files
  - name: Wrapped
    description: Wrapped
  - name: Donor SignUp
    description: Donor SignUp
  - name: Frontend
    description: Frontend
  - name: User
    description: User
paths:
  /frontend/entities/all/{client_id}/{program_id}/{session_id}:
    get:
      tags:
        - Public
      summary: List public frontend entities
      description: >-
        Returns visible public entities for a program or program tree, with
        optional search, filter, sort, and pagination controls. The controller
        creates or refreshes a Redis frontend session, marks the session as
        paginated, applies program setup and settings checks, and returns
        processed recipient cards plus public display settings. This endpoint is
        public and uses the optional session id for cart/login state rather than
        bearer authentication.
      operationId: viewAllFrontendEntities
      parameters:
        - name: client_id
          in: path
          description: Client id that owns the program and visible entities.
          required: true
          schema:
            type: integer
          example: 207
        - name: program_id
          in: path
          description: >-
            Program id or `none`. The controller expands program trees and
            returns 404 when the route value is `none`.
          required: true
          schema:
            type: string
          example: 11
        - name: session_id
          in: path
          description: >-
            Optional Redis frontend session id used for pagination, login state,
            cart messages, and Meta Pixel context. A new session is created when
            missing or expired.
          required: true
          schema:
            type: string
          example: 7f2c8f8d64b8a1d4a9e2
        - name: pageSize
          in: query
          description: >-
            Requested page size for paginated program and search responses.
            Invalid or non-positive values default to 20.
          required: false
          schema:
            type: integer
            minimum: 1
          example: 20
        - name: pageIndex
          in: query
          description: >-
            Requested page number for paginated responses. Invalid or
            non-positive values default to 1.
          required: false
          schema:
            type: integer
            minimum: 1
          example: 1
        - name: search
          in: query
          description: >-
            Search term used by Scout/Meilisearch and title-field fallback
            matching.
          required: false
          schema:
            type: string
          example: Jane
        - name: eventKey
          in: query
          description: >-
            Legacy interaction mode. `filter` applies field filters from `key`
            and `name`; `sort` applies ordering from `key` and `order`.
          required: false
          schema:
            type: string
            enum:
              - filter
              - sort
          example: filter
        - name: key
          in: query
          description: Field key or array of field keys used for filter or sort operations.
          required: false
          schema:
            type: string
          example: country
        - name: name
          in: query
          description: >-
            Filter value or array of values aligned with `key` when
            `eventKey=filter`.
          required: false
          schema:
            type: string
          example: Uganda
        - name: order
          in: query
          description: Sort order used when `eventKey=sort`.
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
          example: asc
        - name: selectedProgramId
          in: query
          description: >-
            Optional positive program id selected within the requested program
            tree.
          required: false
          schema:
            type: integer
            minimum: 1
          example: 11
        - name: sortKey
          in: query
          description: Public sort field. Supply together with sortOrder.
          required: false
          schema:
            type: string
          example: created_at
        - name: sortOrder
          in: query
          description: Sort direction; must be supplied together with sortKey.
          required: false
          schema:
            type: string
            enum:
              - asc
              - desc
          example: asc
        - name: fieldFilters
          in: query
          description: Map of public field keys to filter values. Values must be scalar.
          required: false
          style: deepObject
          explode: true
          schema:
            type: object
            additionalProperties:
              type: string
          example:
            country: Uganda
        - name: filterGroups
          in: query
          description: >-
            Structured public filter groups, including age filters. Must be a
            list.
          required: false
          schema:
            type: array
            items:
              type: object
          example: []
        - name: includeTotal
          in: query
          description: Whether pagination computes a total row count. Defaults to true.
          required: false
          schema:
            type: boolean
            default: true
          example: true
        - name: summary
          in: query
          description: Returns program display metadata without recipient cards when true.
          required: false
          schema:
            type: boolean
            default: false
          example: false
      responses:
        '200':
          description: Public entity listing payload.
          content:
            application/json:
              schema:
                properties:
                  data:
                    properties:
                      client_id:
                        type: integer
                        example: 207
                      program_id:
                        type: integer
                        example: 11
                      program_name:
                        type: string
                        example: Sponsorship Program
                      processed:
                        description: >-
                          Processed public recipient cards built from entity
                          records, title fields, profile uploads, and settings.
                        type: array
                        items:
                          type: object
                      first_thumb:
                        type: string
                        example: https://s3-us-west-1.amazonaws.com/hys/thumb.jpg
                        nullable: true
                      client:
                        $ref: '#/components/schemas/Client'
                      sort_fields:
                        type: array
                        items:
                          type: object
                      filter_fields:
                        type: array
                        items:
                          type: object
                      text_front:
                        type: string
                        nullable: true
                      sorting:
                        type: string
                        nullable: true
                      filtering:
                        type: string
                        nullable: true
                      program_names:
                        type: array
                        items:
                          type: string
                      disable_program_link:
                        type: string
                        nullable: true
                      display_sponsorship_amount:
                        type: string
                        nullable: true
                      sponsorship_amount:
                        type: number
                        format: float
                        nullable: true
                      currency_symbol:
                        type: string
                        example: $
                      height:
                        type: integer
                        example: 320
                        nullable: true
                      programType:
                        type: string
                        example: campaign
                        nullable: true
                      program_trip_id:
                        type: integer
                        example: 512
                        nullable: true
                      program_trip_name:
                        type: string
                        example: Guatemala Summer 2026
                        nullable: true
                      program_trip_slug:
                        type: string
                        example: guatemala-summer-2026
                        nullable: true
                      total_length:
                        type: integer
                        example: 120
                      has_more:
                        type: boolean
                        example: true
                      session_id:
                        type: string
                        example: 7f2c8f8d64b8a1d4a9e2
                      session_logged_in:
                        type: string
                        example: 'false'
                        nullable: true
                    type: object
                type: object
        '404':
          description: Program or settings were not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
        '422':
          description: The directory search, filter, or sort criteria are invalid.
        '503':
          description: >-
            Public recipient search is temporarily unavailable; retry the
            request.
      security: []
components:
  schemas:
    Client:
      title: Client
      description: >-
        A Gratona client — the tenant of the multi-tenant system. Owns donors,
        entities, programs, users, and integrations. The `client_id` on every
        other resource scopes data to this row. Stripe Connect onboarding state,
        account-level settings, and the client's display name all live here.
      required:
        - id
        - organization
      properties:
        id:
          description: Internal client ID — referenced by every multi-tenant resource.
          type: integer
          format: int64
          example: 207
        organization:
          description: Display name of the organization.
          type: string
          example: Gratona Demo Org
        website:
          description: Organization website.
          type: string
          example: https://demo.gratona.com
          nullable: true
        email:
          description: Primary contact email for the organization.
          type: string
          format: email
          example: hello@demo.gratona.com
          nullable: true
        stripe_connect_id:
          description: >-
            Stripe Connect account id once onboarding completes; null until the
            org has finished Stripe onboarding.
          type: string
          example: acct_1OqXXXXX
          nullable: true
        previous_stripe_connect_id:
          description: >-
            Prior Stripe Connect account id, kept around when the client
            migrates between Connect accounts.
          type: string
          example: null
          nullable: true
        completed_stripe_onboarding:
          description: >-
            Whether the org has finished the Stripe Connect onboarding flow and
            can accept Stripe payments.
          type: boolean
          example: true
        date_format:
          description: >-
            Stored organization date-format setting token. API and admin
            surfaces resolve this token to the corresponding display pattern.
          type: string
          enum:
            - m-d-Y
            - d-m-Y
            - Y-m-d
          example: Y-m-d
        timezone:
          description: 'Computed accessor: client timezone derived from settings.'
          type: string
          example: America/Chicago
          nullable: true
        custom:
          description: >-
            Legacy free-form JSON column for arbitrary client-level
            configuration.
          type: object
          nullable: true
          additionalProperties: true
        frequency:
          description: Legacy frequency configuration for billing / payment plans (JSON).
          type: object
          nullable: true
          additionalProperties: true
        custom_start_date:
          description: Legacy billing custom start date marker.
          type: string
          example: null
          nullable: true
        custom_amount:
          description: Legacy billing custom amount marker.
          type: number
          format: float
          example: null
          nullable: true
        created_at:
          type: string
          format: date-time
          example: '2024-06-01T12:00:00Z'
        updated_at:
          type: string
          format: date-time
          example: '2026-01-01T00:00:00Z'
      type: object
    NotFoundResponse:
      title: NotFoundResponse
      description: >-
        Returned with HTTP 404 when a resource lookup misses (typically because
        the id doesn't exist OR is scoped to a different `client_id`). Note:
        many endpoints intentionally collapse 'not found' and 'forbidden' into a
        single 404 to avoid leaking which records exist in another tenant.
      required:
        - message
      properties:
        message:
          description: >-
            Human-readable message. Often a more specific string like `Donor not
            found` or `Trip not found`.
          type: string
          example: Not Found
        status:
          type: string
          example: error
      type: object

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.