> ## 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.

# Search public recipients before adding an entity

> Searches visible recipients for the public add-entity flow so donors do not create duplicates. The controller scopes search by client and program, searches visible non-sample entity `json_fields` and numeric ids, optionally includes archived recipients, and returns display names from title fields plus public profile thumbnails. An empty search string returns an empty result set with the current session id.



## OpenAPI

````yaml get /frontend/add_entity/search/{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/add_entity/search/{client_id}/{program_id}/{session_id}:
    get:
      tags:
        - Public
      summary: Search public recipients before adding an entity
      description: >-
        Searches visible recipients for the public add-entity flow so donors do
        not create duplicates. The controller scopes search by client and
        program, searches visible non-sample entity `json_fields` and numeric
        ids, optionally includes archived recipients, and returns display names
        from title fields plus public profile thumbnails. An empty search string
        returns an empty result set with the current session id.
      operationId: searchPublicAddEntityRecipients
      parameters:
        - name: client_id
          in: path
          description: Client id that owns the program and recipient records.
          required: true
          schema:
            type: integer
          example: 207
        - name: program_id
          in: path
          description: >-
            Program id whose HysForm title fields are used to build result
            names.
          required: true
          schema:
            type: integer
          example: 11
        - name: session_id
          in: path
          description: >-
            Optional Redis frontend session id. A new session is created when
            this one is missing or expired.
          required: true
          schema:
            type: string
          example: 7f2c8f8d64b8a1d4a9e2
        - name: search
          in: query
          description: >-
            Search term matched against entity JSON fields. Numeric values also
            match an exact entity id.
          required: false
          schema:
            type: string
          example: Jane
        - name: limit
          in: query
          description: >-
            Maximum result count. The controller clamps the value between 1 and
            25 and defaults to 10.
          required: false
          schema:
            type: integer
            maximum: 25
            minimum: 1
          example: 10
        - name: search_all
          in: query
          description: >-
            When set to `1`, `true`, `TRUE`, `yes`, or `on`, archived recipients
            are included in the search; otherwise only non-deleted records are
            returned.
          required: false
          schema:
            type: string
          example: '1'
      responses:
        '200':
          description: Search results for public add-entity duplicate detection.
          content:
            application/json:
              schema:
                properties:
                  status:
                    type: string
                    example: success
                  data:
                    properties:
                      session_id:
                        type: string
                        example: 7f2c8f8d64b8a1d4a9e2
                      search:
                        type: string
                        example: Jane
                      search_all:
                        type: string
                        enum:
                          - '0'
                          - '1'
                        example: '0'
                      results:
                        type: array
                        items:
                          properties:
                            id:
                              type: integer
                              example: 4711
                            name:
                              type: string
                              example: Jane Student
                            status:
                              type: string
                              example: '0'
                            profile_thumb:
                              type: string
                              example: https://s3-us-west-1.amazonaws.com/hys/thumb.jpg
                              nullable: true
                            is_archived:
                              type: boolean
                              example: false
                            archived_at:
                              type: string
                              format: date-time
                              example: null
                              nullable: true
                          type: object
                    type: object
                type: object
        '404':
          description: Program, form, or settings were not found.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundResponse'
      security: []
components:
  schemas:
    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.