---
title: Virtuous API Integration on Truto
slug: virtuous
category: CRM
canonical: "https://truto.one/integrations/detail/virtuous/"
---

# Virtuous API Integration on Truto



**Category:** CRM  
**Status:** Beta

## MCP-ready AI tools

Truto exposes 345 tools for Virtuous that AI agents can call directly.

- **virtuous_authentication_get_token** — Retrieve an OAuth access token from Virtuous by authenticating with username and password (or refreshing an expired token with a refresh_token). Returns: access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled.issued,…
- **list_all_virtuous_organizations** — List Virtuous organizations the current user belongs to. Returns: organizationUserId, organizationName, organizationTimeZone, organizationCulture, isAdministrator, isEnabled.
- **virtuous_organizations_get_current_organization** — Get the current Virtuous organization for the authenticated user. Returns: organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled.
- **virtuous_organizations_switch_organization** — Switch the current Virtuous organization for the authenticated user. Returns an empty 200 response on success. Required: organizationUserId.
- **list_all_virtuous_permissions** — List permissions for the current user in Virtuous. Returns a collection of permission entries, each with module, action, and allowed. No required parameters.
- **get_single_virtuous_contact_by_id** — Get a single Virtuous contact by id. Returns the full contact object including id, contactType, name, isPrivate, contactIndividuals, address, customFields, originSegmentId, createDateTimeUtc, and related resource URLs. Required: id.
- **virtuous_contacts_search** — Search Virtuous contacts by keyword. Returns abbreviated contact records with id, name, contactType, contactName, email, phone, address, contactViewUrl, and individualId.
- **create_a_virtuous_contact** — Create a new contact in Virtuous. Returns the created contact object including id, contactType, name, isPrivate, contactIndividuals, address, and customFields. Will not check for contact duplicates; Virtuous recommends using the Contact Transaction endpoint instead to avoid creating duplicates. Required: contactType.
- **update_a_virtuous_contact_by_id** — Update a Contact in Virtuous by id. Returns the full contact object including id, name, contactType, contactIndividuals, address, and customFields. Excluding a property removes its value from the object; the entire model is still required even when updating a single property. Required: id, contactType.
- **delete_a_virtuous_contact_by_id** — Delete a contact in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **list_all_virtuous_contacts** — List Virtuous contacts with abbreviated details using a query filter. Returns: id, name, contactType, contactName, address, email, phone, contactViewUrl. Max 1000 per page.
- **virtuous_contacts_list_full** — List Virtuous contacts with full details including individuals, addresses, custom fields, and gift history URLs. Returns: id, name, description, website, address, tags. Max 1000 per page.
- **virtuous_contacts_get_by_reference_id** — Get a single Virtuous contact by reference source and reference id. Returns the full contact object including id, contactType, name, contactIndividuals, isCurrentUserFollowing, and more. Required: reference_source, reference_id.
- **virtuous_contacts_list_receipts** — List Virtuous contact receipts, optionally filtered by email address. Returns: id, createdDateTimeUtc, receiptType, receiptMedium, emialAddress, receiptTitle. Max 1000 per page.
- **get_single_virtuous_contact_individual_by_id** — Get a single Virtuous contact individual by id. Returns: id, prefix, prefix2, suffix, nickname, gender, passion. Required: id.
- **update_a_virtuous_contact_individual_by_id** — Update a Virtuous contact individual by id. Returns the updated individual including id, contactId, firstName, lastName, gender, isPrimary, contactMethods, createDateTimeUtc, and customFields. Required: id, firstName, lastName.
- **delete_a_virtuous_contact_individual_by_id** — Delete a Virtuous contact individual by id. Returns an empty 200 response on success. Required: id.
- **create_a_virtuous_contact_individual** — Create a new contact individual in Virtuous belonging to an existing contact. Returns the created individual including id, contactId, firstName, lastName, gender, isPrimary, contactMethods, createDateTimeUtc, and customFields. Required: firstName, lastName, contactId.
- **list_all_virtuous_contact_individuals** — Query contact individuals in Virtuous using filter groups with conditions. Returns a list of individuals with id, contactId, firstName, lastName, gender, isPrimary, contactMethods, createDateTimeUtc, and customFields.
- **create_a_virtuous_contact_note** — Create a note for a contact in Virtuous. Returns: customFields, id, contactId, noteDate, type, note, important, isPrivate, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, createdByAvatarUrl, reminder, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: type, note, contactId.
- **get_single_virtuous_contact_note_by_id** — Get a single contact note by id in Virtuous. Returns: id, type, note, important, reminder. Required: id.
- **update_a_virtuous_contact_note_by_id** — Update a contact note by id in Virtuous. Excluding a property removes its value, so send the entire model even for single-property updates. Returns: id, type, note, important, reminder. Required: id, type, note.
- **delete_a_virtuous_contact_note_by_id** — Delete a contact note by id in Virtuous. Returns an empty response on success. Required: id.
- **list_all_virtuous_contact_notes** — Query contact notes in Virtuous using filter groups and sort options. Returns: id, type, note, important, reminder.
- **virtuous_contact_notes_get_by_contact** — List all contact notes for a specific contact in Virtuous. Returns each note with id, contactId, note, type, important, isPrivate, noteDate, createDateTimeUtc, modifiedDateTimeUtc, and a nested reminder object. Required: bycontact_id.
- **virtuous_contact_notes_list_query_options** — Get all possible query options for contact notes in Virtuous. Returns: options, operatorOptions.
- **virtuous_tags_search** — Search Virtuous tags by name, fully or partially. Returns: id, contactsByTagUrl.
- **list_all_virtuous_tags** — List all tags in Virtuous. Returns: id, tagName, tagGroupName, contactsByTagUrl.
- **get_single_virtuous_gift_by_id** — Get a single Virtuous gift by id. Returns: id, amount, batch, segment, grant, notes, tribute, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id.
- **create_a_virtuous_gift** — Create a new gift directly on a contact record in Virtuous. Returns the created gift including id, contactId, giftType, giftDate, amount, giftDesignations, and customFields. Virtuous recommends using the Gift Transaction endpoint instead to leverage contact matching and avoid data duplication. Required: giftType, giftDate, amount, contactId.
- **update_a_virtuous_gift_by_id** — Update a gift in Virtuous by id. Returns the updated gift including id, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, and customFields. Required: id, giftType, giftDate, amount.
- **delete_a_virtuous_gift_by_id** — Delete a Virtuous gift by id. Returns an empty 200 response on success. Required: id.
- **virtuous_gifts_bulk_create** — Bulk create up to 100 gifts at a time in Virtuous, attaching them directly to contact records. Returns: id, amount, batch, segment, grant, notes, tribute. Not recommended; use the Gift Transaction endpoint for proper contact matching instead.
- **list_all_virtuous_gifts** — Query gifts in Virtuous with abbreviated details using filter groups and sort options. Returns: id, amount, segment, batch, culture. Sort by Id, Amount, GiftDate, ReceiptDate, or Batch.
- **virtuous_gifts_list_full** — Query gifts in Virtuous with full details using filter groups and sort options. Returns: id, amount, batch, segment, grant, notes, tribute. Sort by Id, Amount, GiftDate, ReceiptDate, or Batch. This endpoint can cause performance issues; the simpler Gift Query endpoint is recommended. Max 1000 records per page.
- **virtuous_gifts_get_by_transaction_id** — Get a single Virtuous gift by its transaction source and transaction id. Returns: id, amount, batch, segment, grant, notes, tribute, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: transaction_source, transaction_id.
- **virtuous_gifts_bulk_update** — Update many Virtuous gifts in a single PATCH request. Only the gift id and the fields being changed need to be sent — this is a partial patch, not a full replacement. Returns: id, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled.
- **create_a_virtuous_gift_ask** — Create a new gift ask in Virtuous. Returns the created gift ask including id, contactId, askAmount, askType, status, askDate, frequency, declined, notes, and customFields. Required: askAmount, status, contactId.
- **get_single_virtuous_gift_ask_by_id** — Get a single gift ask in Virtuous by id. Returns the gift ask object including id, contactId, askAmount, askType, status, askDate, frequency, declined, notes, and customFields. Required: id.
- **update_a_virtuous_gift_ask_by_id** — Update a gift ask in Virtuous by id. Excluding a property removes its value from the object, but the full model is still required. Returns the updated gift ask including id, contactId, askAmount, askType, status, askDate, frequency, declined, notes, and customFields. Required: id, askAmount, status.
- **list_all_virtuous_gift_asks** — Query gift asks in Virtuous using filter groups with conditions. Returns a paginated list of gift asks with id, contactId, askAmount, askType, status, askDate, frequency, declined, notes, and customFields.
- **create_a_virtuous_planned_gift** — Create a new planned gift in Virtuous. Returns the created planned gift including id, contactId, plannedGiftDate, frequency, anticipatedAmount, fulfilled, project, segment, createDateTimeUtc, and customFields. Required: plannedGiftDate, plannedGiftType, frequency, contactId.
- **get_single_virtuous_planned_gift_by_id** — Get a single planned gift in Virtuous by id. Returns: id, frequency, fulfilled, project, segment. Required: id.
- **update_a_virtuous_planned_gift_by_id** — Update a planned gift in Virtuous by id. Excluding a property removes its value; the full model is required even for single-property updates. Returns: id, frequency, fulfilled, project, segment. Required: id, plannedGiftDate, plannedGiftType, frequency.
- **list_all_virtuous_planned_gifts** — Query planned gifts in Virtuous using filter groups with conditions, sort field, and sort direction. Returns: id, frequency, fulfilled, project, segment. Max 1000 records per page.
- **create_a_virtuous_pledge** — Create a new pledge in Virtuous. Returns the created pledge object including id, contactId, amountPledged, frequency, pledgeDate, status, payments, and customFields. Required: pledgeDate, amount, frequency, contactId.
- **update_a_virtuous_pledge_by_id** — Update an existing pledge in Virtuous by id. Excluding a property removes its value from the object; the entire model is still required even when updating a single property. Returns the updated pledge including id, contactId, amountPledged, frequency, status, payments, and customFields. Required: id, pledgeDate, amount, frequency.
- **get_single_virtuous_pledge_by_id** — Get a single Virtuous pledge by id. Returns: id, frequency, amount, segment, project. Required: id.
- **get_single_virtuous_recurring_gift_by_id** — Get a single recurring gift in Virtuous by id. Returns the full recurring gift object including id, contactId, amount, giftDate, giftType, giftDesignations, recurringGiftPayments, customFields, and isPrivate. Required: id.
- **update_a_virtuous_recurring_gift_by_id** — Update an existing recurring gift in Virtuous by id. Returns the updated recurring gift object including id, contactId, giftType, giftDate, amount, currencyCode, and giftDesignations. Required: id, startDate, frequency.
- **create_a_virtuous_recurring_gift** — Create a new recurring gift in Virtuous. Returns the created recurring gift object including id, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, recurringGiftPayments, isPrivate, isTaxDeductible, and customFields. Required: startDate, frequency, contactId.
- **virtuous_recurring_gifts_bulk_update** — Bulk update multiple Recurring Gifts in Virtuous by sending a JSON array where each item includes only the id and the fields being changed (patch semantics). Returns the updated recurring gift including id, contactId, amount, giftDate, giftDesignations, and customFields.
- **list_all_virtuous_recurring_gifts** — Query recurring gifts in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use recurring_gift_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: id, contactId, transactionSource, transactionId, recurringGiftDate, startDate, amount, frequency, anticipatedEndDate, cancelDateTimeUtc, status, nextExpectedPaymentDate, segmentId, segment, automatedPayments, trackPayments, isPrivate, designations (projectId, project, amountDesignated, projectCode), customFields, createDateTimeUtc, modifiedDateTimeUtc.
- **get_single_virtuous_premium_by_id** — Get a single Virtuous premium by id. Returns: customFields, id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id.
- **update_a_virtuous_premium_by_id** — Update an existing Virtuous premium by id. Returns the updated premium object including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, and customFields. Required: id, name, code, price, fairMarketValue.
- **create_a_virtuous_premium** — Create a new Virtuous premium. Returns the created premium object including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, and customFields. Required: name, code, price, fairMarketValue.
- **virtuous_premiums_search** — Search Virtuous premiums by a search term. Returns a paged list of premium records including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, and customFields.
- **virtuous_premiums_get_by_premium_code** — Get a single Virtuous premium by its unique code. Returns: customFields, id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: code_id.
- **create_a_virtuous_tribute** — Create a new tribute in Virtuous. Returns the created tribute object including its id, tributeType, firstName, lastName, address fields, postalCode, defaultAcknowledgeeIndividualId, and create/modified audit fields. Required: tributeType, firstName, lastName.
- **update_a_virtuous_tribute_by_id** — Update an existing tribute in Virtuous by id. Returns the updated tribute object including its id, tributeType, firstName, lastName, address fields, postalCode, defaultAcknowledgeeIndividualId, and create/modified audit fields. Required: id, tributeType, firstName, lastName.
- **get_single_virtuous_campaign_by_id** — Get a single Campaign in Virtuous by id. Returns the campaign object including its id, name, createDateTimeUtc, and modifiedDateTimeUtc. Required: id.
- **create_a_virtuous_campaign** — Create a new campaign in Virtuous. Returns the created campaign object including its id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **update_a_virtuous_campaign_by_id** — Update a campaign in Virtuous by id. Send the full campaign model: excluding a property clears its value. Returns the updated campaign including campaignId, name, startDateTimeUtc, endDateTimeUtc, givingGoal, newGiverGoal, totalGiftGoal, isArchived, createDateTimeUtc and modifiedDateTimeUtc. Required: id, name.
- **list_all_virtuous_campaigns** — Query campaigns in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use campaign_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: campaignId, name, startDateTimeUtc, endDateTimeUtc, givingGoal, newGiverGoal, totalGiftGoal, isArchived, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser.
- **list_all_virtuous_segments** — List Segments in Virtuous. Returns a paginated collection of segment records including id, name, code, isActive, segmentUrl, createDateTimeUtc, modifiedDateTimeUtc, and customFields.
- **get_single_virtuous_segment_by_id** — Get a single Segment by id in Virtuous. Returns the full segment object including id, name, code, isActive, segmentUrl, createDateTimeUtc, modifiedDateTimeUtc, and customFields. Required: id.
- **update_a_virtuous_segment_by_id** — Update a Segment by id in Virtuous. Excluding a property will remove its value from the object; the entire model is still required even when updating a single property. Returns the updated segment object including id, name, code, isActive, segmentUrl, createDateTimeUtc, and modifiedDateTimeUtc. Required: id, name, code.
- **create_a_virtuous_segment** — Create a new Segment in Virtuous. Returns: id, name, description, code. Required: name, code.
- **virtuous_segments_search** — Search for segments in Virtuous that match the given search text. Returns a paginated list of segment records including id, name, code, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, and customFields.
- **get_single_virtuous_project_by_id** — Get Project By Id. Returns: id, name, revenueAccountingCode, projectCode, externalAccountingCode, onlineDisplayName, description, photoUrl. Required: id.
- **create_a_virtuous_project** — Create a new project in Virtuous. Returns the created project with id, projectCode, and additional standard project attributes such as type, location, url, externalAccountingCode, and customFields. Required: name, revenueAccountingCode, inventoryStatus, type, location.
- **update_a_virtuous_project_by_id** — Update a project in Virtuous by id. Send the full project model: excluding a property clears its value. Optional query parameter disableWebhookUpdates suppresses webhook notifications for this change. Returns the updated project including id, name, projectCode, revenueAccountingCode, externalAccountingCode, onlineDisplayName, description, type, location, inventoryStatus, durationType, startDate, endDate, isActive, isPublic, isAvailableOnline, isTaxDeductible, beginningBalance, currentBalance, financialNeedAmount, giftSpecifications, and customFields. Required: id, name, revenueAccountingCode, inventoryStatus, type, location.
- **virtuous_projects_search** — Search projects in Virtuous by a free-text search string, with optional sortBy and descending. Paginated with skip/take (max take 1,000). Returns a list of matching projects with id, name, projectCode, externalAccountingCode, onlineDisplayName, description, type, location, inventoryStatus, isActive, isPublic, isAvailableOnline, beginningBalance, currentBalance, financialNeedAmount, lifeToDateGiving, customFields, plus total. Required: search.
- **list_all_virtuous_projects** — Query projects in Virtuous using filter groups with conditions, sort field, and sort direction. Returns each project's id, name, code, type, location, and externalAccountingCode.
- **virtuous_projects_bulk_update** — Bulk update multiple projects in Virtuous by sending a JSON array where each item includes only the id and the fields being changed (patch semantics): name, projectCode, onlineDisplayName, description, financialNeedAmount, beginningBalance, currentBalance, type, startDate, endDate, customFields. Use this whenever more than one project is being updated. Returns an empty object on success.
- **get_single_virtuous_event_by_id** — Get a single Virtuous event by id. Returns the event object including id and attributes (event fields defined by the upstream EventBindingModel schema). Required: id.
- **list_all_virtuous_events** — List Virtuous events with pagination. Returns: customFields, id, eventViewUrl, name, eventType, locationName, displayAddress, geocodeAddress, startDateTime, endDateTime, timeZone, description, specialInstructions, inviteOnly, rsvpRequired, totalInvites, totalRsvps, totalAttended, totalGifts, totalGiving, communicationId, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser,…
- **create_a_virtuous_event** — Create a new event in Virtuous. Returns the created event object including id and attributes (event fields defined by the upstream EventBindingModel schema). Required: name, startDateTime, endDateTime, timeZone.
- **update_a_virtuous_event_by_id** — Update a Virtuous event by id. Returns the updated event object including its id, location, startDateTime, endDateTime, and timeZone. Excluding a property removes its value; the entire model must be sent even for single-property updates. Required: id, name, startDateTime, endDateTime, timeZone.
- **delete_a_virtuous_event_by_id** — Delete a Virtuous event by id. Returns an empty 200 response on success. Required: id.
- **virtuous_events_list_query** — Query events in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use event_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: id, name, eventType, eventViewUrl, locationName, displayAddress, startDateTime, endDateTime, timeZone, description, specialInstructions, inviteOnly, rsvpRequired, totalInvites, totalRsvps, totalAttended, totalGifts, totalGiving, communicationId, customFields, generosityEventContacts, createDateTimeUtc, modifiedDateTimeUtc.
- **virtuous_events_events_attendee_update** — Update an event attendee in Virtuous by event and attendee id. Returns: id, invitee, event, location, rsvp, attended, invited, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: event_id, event_attendee_id.
- **virtuous_events_events_attendee_delete** — Delete an event attendee from a specific event in Virtuous. Returns an empty 200 response on success. Required: event_id, event_attendee_id.
- **list_all_virtuous_event_invitations** — List event invitations in Virtuous by submitting a query request with filter groups. Returns: id, invitee, event, location, rsvp, attended, invited. This endpoint is deprecated.
- **get_single_virtuous_grant_by_id** — Get Grant By Id. Returns: customFields, id, grantUrl, giftsAppliedUrl, ownerId, title, grantingOrganizationId, grantingOrganizationUrl. Required: id.
- **create_a_virtuous_grant** — Create a new grant in Virtuous. Returns the created grant object including id, contactId, giftType, giftDate, amount, currencyCode, grantId, grant, grantUrl, and customFields. Required: ownerId, title, grantingOrganizationId.
- **update_a_virtuous_grant_by_id** — Update a grant in Virtuous by id. Send the full grant model: excluding a property clears its value. Returns the updated grant including id, title, ownerId, grantingOrganizationId, receivingOrganizationId, projectId, description, dueDateUtc, totalAnticipatedAmount, status, submissionDateUtc, anticipatedAwardDateUtc, awardedGrant, awardedAmount, grantType, and customFields. Required: id, ownerId, title, grantingOrganizationId.
- **delete_a_virtuous_grant_by_id** — Delete a grant in Virtuous by id. Returns an empty 200 response on success. Required: id.
- **list_all_virtuous_grants** — Query grants in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use grant_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: id, title, ownerId, grantingOrganizationId, receivingOrganizationId, projectId, project, description, referenceId, dueDateUtc, totalAnticipatedAmount, status, submissionDateUtc, anticipatedAwardDateUtc, awardedGrant, awardedAmount, awardedDateUtc, awardTerms, grantType, pointOfContactName, pointOfContactEmail, pointOfContactPhone, website, customFields.
- **list_all_virtuous_volunteers** — List volunteers for a specific volunteer opportunity in Virtuous. Returns: list, total. Required: volunteer_opportunity_id.
- **create_a_virtuous_volunteer** — Create a volunteer for a specific volunteer opportunity in Virtuous. Returns the created volunteer object including id, volunteerOpportunityId, contactId, contactIndividualId, and emailAddress. Required: volunteer_opportunity_id, contactIndividualId.
- **get_single_virtuous_volunteer_by_id** — Get a single volunteer by id within a volunteer opportunity in Virtuous. Returns: id. Required: id, volunteer_opportunity_id.
- **delete_a_virtuous_volunteer_by_id** — Delete a volunteer by id from a volunteer opportunity in Virtuous. Returns an empty 204 response on success. Required: id, volunteer_opportunity_id.
- **virtuous_volunteers_search** — Search volunteers in Virtuous by volunteer opportunity, contact, or email address. Returns: id, volunteerUrl, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, contactId, contactIndividualId, contactUrl, displayName, firstName, avatarUrl, primaryPhone, primaryEmail, totalHours, timesVolunteered, volunteerAttendanceUrl, volunteerOpportunityId, volunteerOpportunityUrl,…
- **virtuous_volunteers_list_query** — Query volunteers in Virtuous by posting filter conditions in the request body. Returns a paged list of volunteer records including id, volunteerOpportunityId, contactId, contactIndividualId, and emailAddress.
- **list_all_virtuous_volunteer_opportunities** — List volunteer opportunities in Virtuous, optionally filtered by a filter expression. Returns each opportunity with its id and attributes. Accepts a filter query parameter.
- **create_a_virtuous_volunteer_opportunity** — Create a new volunteer opportunity in Virtuous. Returns the created opportunity with its id. Required: name.
- **get_single_virtuous_volunteer_opportunity_by_id** — Get a single volunteer opportunity in Virtuous by id. Returns the opportunity with its id. Required: id.
- **update_a_virtuous_volunteer_opportunity_by_id** — Update an existing volunteer opportunity in Virtuous by id. Returns the updated opportunity with its id. Required: id, name.
- **delete_a_virtuous_volunteer_opportunity_by_id** — Delete a volunteer opportunity in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **virtuous_volunteer_opportunities_list_query** — Query volunteer opportunities in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use volunteer_opportunity_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns: id, projectId, name, url, description, anytime, startDateTime, endDateTime, preferredDateTime, timeZone, isActive, isLocalOnly, currentPriority, currentPriorityName, currentNeed, preferredNumberOfHours, anywhere, locationName, displayAddress, address1, address2, city, state, postal, country, totalVolunteers, totalVolunteerHours, currentNeedFilledPercentage, hoursFilledPercentage, volunteerOrganizers, customFields.
- **get_single_virtuous_communication_by_id** — Get a single Communication in Virtuous by id. Returns: name, description, id. Required: id.
- **create_a_virtuous_communication** — Create a new Communication in Virtuous. Returns the created Communication object including id, createDateTimeUtc, and modifiedDateTimeUtc. Required: name, campaignId, channelType, communicationType, communicationStep, startDateTime, ownerId.
- **virtuous_communications_list_query** — Query Communications in Virtuous using filter conditions and sorting. Returns a list of Communication records including id, createDateTimeUtc, and modifiedDateTimeUtc.
- **virtuous_communications_list_channel_type_options** — List available communication channel types in Virtuous. Returns: a list of channel type strings (e.g. Email, Phone, Letter, SMS). No required parameters.
- **virtuous_communications_list_communication_type_options** — List available communication types in Virtuous. Returns: a list of communication type strings (e.g. Call, Email, Meeting, Letter). No required parameters.
- **list_all_virtuous_organization_groups** — List all Organization Groups in Virtuous. Returns each group with id, organizationGroupUrl, organizationId, organizationName, name, location, description, and organizationGroupContactsUrl. An optional filter query parameter narrows results by name or other attributes.
- **get_single_virtuous_organization_group_by_id** — Get a single Organization Group by id in Virtuous. Returns: id, organizationName, name, description. Required: id.
- **list_all_virtuous_gift_designations** — Query gift designations in Virtuous using filter groups and sorting. Returns each designation with id, amountDesignated, giftId, giftDate, projectId, project, contactId, and contactName. Sortable by Id, Amount, GiftDate, ReceiptDate, and Batch.
- **list_all_virtuous_configuration** — List contact types in Virtuous. Default types include Household, Organization, and Foundation; additional types are configurable via CRM. Returns: parentType, type.
- **virtuous_transactions_create_gift** — Create a gift transaction in Virtuous via the v2 import endpoint. Transactions are queued for processing with intelligent contact and gift matching rather than created in real-time. Returns an empty response with no body on success. Use webhooks to be notified when the actual gift is created.
- **virtuous_transactions_create_contact** — Create a contact transaction in Virtuous through the Import Tool, which queues the contact for intelligent matching, validation, and batch processing rather than creating it in real-time. Returns an empty 200 response on success. Use webhooks to be notified when the contact is actually created.
- **list_all_virtuous_tasks** — List tasks in Virtuous. Returns a paginated list of task records including id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **create_a_virtuous_task** — Create a new task in Virtuous. Returns the created task object including its id, message, targetDate, contactId, reminderType, taskStatus, and owner. Required: taskType, task, dueDateTime.
- **update_a_virtuous_task_by_id** — Update an existing task (reminder) in Virtuous by id. Returns the updated task object including id, message, targetDate, reminderType, taskStatus, description, contactId, and owner. Required: id.
- **delete_a_virtuous_task_by_id** — Delete a Task in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **list_all_virtuous_webhooks** — List webhook subscriptions in Virtuous. Returns each subscription's id, payloadUrl, secret, active, and event subscription flags (contactCreate, giftCreate, projectCreate, formSubmission, etc.). Note: the CRM+ spec does not include a dedicated list-all endpoint; store subscription IDs at creation time.
- **create_a_virtuous_webhook** — Create a new webhook subscription in Virtuous to receive event notifications at your payload URL. Returns the created subscription including id, payloadUrl, secret, active, and all event subscription flags (contactCreate, contactUpdate, giftCreate, giftUpdate, giftDelete, projectCreate, projectUpdate, projectDelete, formSubmission, contactNoteCreate, contactNoteUpdate, contactNoteDelete,…. Required: payloadUrl.
- **delete_a_virtuous_webhook_by_id** — Delete a webhook subscription permanently in Virtuous. Events are dropped immediately and not queued for later delivery. Returns an empty 204 response on success. Required: id.
- **get_single_virtuous_webhook_by_id** — Get a single webhook subscription by id in Virtuous. Returns the subscription including id, payloadUrl, secret, active, and all event subscription flags (contactCreate, contactUpdate, giftCreate, giftUpdate, giftDelete, projectCreate, projectUpdate, projectDelete, formSubmission, contactNoteCreate, contactNoteUpdate, contactNoteDelete, eventCreate, eventUpdate, eventDelete). Required: id.
- **update_a_virtuous_webhook_by_id** — Update a webhook subscription in Virtuous — change the payload URL, rotate the secret, or modify event selections. Returns the updated subscription including id, payloadUrl, secret, active, and all event subscription flags (contactCreate, contactUpdate, giftCreate, giftUpdate, giftDelete, projectCreate, projectUpdate, projectDelete, formSubmission, contactNoteCreate, contactNoteUpdate,…. Required: id, payloadUrl.
- **list_all_virtuous_campaign_query_options** — List the available query options for Campaign queries in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **get_single_virtuous_campaign_get_steps_by_campaign_id_by_id** — Get the list of steps associated with a specific Virtuous campaign by id. Returns an array of step name strings. Required: id.
- **get_single_virtuous_communication_by_campaign_by_id** — Get Campaign Communications. Returns: list, total. Required: id.
- **list_all_virtuous_communication_query_options** — List available query options for Communication searches in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_contact_finds** — Find a contact in Virtuous by email address or by reference source and ID. Returns the full contact object including id, name, contactType, contactIndividuals, address, customFields, and giving summaries. Either email or both referenceSource and referenceId must be provided; providing both prioritizes the reference source and ID.
- **get_single_virtuous_contact_by_reference_by_id** — Get a contact in Virtuous by external reference ID. Returns the full abbreviated contact object including id, contactType, name, informalName, website, address, contactIndividuals, contactReferences, tags, and customFields. Required: id.
- **create_a_virtuous_contact_batch** — Create a batch of unmatched contacts in Virtuous by providing a reference source and an array of contact records with individual, address, email, phone, event, and volunteer details. Returns an empty 200 response on success.
- **create_a_virtuous_contact_transaction** — Post Contact Transaction.
- **update_a_virtuous_contact_archive_by_id** — Archive a Contact in Virtuous by id. Accepts a JSON request body whose schema is not publicly documented in the discovered source. Returns an empty 204 response on success. Required: id.
- **update_a_virtuous_contact_unarchive_by_id** — Unarchive a contact in Virtuous, restoring it from an archived state. Returns an empty 204 response on success. Required: id.
- **list_all_virtuous_contact_prefixes** — List contact prefixes in Virtuous. Returns an array of string prefix values.
- **list_all_virtuous_contact_types** — List contact types in Virtuous. Default types include Household, Organization, and Foundation, and are configurable via CRM. Returns: parentType, type, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **get_single_virtuous_contact_by_tag_by_id** — Get contacts associated with a specific tag in Virtuous. Returns a paged list of contact items including id, name, contactType, contactName, address, email, phone, and contactViewUrl. Required: id.
- **update_a_virtuous_contact_toggle_follow_by_id** — Toggle follow or unfollow status for a contact for the current user in Virtuous. Returns a 200 OK response with no body on success. Required: id.
- **list_all_virtuous_contact_activities** — List contact activities in Virtuous. Returns: contactId, contactName, activity, contactViewUrl. This endpoint is deprecated.
- **create_a_virtuous_contact_activity** — Create a new contact activity in Virtuous. Returns: activity. Required: contactId, type.
- **list_all_virtuous_contact_followings** — List contacts the current user is following in Virtuous. Returns: id, name, contactType, contactName, address, email, phone, contactViewUrl.
- **create_a_virtuous_contact_proximity** — Search for Virtuous contacts within a given distance of a geographic coordinate. Returns an array of matching contacts, each with id, name, address, lifeToDateGiving, contactViewUrl, latitude, and longitude. Required: latitude, longitude, distanceInMiles.
- **list_all_virtuous_contact_custom_fields** — List all enabled custom fields available for the Contact object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_contact_custom_collections** — List custom collections available for contacts in Virtuous. Returns: id, entityType, name, isEnabled, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, fields, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **create_a_virtuous_collection** — Create a custom collection instance for a contact in Virtuous. Returns the created collection instance including customCollectionId, customCollectionName, collectionInstanceId, and fields. Required: contact_id, custom_collection_id.
- **update_a_virtuous_collection_by_id** — Update an existing custom collection instance for a contact in Virtuous. Returns the updated collection instance including customCollectionId, customCollectionName, collectionInstanceId, and fields. Required: id, contact_id.
- **delete_a_virtuous_collection_by_id** — Delete a custom collection instance from a contact in Virtuous. Returns an empty 200 response on success. Required: id, contact_id.
- **list_all_virtuous_contact_query_options** — List available query options for contacts in Virtuous. Returns the parameters, operators, and predefined value options that can be used to build contact queries, including options (parameter, type, operatorOptions, valueOptions) and global operatorOptions (operator, multipleValuesAllowed, valueRequired).
- **get_single_virtuous_contact_receipt_by_id** — Get a single contact receipt in Virtuous by id. Returns the full receipt including id, contactId, giftType, amount, giftDate, receiptDate, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: id.
- **list_all_virtuous_contact_activity_by_user_follows** — List contact activity for contacts the current Virtuous user follows. Returns: contactId, contactName, activity, contactViewUrl.
- **get_single_virtuous_contact_addrese_by_id** — Get a single contact address in Virtuous by id. Returns the contact address object including id, label, address1, address2, city, state, postal, country, isPrimary, canBePrimary, and createDateTimeUtc. Required: id.
- **update_a_virtuous_contact_addrese_by_id** — Update a contact address in Virtuous by id. Excluding a property removes its value; the full model should be provided. Returns the updated contact address including id, label, address1, address2, city, state, postal, country, isPrimary, canBePrimary, and createDateTimeUtc. Required: id, label.
- **delete_a_virtuous_contact_addrese_by_id** — Delete a contact address in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **create_a_virtuous_contact_addrese** — Create a new contact address in Virtuous. Returns the created address including id, label, address1, address2, city, state, postal, country, isPrimary, canBePrimary, createDateTimeUtc, and modifiedDateTimeUtc. Required: label, contactId.
- **get_single_virtuous_contact_address_by_contact_by_id** — Get all contact addresses for a specific contact in Virtuous by contact id. Returns an array of address objects including id, label, address1, address2, city, state, postal, country, isPrimary, canBePrimary, startMonth, startDay, endMonth, endDay, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser. Required: id.
- **update_a_virtuous_contact_address_archive_by_id** — Archive a contact address in Virtuous by id. Returns an empty 200 response on success. Required: id.
- **update_a_virtuous_contact_address_unarchive_by_id** — Unarchive a contact address in Virtuous by id. The upstream endpoint returns 200 OK with no response body. Required: id.
- **list_all_virtuous_contact_individual_finds** — Find a Virtuous contact individual by email address. Returns the matched individual's id, contactId, firstName, lastName, gender, contactMethods, customFields, and customCollections.
- **get_single_virtuous_contact_individual_by_contact_by_id** — Get all contact individuals associated with a specific contact in Virtuous. Returns an array of contact individual records including id, contactId, firstName, lastName, gender, isPrimary, birthDate, contactMethods, customFields, and customCollections. Required: id.
- **get_single_virtuous_avatar_by_id** — Get the avatar for a contact individual in Virtuous. Returns the full contact individual object including id, firstName, lastName, avatarUrl, contactMethods, and customFields. Required: id.
- **create_a_virtuous_avatar** — Upload the avatar for a contact individual in Virtuous. Returns the updated contact individual object including id, firstName, lastName, avatarUrl, contactMethods, and customFields. Required: contact_individual_id.
- **get_single_virtuous_email_list_by_id** — Get a single email list in Virtuous by id. Returns: name, total, id. Required: id.
- **create_a_virtuous_email_list** — Create a new email list in Virtuous. Returns an empty 202 Accepted response on success. Required: emailListIds, contactIndividualIds.
- **virtuous_email_lists_search** — Search Virtuous email lists that match the given search string. Returns: list, total.
- **virtuous_email_lists_list_by_contact_individual** — List email lists for a contact individual in Virtuous. Returns: id, name, isSubscribed, unsubscribeReason, unsubscribeType, unsubscribeDateTimeUtc, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser. Required: contact_individual_id.
- **list_all_virtuous_contact_individual_custom_fields** — List all enabled custom fields available for the Contact Individual object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_contact_individual_custom_collections** — List the custom collection definitions available for individual contacts in Virtuous. Returns each collection with id, entityType, name, isEnabled, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, and its fields (dataType, formatter, name, displayName, required, rank, options).
- **list_all_virtuous_contact_individual_query_options** — List query options for contact individuals in Virtuous, including available filter parameters, their data types, applicable operators, and predefined value options. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_contact_method_types** — List contact method types available in Virtuous. Returns an array of contact method type strings.
- **list_all_virtuous_contact_method_related_types** — List contact method types related to a given base type in Virtuous. Returns an array of related contact method type strings filtered by the supplied base type name.
- **get_single_virtuous_contact_method_by_id** — Get a single contact method in Virtuous by id. Returns: id, type, value. Required: id.
- **update_a_virtuous_contact_method_by_id** — Update a contact method in Virtuous by id. Excluding a property from the body removes its value. Returns: id, type, value. Required: id, type, value.
- **delete_a_virtuous_contact_method_by_id** — Delete a contact method in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **create_a_virtuous_contact_method** — Create a new contact method in Virtuous. Returns the created contact method including id, type, value, isOptedIn, isPrimary, canBePrimary, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser. Required: type, value, contactIndividualId.
- **update_a_virtuous_contact_method_archive_by_id** — Archive a contact method in Virtuous by its contact method identifier. Returns an empty 200 response on success with no response body. Required: id.
- **update_a_virtuous_contact_method_unarchive_by_id** — Unarchive a contact method in Virtuous, restoring it from archived state. Returns an empty 200 response with no body on success. Required: id.
- **get_single_virtuous_important_by_contact_by_id** — Get important contact notes for a specific contact in Virtuous. Returns a paged list of notes including id, contactId, noteDate, type, note, important, isPrivate, and a total count. Required: id.
- **list_all_virtuous_contact_note_types** — List contact note types in Virtuous. Returns a map of contact note type keys to their string values. No required parameters.
- **list_all_virtuous_contact_note_custom_fields** — List all enabled custom fields available for the Contact Note object in Virtuous. Returns each custom field definition including dataType, name, displayName, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **create_a_virtuous_contact_note_email** — Create a contact note in Virtuous from an email message. Returns an array of contact note objects including id, contactId, note, type, important, isPrivate, noteDate, createdByUser, and a nested reminder object.
- **create_a_virtuous_contact_reference** — Create a contact reference in Virtuous that links a contact to an external reference source. Returns an empty 200 response on success.
- **virtuous_contact_references_bulk_delete** — Delete a contact reference in Virtuous by reference source and reference identifier. Returns an opaque object body on success. Required: reference_source.
- **get_single_virtuous_contact_tag_by_contact_by_id** — Get all tags assigned to a specific contact in Virtuous. Returns: list, total. Required: id.
- **create_a_virtuous_contact_tag** — Create a contact tag in Virtuous by assigning a tag to a contact. Returns: contactTagId, tagId, name, total, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, contactsByTagUrl.
- **delete_a_virtuous_contact_tag_by_id** — Delete a contact tag in Virtuous by id. Returns an empty 200 response on success. Required: id.
- **get_single_virtuous_custom_field_by_id** — Get a single custom field in Virtuous by id (customFieldId). Returns the custom field including dataType, name, displayName, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser. Required: id.
- **virtuous_custom_fields_search** — Search custom fields in Virtuous by submitting a search query in the request body. Returns a paged list (list) with a total count, where each custom field includes dataType, name, displayName, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **list_all_virtuous_custom_field_names** — Get a custom field definition in Virtuous by its name. Returns: name. Required: custom_field_name.
- **get_single_virtuous_custom_collection_by_id** — Get a single custom collection in Virtuous by id. Returns: id, name. Required: id.
- **virtuous_custom_collections_search** — Search custom collections in Virtuous by submitting search criteria. Returns: list, total. Each item in the list contains id, entityType, name, and fields with their data types and options.
- **list_all_virtuous_custom_collection_names** — Get a Virtuous custom collection by its name. Returns the custom collection object including its id, entityType, name, field definitions, and audit timestamps (createDateTimeUtc, modifiedDateTimeUtc). Required: custom_collection_name.
- **virtuous_emails_search** — Search emails in Virtuous using a search term provided in the request body. Returns a paged list of matching email records. Returns: list, total. Each record includes id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **create_a_virtuous_email_send** — Send an email in Virtuous via the Email Send endpoint. Accepts a JSON request body following the SendEmailRequestBindingModel schema; the model's field definitions are referenced but not inlined in the crawled API docs. Returns an empty 200 response on success. Required: emailId, contactIds.
- **create_a_virtuous_email_sent** — Search for sent email batches in Virtuous by keyword. Returns: list, total.
- **list_all_virtuous_activity_query_options** — List Email Activity query options in Virtuous, describing the parameters, operators, and value choices available for filtering email activity queries. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. No required parameters.
- **create_a_virtuous_email_activity** — Query email activities in Virtuous using a structured QueryRequest body with filter groups, sort, and conditions. Returns: list, total. The emailVersionId query parameter scopes results to a specific email version.
- **create_a_virtuous_subscription** — Add or update contact individual subscriptions on an email list in Virtuous. Returns a 202 Accepted response with no body on success. Required: email_list_id.
- **list_all_virtuous_search_events** — Search events in Virtuous using an optional filter string. Returns an array of event objects including id, name, location, startDateTime, endDateTime, and timeZone.
- **list_all_virtuous_event_types** — List event types in Virtuous. Returns each event type record with parentType and type. Results may be sorted by a specified field in ascending or descending order.
- **list_all_virtuous_event_custom_fields** — List all enabled custom fields available for the Event object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_event_query_options** — Get the available query options for filtering Events in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_attendees** — List event attendees for a Virtuous event. Returns: list, total. Required: event_id.
- **create_a_virtuous_attendee** — Create a new event attendee in Virtuous with RSVP, invitation, and seating details. Returns the created attendee including id, invitee, contactId, rsvp, attended, emailAddress, event, and customFields. Required: event_id, contactIndividualId.
- **get_single_virtuous_attendee_by_id** — Get a single event attendee by id in Virtuous. Returns: id, invitee, event, location, rsvp, attended, invited, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id, event_id.
- **list_all_virtuous_event_attendee_custom_fields** — List all enabled custom fields available for the Event Attendee object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **create_a_virtuous_event_attendee_query** — Search event attendees in Virtuous using filter groups, conditions, geo-location bounds, and sorting. Returns a paged list of attendees, each with id, invitee, contactId, eventId, rsvp, attended, and customFields.
- **list_all_virtuous_event_attendee_query_options** — Get the available query filter options for Event Attendee queries in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. No required parameters.
- **list_all_virtuous_invitations** — List invitations for a specific Virtuous event. Returns: list, total. This endpoint is marked as deprecated upstream. Required: event_id.
- **create_a_virtuous_invitation** — Create a new event invitation in Virtuous for a specific event. Returns the created invitation including id, contactId, invitee, rsvp, attended, emailAddress, and createDateTimeUtc. This endpoint is deprecated. Required: event_id, contactIndividualId.
- **update_a_virtuous_invitation_by_id** — Update an event invitation in Virtuous. Returns the updated invitation including id, invitee, contactId, eventId, rsvp, attended, and customFields. This endpoint is deprecated. Required: id, event_id.
- **delete_a_virtuous_invitation_by_id** — Delete an event invitation in Virtuous by id. Returns an empty 204 response on success. Required: id, event_id.
- **get_single_virtuous_invitation_by_id** — Get a single event invitation in Virtuous by id. Returns: id, invitee, event, location, rsvp, attended, invited, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. This endpoint is deprecated. Required: id, event_id.
- **list_all_virtuous_event_invitation_custom_fields** — List all enabled custom fields available for the Event Invitation object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. This endpoint is deprecated.
- **list_all_virtuous_event_invitation_query_options** — List available query filter options for event invitations in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. This endpoint is deprecated.
- **list_all_virtuous_gift_non_cash_gift_types** — List non-cash gift types available in Virtuous. Returns: list, total. Supports optional sortBy and descending parameters for ordering results.
- **create_a_virtuous_gift_reversing_transaction** — Create a reversing transaction in Virtuous that negates the amount and splits applied to an existing gift. Returns the full gift object including id, contactId, giftType, amount, giftDesignations, giftPremiums, and customFields.
- **get_single_virtuous_gift_by_reference_by_id** — Get a paginated list of gifts with designations associated with a contact reference id in Virtuous. Returns: list, total. Required: id.
- **create_a_virtuous_gift_transaction** — Create a new gift transaction in Virtuous. Returns the created gift transaction object including id, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, and customFields. This endpoint is deprecated.
- **list_all_virtuous_gift_custom_fields** — List all enabled custom fields available for the Gift object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **get_single_virtuous_gift_by_contact_by_id** — Get gifts for a specific contact in Virtuous. Returns a paged list of gift items including id, contactName, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: id.
- **get_single_virtuous_passthrough_by_contact_by_id** — Get passthrough gifts for a specific contact in Virtuous. Returns a paged list of gift records including id, contactId, giftDate, amount, giftType, giftDesignations, giftPremiums, and customFields. Required: id.
- **list_all_virtuous_gift_query_options** — List gift query options in Virtuous for building filtered gift queries. Returns the available query options (each with parameter, type, operatorOptions, and valueOptions) and global operatorOptions. No required parameters.
- **list_all_virtuous_gift_ask_status** — List all available Gift Ask statuses in Virtuous. Returns an array of gift ask status objects representing the status options that can be assigned to a Gift Ask record.
- **get_single_virtuous_gift_ask_by_contact_by_id** — Get gift asks for a specific contact in Virtuous by contact id. Returns a paged list of gift ask records including id, contactId, askAmount, askDate, askType, frequency, declined, status, and customFields. Required: id.
- **list_all_virtuous_gift_ask_custom_fields** — List all enabled custom fields available for the Gift Ask object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_gift_ask_query_options** — Get Gift Ask query options in Virtuous, describing the available filter parameters, their types, supported operators, and predefined value options for building Gift Ask queries. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_gift_designation_query_options** — List the available query options for gift designations in Virtuous, describing the parameters, operators, and value choices that can be used to filter gift designation queries. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. No required parameters.
- **get_single_virtuous_grant_by_reference_by_id** — Get a single Virtuous grant by its reference id. Returns the full grant object including id, contactId, contactName, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: id.
- **get_single_virtuous_grant_by_contact_by_id** — Get a paged list of grants associated with a contact in Virtuous. Returns each grant with id, contactId, giftType, giftDate, amount, grantId, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: id.
- **list_all_virtuous_grant_custom_fields** — List all enabled custom fields available for the Grant object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_grant_query_options** — Get grant query options in Virtuous, describing the available filter parameters, operators, and value options for querying grants. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **get_single_virtuous_organization_group_by_contact_by_id** — Get all organization groups associated with a specific contact in Virtuous. Returns an array of organization group binding objects including parentType and type. Required: id.
- **get_single_virtuous_planned_gift_by_contact_by_id** — Get all planned gifts for a specific contact in Virtuous. Returns a paged response with list and total, where each record includes id, plannedGiftDate, frequency, anticipatedAmount, currentValue, projectId, segment, and customFields. Required: id.
- **list_all_virtuous_planned_gift_custom_fields** — List all enabled custom fields available for the Planned Gift object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_planned_gift_query_options** — List the available query options for planned gift searches in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **get_single_virtuous_pledge_by_contact_by_id** — Get pledges for a contact in Virtuous by contact id. Returns a paged list of pledge records including id, contactId, giftType, amount, pledgePayments, giftDesignations, and customFields. This endpoint is deprecated. Required: id.
- **update_a_virtuous_pledge_cancel_by_id** — Cancel a pledge in Virtuous by id. Returns the cancelled pledge object including id, contactId, amountPledged, frequency, status, payments, and customFields. This endpoint is deprecated. Required: id.
- **create_a_virtuous_pledge_query** — Search pledges in Virtuous by submitting filter groups with conditions. Returns a paginated result with list and total, where each pledge item includes id, contactId, contactName, giftType, amount, giftDate, and customFields. This endpoint is deprecated; use the v2 Pledge Query endpoint instead.
- **list_all_virtuous_pledge_query_options** — List pledge query options in Virtuous. Returns available filter parameters, their types, applicable operators, and predefined value options for building pledge queries. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. This endpoint is deprecated; prefer the v2 equivalent.
- **get_single_virtuous_pledge_payment_by_id** — Get a pledge payment in Virtuous by pledge ID. Returns: id, gift. This endpoint is deprecated. Required: id.
- **update_a_virtuous_pledge_write_off_by_id** — Write off a Virtuous pledge by supplying a reason. Returns the updated pledge including id, contactId, amountPledged, frequency, pledgeDate, expectedFulfillmentDate, segment, project, status, payments, and customFields. The reason field has a maximum length of 100 characters. Required: id, reason.
- **list_all_virtuous_pledge_custom_fields** — List all enabled custom fields available for the Pledge object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **update_a_virtuous_premium_increment_by_id** — Increment the inventory count of a Virtuous premium by the specified incrementor value. Returns the updated premium object including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, and customFields. The incrementor parameter defaults to 1. Required: id.
- **update_a_virtuous_premium_decrement_by_id** — Decrement the inventory count of a Virtuous premium by a specified amount. Returns the updated premium object including id, name, code, description, price, fairMarketValue, cost, inventoryCount, isActive, createDateTimeUtc, modifiedDateTimeUtc, and customFields. The decrementor query parameter defaults to -1. Required: id.
- **list_all_virtuous_premium_custom_fields** — List all enabled custom fields available for the Premium object in Virtuous. Returns each field's dataType, name, displayName, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser.
- **create_a_virtuous_premium_query** — Query premiums in Virtuous using filter groups with conditions, sort options, and optional geographic location criteria. Returns a paged list of premium records including id, name, code, price, fairMarketValue, isActive, and customFields.
- **list_all_virtuous_premium_query_options** — List query options for premiums in Virtuous, describing available filter parameters, their data types, applicable operators, and predefined value choices. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **get_single_virtuous_project_code_by_id** — Get a project in Virtuous by its project code. Returns: id, name, description, type, location. Required: id.
- **virtuous_balances_bulk_update** — Update the balance for a Virtuous project. Returns the updated project object including id, projectCode, and projectType. Required: project_id.
- **virtuous_status_bulk_update** — Update the inventory status of a Virtuous project by project_id. Accepts an optional inventoryStatus value and a durationMinutes window. Returns an empty 200 response on success. Required: project_id.
- **list_all_virtuous_project_types** — List project types in Virtuous. Returns an array of project type name strings.
- **list_all_virtuous_project_query_options** — List the available query filter options for Virtuous projects, including filterable parameters, their data types, applicable operators, and predefined value choices. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_project_custom_fields** — List all enabled custom fields available for the Project object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_project_alls** — List all projects in Virtuous with optional filtering by project type, inventory status, or sub-projects only. Returns: id, name, revenueAccountingCode, projectCode, externalAccountingCode, onlineDisplayName, description, photoUrl, parentId, parentName, isSubProject, inventoryStatus, projectType, type, location, isRestrictedToGiftSpecifications, isLimitedToFinancialNeed, isPublic, isActive,…
- **list_all_virtuous_project_tops** — Search Top Projects. Returns: id, name, revenueAccountingCode, projectCode, externalAccountingCode, onlineDisplayName, description, photoUrl.
- **list_all_virtuous_sub_projects** — List sub-projects for a specific Virtuous project. Returns: list, total. This endpoint is deprecated. Required: project_id.
- **list_all_virtuous_project_expenses** — List project expenses in Virtuous, optionally filtered by project ID, project code, or a free-form filter string. Returns: id, projectId, projectName, projectCode, parentProjectId, parentProjectName, parentProjectCode, expenseAmount, expenseDate, accountingCode, expenseDescription, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser. All parameters are optional; the default…
- **create_a_virtuous_project_expense** — Create a new project expense in Virtuous. Returns the created project expense including id, contactId, giftDate, amount, currencyCode, giftDesignations, and customFields. A JSON request body conforming to the ProjectExpensePostBindingModel schema is required.
- **get_single_virtuous_project_expense_by_id** — Get a single project expense in Virtuous by id. Returns the full project expense object including id, contactId, amount, giftType, giftDate, currencyCode, giftDesignations, customFields, and isPrivate. Required: id.
- **update_a_virtuous_project_expense_by_id** — Update a project expense in Virtuous by id. Returns the updated project expense object including id, contactId, amount, giftType, giftDate, currencyCode, giftDesignations, customFields, and isPrivate. Required: id.
- **create_a_virtuous_project_expense_batch** — Post Project Expense Batch.
- **get_single_virtuous_project_note_by_project_by_id** — Get Project Notes. Returns: list, total. Required: id.
- **get_single_virtuous_project_note_by_id** — Get a single project note by id in Virtuous. Returns the note object including id, contactId, type, note, noteDate, important, isPrivate, createDateTimeUtc, createdByUser, and a nested reminder object. Required: id.
- **update_a_virtuous_project_note_by_id** — Update a project note by id in Virtuous. Excluding a property removes its value from the object. Returns the updated note including id, contactId, type, note, noteDate, important, isPrivate, createDateTimeUtc, createdByUser, and a nested reminder object. Required: id, type, note.
- **delete_a_virtuous_project_note_by_id** — Delete a project note in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **create_a_virtuous_project_note** — Create a project note in Virtuous. Returns the created note including id, contactId, type, note, noteDate, important, isPrivate, createDateTimeUtc, createdByUser, and a nested reminder object. Required: type, note, projectId.
- **list_all_virtuous_project_note_types** — List project note types available in Virtuous. Returns an array of project note type name strings. No required parameters.
- **get_single_virtuous_project_role_by_id** — Get a single project role in Virtuous by id. Returns: id. Required: id.
- **update_a_virtuous_project_role_by_id** — Update an existing project role in Virtuous by id. Returns: id. Required: id.
- **delete_a_virtuous_project_role_by_id** — Delete a project role in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **create_a_virtuous_project_role** — Create a new project role in Virtuous. Returns: id.
- **list_all_virtuous_project_role_types** — List project role types in Virtuous. Returns a paged collection with list and total, where each item includes parentType and type. Results can optionally be sorted by a specified field in ascending or descending order.
- **get_single_virtuous_project_role_by_contact_by_id** — Get Project Roles By Contact. Returns: list, total. Required: id.
- **get_single_virtuous_project_role_by_project_by_id** — List project roles for a specific project in Virtuous. Returns a paged collection with list and total. Required: id.
- **get_single_virtuous_recurring_gift_by_contact_by_id** — Get recurring gifts for a specific contact in Virtuous by contact id. Returns: list, total. Required: id.
- **update_a_virtuous_recurring_gift_cancel_by_id** — Cancel a recurring gift in Virtuous by id. Returns the updated recurring gift object including id, contactId, giftType, amount, giftDate, giftDesignations, recurringGiftPayments, and customFields. Required: id.
- **list_all_virtuous_recurring_gift_custom_fields** — List all enabled custom fields available for RecurringGift objects in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_recurring_gift_query_options** — Get the available query options for filtering recurring gifts in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **get_single_virtuous_recurring_gift_payment_by_id** — Get a single recurring gift payment in Virtuous by id. Returns: id, gift. Required: id.
- **get_single_virtuous_relationship_by_contact_by_id** — Get relationships for a specific contact in Virtuous by contact id. Returns a paged list of relationship records including id, contactId, contact, relatedContactId, relatedContact, relationshipType, notes, and relatedContactViewUrl. Required: id.
- **list_all_virtuous_relationship_types** — List relationship types in Virtuous. Returns: group, relationship, inverseRelationship, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **create_a_virtuous_relationship** — Create a new relationship between two contacts in Virtuous. Returns the created relationship object including id, contactId, contact, relatedContactId, relatedContact, relationshipType, notes, and relatedContactViewUrl. Required: contactId, relationshipType.
- **update_a_virtuous_relationship_by_id** — Update an existing relationship in Virtuous by id. Excluding a property from the body removes its value from the object. Returns the updated relationship including id, contactId, contact, relatedContactId, relatedContact, relationshipType, notes, and relatedContactViewUrl. Required: id, relationshipType.
- **delete_a_virtuous_relationship_by_id** — Delete a relationship in Virtuous by id. Returns an empty 200 response on success. Required: id.
- **list_all_virtuous_reminder_actives** — List active reminders in Virtuous with optional search, sort, and ordering filters. Returns each reminder with id, message, targetDate, contactId, contactDisplayName, reminderType, taskStatus, isPastDue, isUnresolved, canComplete, owner, and ownerAvatarUrl. No required parameters.
- **list_all_virtuous_reminder_saveds** — List saved reminder sources in Virtuous. Returns a paged collection of reminder source records (recurring and milestone reminder templates), each with an id and reminder source binding model attributes. Defaults to 10 records per page.
- **get_single_virtuous_active_by_id** — Get active reminders for a specific contact in Virtuous. Returns a paged list of reminders (list) with a total count (total). Required: id.
- **get_single_virtuous_inactive_by_id** — Get inactive reminders for a contact in Virtuous by contact id. Returns a paged list (list) with a total count, where each reminder includes id, message, targetDate, contactId, reminderType, taskStatus, and owner. Required: id.
- **get_single_virtuous_reminder_by_contact_by_id** — Get all reminders for a specific contact in Virtuous by contact id. Returns a paged list of reminder records including id, message, targetDate, reminderType, taskStatus, owner, and contact display details, plus a total count. Required: id.
- **update_a_virtuous_reminder_completed_by_id** — Mark a Virtuous reminder as completed by id. Returns the updated reminder object including id, message, targetDate, taskStatus, contactId, reminderType, and owner. Required: id.
- **update_a_virtuous_reminder_dismissed_by_id** — Dismiss a Virtuous reminder by id, marking it as dismissed. Returns the reminder object including id, message, targetDate, taskStatus, reminderType, contactDisplayName, and owner. Required: id.
- **create_a_virtuous_reminder** — Create a new reminder in Virtuous by submitting a request body conforming to the ReminderPostBindingModel. Returns the created reminder object including id, message, targetDate, contactId, reminderType, taskStatus, and owner. Required: message.
- **create_a_virtuous_saved_recurring** — Create a saved recurring reminder source in Virtuous. Returns the created reminder source object including id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser. Required: message.
- **update_a_virtuous_saved_recurring_by_id** — Update a saved recurring reminder source in Virtuous by id. Returns the updated reminder source object including id, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, and modifiedByUser. Excluding a property in the request body removes its value; the full model is required even for single-property updates. Required: id, message.
- **create_a_virtuous_saved_milestone** — Create a saved milestone reminder in Virtuous. A milestone reminder automatically generates reminders when contacts reach the configured milestoneType and threshold (e.g. a giving total or gift count); isFollowedContactsOnly limits it to contacts the owner follows and ownerEmail assigns the owner. Returns the saved reminder including id, name, reminderSourceType, milestoneType, threshold, description, reminderFrequency, and any generated reminders (id, message, targetDate, contactId, contactDisplayName, taskStatus, isPastDue). Required: name.
- **update_a_virtuous_saved_milestone_by_id** — Update a saved milestone reminder in Virtuous by id. Send the full model (taskType, name, description, threshold, isFollowedContactsOnly): excluding a property clears its value. Returns the updated saved reminder including id, name, reminderSourceType, milestoneType, threshold, description, reminderFrequency, and its reminders. Required: id, name.
- **list_all_virtuous_type_reminders** — List available reminder types in Virtuous. Returns a dictionary of reminder type enum values as key-value string pairs.
- **list_all_virtuous_type_resolutions** — List reminder resolution types in Virtuous. Returns a dictionary mapping resolution type identifiers to their string display values. This endpoint is deprecated.
- **list_all_virtuous_type_status** — List reminder status types in Virtuous. Returns a dynamic key-value map of status identifiers to their display labels. This endpoint is deprecated.
- **list_all_virtuous_type_reminder_sources** — List reminder source types in Virtuous. Returns a map of source type identifiers to source type names, where all values are strings.
- **list_all_virtuous_type_milestones** — List milestone reminder types in Virtuous. Returns a map (object) whose keys are milestone type identifiers and whose values are their corresponding string display names.
- **list_all_virtuous_type_reminder_frequencies** — List reminder frequency types available in Virtuous. Returns a dynamic map of frequency type identifiers (keys) to their display-name strings (values). No required parameters.
- **create_a_virtuous_search** — Search across Virtuous CRM records using a quick search query. Returns: contacts, individuals, entities. Required: query, filterTypes.
- **get_single_virtuous_segment_code_by_id** — Get Segment By Code. Returns: id, name, description, code, projectId, projectName, communicationId, communicationName. Required: id.
- **get_single_virtuous_segment_by_contact_by_id** — Get Segments By Contact. Returns: list, total. Required: id.
- **create_a_virtuous_segment_query** — Query segments in Virtuous. Filters are groups of conditions (parameter, operator, value; optional secondaryValue/values), combined with a conjunct (0 = And, 1 = Or), plus sortBy, descending and includeArchived. Use segment_query_options.list to discover the available filter parameters and operators. Paginated with skip/take (max take 1,000). Returns a list of segments with id, name, description, code, projectId, projectName, communicationId, communicationName, campaignId, campaignName, segmentOrganizerId, packageCode, packageDescription, totalContacts, costPerContact, totalGiftAmount, totalGifts, plus total.
- **list_all_virtuous_segment_query_options** — List available query options for Virtuous segments, including filterable parameters, supported operators, and predefined value choices. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_task_types** — List task types available in Virtuous. Returns an array of task type name strings.
- **create_a_virtuous_task_query** — Search tasks in Virtuous by submitting query conditions in the request body. Returns: list, total. Available filter parameters and operators can be discovered via the Task Query Options endpoint. Max take is 1000.
- **list_all_virtuous_task_query_options** — List available query filter options for Tasks in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires. No required parameters.
- **list_all_virtuous_tests** — Test connectivity to the Virtuous API by issuing a GET request to the Test endpoint. Returns an empty 200 response on success, confirming that authentication and API access are working correctly.
- **list_all_virtuous_test_users** — List test users in Virtuous. Returns a 200 OK response; this is a test endpoint for verifying API connectivity and no response body fields are documented in the API specification.
- **list_all_virtuous_test_application_keys** — Test the validity of an application API key in Virtuous. Returns a 200 OK response with no documented response body, confirming the key is accepted.
- **list_all_virtuous_test_hmac_keys** — Test HMAC key authentication in Virtuous by calling the TestHMACKey endpoint. Verifies that HMAC authentication credentials are valid and the API is reachable. Returns a 200 OK response with no body on success.
- **list_all_virtuous_search_tributes** — Search for tributes in Virtuous by first name, last name, city, state, or tribute type. Returns: id, tributeType, firstName, lastName, address1, address2, city, state, postalCode, defaultAcknowledgeeIndividualId, defaultAcknowledgeeIndividualUrl, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser. All filters are optional.
- **list_all_virtuous_volunteer_query_options** — List available query filter options for volunteers in Virtuous. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_attendances** — List volunteer attendance records for a specific volunteer within a volunteer opportunity in Virtuous. Returns: id, hours. Required: volunteer_id, volunteer_opportunity_id.
- **create_a_virtuous_attendance** — Create a new volunteer attendance record in Virtuous for a specific volunteer within a volunteer opportunity. Returns: id, hours. Required: volunteer_opportunity_id, volunteer_id, timeZone.
- **update_a_virtuous_attendance_by_id** — Update an existing volunteer attendance record in Virtuous by id. Returns: id, hours. Required: id, volunteer_opportunity_id, timeZone.
- **delete_a_virtuous_attendance_by_id** — Delete a volunteer attendance record in Virtuous by id. Returns an empty 200 response on success. Required: id, volunteer_opportunity_id.
- **get_single_virtuous_attendance_by_id** — Get a single volunteer attendance record in Virtuous by id. Returns: id, hours, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id, volunteer_opportunity_id.
- **update_a_virtuous_volunteer_opportunity_archive_by_id** — Archive a volunteer opportunity in Virtuous by id. An optional archiveReason may be supplied in the request body. Returns an empty 204 response on success. Required: id.
- **update_a_virtuous_volunteer_opportunity_unarchive_by_id** — Unarchive a volunteer opportunity in Virtuous by id. Returns an empty 204 response on success. Required: id.
- **list_all_virtuous_volunteer_opportunity_custom_fields** — List all enabled custom fields available for the Volunteer Opportunity object in Virtuous. Returns: id, dataType, entityType, formatter, name, displayName, isEnabled, options, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_volunteer_opportunity_query_options** — List volunteer opportunity query options in Virtuous, describing the available filter parameters, their types, valid operators, and predefined value options. Returns: options, operatorOptions, access_token, token_type, expires_in, refresh_token, userName, twoFactorEnabled, .issued, .expires.
- **list_all_virtuous_organizers** — List organizers for a volunteer opportunity in Virtuous. Returns: id, parentType, type. Required: volunteer_opportunity_id.
- **create_a_virtuous_organizer** — Create a new organizer for a volunteer opportunity in Virtuous. Returns the created organizer object including id, parentType, and type. Required: volunteer_opportunity_id, contactIndividualId.
- **delete_a_virtuous_organizer_by_id** — Delete a volunteer organizer from a volunteer opportunity in Virtuous. Returns an empty 200 response on success. Required: id, volunteer_opportunity_id.
- **get_single_virtuous_organizer_by_id** — Get a single volunteer organizer from a volunteer opportunity in Virtuous. Returns the volunteer organizer binding model including its id. Required: id, volunteer_opportunity_id.
- **list_all_virtuous_event_contacts** — Get Event Contacts. Returns: id, eventContactUrl, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, contactId, contactUrl. Required: event_id.
- **create_a_virtuous_event_contact** — Create a new event contact in Virtuous by associating a contact with an event. Returns: id, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: event_id, contactIndividualId.
- **get_single_virtuous_event_contact_by_id** — Get Event Contact By Id. Returns: id, eventContactUrl, createDateTimeUtc, createdByUser, modifiedDateTimeUtc, modifiedByUser, contactId, contactUrl. Required: id, event_id.
- **delete_a_virtuous_event_contact_by_id** — Delete a Virtuous event contact by id. Returns an empty 200 response on success. Required: id, event_id.
- **list_all_virtuous_organization_group_contacts** — List contacts belonging to a specific organization group in Virtuous. Returns: organizationGroupId, organizationGroupUrl, organizationId, organizationName, organizationGroupName, organizationGroupLocation, organizationGroupDescription, contactId, contactName, contactUrl. Required: organization_group_id.
- **update_a_virtuous_organization_group_contact_by_id** — Assign a contact to an organization group in Virtuous. Returns the binding with organizationGroupId, organizationGroupName, contactId, contactName, organizationGroupUrl, and contactUrl. Required: id, organization_group_id.
- **list_all_virtuous_gift_ask_gifts** — List gifts applied to a specific Gift Ask in Virtuous. Returns an array of full gift objects including id, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, giftPremiums, pledgePayments, recurringGiftPayments, and customFields. Required: gift_ask_id.
- **list_all_virtuous_grant_gifts** — List gifts applied to a specific grant in Virtuous. Returns each gift's id, giftType, amount, giftDate, contactName, grantId, giftDesignations, isPrivate, isTaxDeductible, and customFields. Required: grant_id.
- **list_all_virtuous_planned_gift_gifts** — List gifts applied to a planned gift in Virtuous. Returns an array of gift objects including id, transactionSource, contactId, giftType, giftDate, amount, currencyCode, giftDesignations, isPrivate, isTaxDeductible, and customFields. Required: planned_gift_id.
- **get_single_virtuous_pledge_v_2_by_id** — Get a single Virtuous pledge by id. Returns: id, frequency, segment, project, status, payments, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id.
- **create_a_virtuous_pledge_v_2** — Create a new pledge in Virtuous. Returns the created pledge including id, contactId, amountPledged, frequency, pledgeDate, expectedFulfillmentDate, status, payments, and customFields. Required: amountPledged, frequency, pledgeDate, expectedFulfillmentDate, contactId.
- **list_all_virtuous_pledge_v_2** — Query pledges in Virtuous using filter groups with conditions, sorting, and descending order. Returns pledge records including id, contactId, amountPledged, frequency, pledgeDate, expectedFulfillmentDate, status, payments, and customFields.
- **get_single_virtuous_pledge_by_contacts_v_2_by_id** — Get a paged list of pledges for a specific contact in Virtuous by contact id. Returns each pledge with id, contactId, amountPledged, frequency, pledgeDate, status, payments, and customFields. Required: id.
- **list_all_virtuous_pledge_query_options_v_2** — List the available query options for pledges in Virtuous, describing each filterable parameter, its type, the operators that apply to it, and any pre-defined value choices. Returns: options, operatorOptions, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Use this metadata to construct filter conditions for the…
- **create_a_virtuous_contact_individual_collection** — Create a custom collection instance for a contact individual in Virtuous. Returns: customCollectionId, customCollectionName, collectionInstanceId, fields, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: contact_individual_id, custom_collection_id.
- **update_a_virtuous_contact_individual_collection_by_id** — Update a custom collection instance for a contact individual in Virtuous. Returns: customCollectionId, customCollectionName, collectionInstanceId, fields, organizationUserId, organizationName, organizationTimeZone, organizationCulture, currentUserTimeZone, isAdministrator, isEnabled. Required: id, contact_individual_id.
- **delete_a_virtuous_contact_individual_collection_by_id** — Delete a collection instance for a contact individual in Virtuous. Returns an empty 200 response on success. Required: id, contact_individual_id.
- **virtuous_webhook_active_bulk_update** — Toggle the active flag on a Virtuous webhook subscription in a single call. Pass the active query parameter as true to enable event delivery or false to pause it. Returns the updated webhook subscription object including id, payloadUrl, secret, active, and all event subscription flags. Required: id.
- **create_a_virtuous_gift_transactions_v_2** — Create a batch of gift transactions in Virtuous. Transactions are placed in a holding state and bundled into imports at midnight based on the transaction source, leveraging Virtuous contact and gift matching algorithms. Returns an empty 200 response on success.

## How it works

1. **Link your customer's Virtuous account.** Use Truto's frontend SDK; we handle every OAuth and API key flow so you don't need to create the OAuth app.
2. **Authentication is automatic.** Truto refreshes tokens, stores credentials securely, and injects them into every API request.
3. **Call Truto's API to reach Virtuous.** The Proxy API is a 1-to-1 mapping of the Virtuous API.
4. **Get a unified response format.** Every response uses a single shape, with cursor-based pagination and data in the `result` field.

## Use cases

- **Push online donations into nonprofit CRMs without creating duplicates** — Donation, peer-to-peer, and giving platforms can send real-time transactions into Virtuous through the Import Transaction endpoints, letting Virtuous's matching engine dedupe donors and households before the gift posts. This makes your platform safe to plug into any nonprofit without polluting their database.
- **Enrich new donors with wealth and prospect data automatically** — Wealth screening and prospect research tools can subscribe to Virtuous contact-create webhooks, pull individual details, and write back capacity ratings or propensity scores into custom fields. Major gift officers see enriched profiles the moment a donor enters the CRM.
- **Sync gala tickets, attendees, and auction purchases** — Event and auction platforms can create attendees against Virtuous events, decrement premium inventory as auction items sell, and log gifts with the correct fair-market-value premium attached. Nonprofits get accurate tax receipting and a full picture of event revenue in one place.
- **Log volunteer hours against opportunities and donor profiles** — Volunteer management platforms can pull open volunteer opportunities from Virtuous and post attendance records back when shifts complete. Nonprofits get a unified view of giving and service on each contact — a strong predictor of future donations.
- **Sync marketing segments, tags, and email lists bi-directionally** — Email, direct-mail, and marketing automation platforms can read and write Virtuous segments, tags, and email lists to keep audiences aligned across systems. Marketers stop maintaining lists in two places and can trigger campaigns from Virtuous data.

## What you can build

- **Intelligent donation import** — Push web donations through the Virtuous V2 gift transaction endpoint so Virtuous handles household deduplication, contact matching, and project designation before committing the gift.
- **Event-driven contact enrichment** — Register webhooks for contact and gift events, then write appended data back to Virtuous custom fields, notes, or tags on the individual or household record.
- **Recurring giving management** — Create, update, and cancel recurring gifts and pledges in Virtuous, and read payment history so donors can manage their own subscriptions from inside your product.
- **Event and attendee sync** — List Virtuous events, create attendees and invitations, manage organizers, and adjust premium inventory as auction items or ticket tiers sell out.
- **Project and designation picker** — Surface a live list of Virtuous projects, sub-projects, and designations inside your donation form or checkout so donors can restrict gifts to the correct fund at the point of giving.
- **Advanced donor and gift queries** — Use Virtuous's dynamic query endpoints for contacts, gifts, pledges, and segments to power reporting, cohort exports, or trigger-based automations with AND/OR filter logic.

## FAQs

### How does authentication with Virtuous work?

Virtuous uses OAuth-style token authentication via its token endpoint. Truto handles the token exchange, refresh, and organization selection so your end users only see a standard connect flow — no API keys to paste.

### Should we create gifts directly or use the transaction import endpoint?

For donations originating from your platform, always use the gift transaction import endpoints (including the V2 variant). Virtuous explicitly recommends this over direct gift creation because it runs household matching and duplicate prevention before posting the gift.

### Does Virtuous support webhooks for real-time updates?

Yes. You can create and manage webhooks through Truto for events like contact creation, gift creation, project updates, form submissions, and event creation, enabling fully event-driven integrations instead of polling.

### How do we handle custom fields and custom collections?

Virtuous exposes custom field and custom collection endpoints for contacts, individuals, gifts, events, projects, and more. You can list available field names, read values, and write updates so nonprofit-specific data models are preserved.

### How is the Contact vs. Individual model handled?

Virtuous uses a household model where a Contact represents a household, company, or foundation and an Individual is a person within it. The available endpoints let you create and update both levels independently, and lookups by reference ID make it easy to link records from your system.

### Can we filter and query records beyond simple list endpoints?

Yes. Virtuous offers dynamic query endpoints for contacts, gifts, pledges, segments, projects, tasks, events, and volunteers that support complex AND/OR conjuncts and comparison operators, which is essential for reporting and segmentation use cases.

## Related reading

- [Connect Virtuous to Claude: Sync Pledges, Projects, and Grants](https://truto.one/blog/connect-virtuous-to-claude-sync-pledges-projects-and-grants/) — Learn how to build a managed MCP server to connect Virtuous CRM to Claude. Automate donor profiles, pledges, and grant workflows using natural language.
- [Connect Virtuous to ChatGPT: Manage Donors, Gifts, and Communications](https://truto.one/blog/connect-virtuous-to-chatgpt-manage-donors-gifts-and-communications/) — Learn how to connect Virtuous to ChatGPT using a managed MCP server. This step-by-step guide covers how to bypass Virtuous API complexities and automate donor workflows.
- [Connect Virtuous to AI Agents: Automate Events, Tasks, and Volunteers](https://truto.one/blog/connect-virtuous-to-ai-agents-automate-events-tasks-and-volunteers/) — Learn how to connect Virtuous to AI agents using Truto's /tools endpoint. Step-by-step guide to automating events, volunteer coordination, and donor workflows.
