Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel3
outlinefalse
styledefault
typelist
printabletrue

...

  • By default, shift opportunities and passthrough opportunities (provided by our partners) are omitted due to additional UI complexity. As a result, this documentation does not cover the shift-related and passthrough fields. If you are interested in including shift or passthrough opportunities, please contact us at support@volunteermatch.org.

Hide your API Key in Front-End Code

  • For security purposes, your API key should never be written in publicly-accessible front-end code. Please be sure to obscure the API key from the general public.

...

Search Opportunities Using Filters

...

Expand
titleRecommended Filters - for best experience
  • categories: List ofCategoriesenum(Link to Categories Enum)

    • Description: Supports numerous categories of opportunities, also known as cause areas. For a complete list of available enum values, refer to the Categories Enum Documentation. You can either display all options to your volunteers or map VolunteerMatch cause areas to your own distinctions.

  • keywords: List of Strings

    • Description: Allows for a free-form text search. Performs a keyword search across the following fields of opportunities: title, organization name, description, skills, and categories.

    • Example: keywords = ["education", "volunteering"] searches for opportunities related to education and volunteering.

  • greatFor: List ofgreatForenum(Link to GreatFor Enum)

    • Description: Categorizes opportunities based on the target audience, as determined by the nonprofit admin. For a complete list of available enum values, refer to the GreatFor Enum Documentation.

  • returnVirtualAndOnSiteOpps: Boolean

    • Description: Allows users to select between virtual only, in-person only, or both virtual and in-person opportunities.

    • Usage: Set to true to query for both virtual and on-location opportunities based on thelocation input. This input is ignored if virtual is true.

    • Example: returnVirtualAndOnSiteOpps:true allows users to see both types of opportunities.

  • timeslots: List of timeslots enum (Link to Timeslot Enum)

    • Description: Allow users to filter by when they are available to volunteer

  • virtual: Boolean

    • Description: Set to true to include opportunities without a physical location.

  • virtualOrgRegion: String

    • Description: Filters virtual opportunities by the region where the organization is located.

    • Usage: This input is ignored if virtual is false or omitted. Use free-form text such as a state abbreviation or postal code.

    • Example: virtualOrgRegion: "CA" for California or virtualOrgRegion: "94111" for a specific postal code. For US-based locations, it resolves to a state.

...

  • Location: San Francisco, CA

  • Cause area: Animals

  • Great for: Groups, Done in a Day

  • Keywords: Dogs

  • Opportunity Type: In-person AND virtual

Code Block
languagegraphql
query {
  searchOpportunities(
    input: {
      location: "san francisco"
      categories: ["animals"]
      greatFor: ["groups", doneInADay]
      keywords: ["dogs"]
      returnVirtualAndOnSiteOpps: true
      pageNumber: 1
      numberOfResults: 25
    }
  ) {
    currentPage
    resultsSize
    opportunities {
      datePosted
      dateRange {
        endDate
        endTime
        ongoing
        startDate
        startTime
      }
      description
      id
      location {
        city
        postalCode
        region
      }
      parentOrg {
        name
        url
      }
      title
      url
    }
  }
}

...

Expand
titleStrongly Recommend Display Fields
  • title: String

    • Description: The title of the opportunity.

  • description: String

    • Description: The description of the opportunity. Supports basic HTML for formatting, including elements like <div>, <ul>, <p>, <br>, <li>, and <ol>.

  • plainTextDescription: String

    • Description: The description of the opportunity description with no HTML tags.

  • parentOrg: OrganizationDetail (Link to OrganizationDetail Schema)

    • Description: The organization to which this opportunity belongs.

    • Usage: Contains details about the parent organization. Refer to OrganizationDetail for the structure and information provided.

      • Recommend fields to display in OrganizationDetail:

        • name: String

          • Description: Name of this organization

      • Optional fields to display in OrganizationDetail:

        • url: String

          • Description: The URL of this organization on the VolunteerMatch website

  • dateRange: DateRangeDetail (Link to DateRangeDetail Schema)

    • Recommend fields to display in DateRangeDetail:

      • ongoing: Boolean

        • Description: If true, the opportunity does not have start and end dates, and the dates are flexible. startDate, endDate fields will return Null.

        • Usage: If true, we recommend you let the user know that the dates for this opportunity are flexible.

      • startDate: String

        • Description: The start date of the opportunity, formatted as "yyyy-MM-dd".

      • startTime: String

        • Description: The start time of the opportunity, formtted as "hh:mm" or "hh:mmaa"

      • endDate: String

        • Description: The end date of the opportunity, formatted as "yyyy-MM-dd".

      • endTime: String

        • Description: The end time of the opportunity, formtted as "hh:mm" or "hh:mmaa"

  • location: LocationDetail (Link to LocationDetail Schema)

    • Recommend fields to display in LocationDetail:

      • street1: String

      • street2: String

      • city: String

      • region: String

      • country: String

      • postalCode: String

  • categories: List ofCategoriesenum(Link to Categories Enum)

    • Description: A list of 1 to 3 cause categories associated with the opportunity. Each opportunity has at least one cause category and can have a maximum of three.

  • skillsNeeded: String

    • Description: The skills required for the opportunity, listed in plain text and separated by commas. To view a full list of skills, refer to the Skills Enum Documentation.

  • greatFor: List ofgreatForenum(Link to GreatFor Enum)

    • Description: Categorizes opportunities based on the target audience, as determined by the nonprofit admin. For a complete list of available enum values, refer to the GreatFor Enum Documentation.

  • groupSize: String

    • Description: The required group size for the opportunity. Must be one of the following values: 5, 10, 20, or 10000.

  • timeCommitment: String

    • Description: The time commitment required for the opportunity, described in plain text.

    • Usage: One of the requirement fields

  • requirements: RequirementsBean (Links to RequirementsBean Schematimeslots: List of timeslots enum (Link to Timeslot Enum)

    • Description: The specific When the volunteer opportunity is available based on timeslot selections.

  • requirements: RequirementsBean (Links to RequirementsBean Schema)

    • Description: The specific requirements for volunteering for this opportunity.

    • Usage: One of the requirement fields

    • Fields included in RequirementsBean

      • bgCheck: Boolean

        • Description: Indicates if a background check is required.

      • drLicense: Boolean

        • Description: Indicates if a driver's license is required.

      • minimumAge: Integer

        • Description: The minimum age required to volunteer.

      • orientation: Boolean

        • Description: Indicates if orientation is required before volunteering.

  • otherRequirements: String

    • Description: Any additional requirements or conditions not covered by the standard fields.

  • id:Integer

    • Description: The unique identifier for the opportunity assigned by VolunteerMatch.

    • Usage: This field does not need to be displayed but should be stored or passed along to facilitate future connections or actions related to the opportunity.

  • The following fields are only available when shift-related opportunities are enabled by the VolunteerMatch Opportunities Type Restriction.

    • oppActiveShifts: List of ShiftDetail objects (Links to ShiftDetail Schema)

      • Description: A list of active shifts for the opportunity that are currently available for volunteers. This field only includes shifts that have not yet expired.

      • Usage: Display these shifts to users when showing opportunities with currently available shifts for participation.

    • shifts: List of ShiftDetail objects (Links to ShiftDetail Schema)

      • Description: A list of all shifts for the opportunity, including both active and expired shifts.

      • Usage: This field can be used for reporting or administrative purposes where visibility of all shifts, regardless of their status, is necessary.

...

Connection Confirmation Screen

Direct Connect Opportunities

There are some opportunities where we want to direct the user directly to a registration link provided by the nonprofit. You can identify these opportunities by the following criteria: redirectUrl is NOT NULL ANDconnection_type is NOT ‘passthrough.' For these opportunities, you still want to create the connection with the createConnection call, but then you should redirect the user to the redirectUrl. We suggest adding this redirect in the UI on the connection confirmation screen by letting the user know they need to complete registration at another site.

UI Requirements

  • A Success message

  • Opportunity Title

  • Organization Name

  • Date & Time

  • Location or Virtual

  • "Powered by VolunteerMatch" logo

...