v1

latestOpenAPI 3.1.02026-07-261770816.7 KB
Email Templates

List email templates

Email templates are reusable subject/body pairs your organization uses to communicate with candidates, prospects, and the hiring team. Each template is categorized by email_type (e.g. candidate_rejection, interviewer_invite, extending_offer), which determines where it appears in the UI and which merge tokens — like {{CANDIDATE_FIRST_NAME}} or {{JOB_NAME}} — are valid in its subject and body. Templates are either organization-wide (available to every user who can send that email_type) or personal to a single user (user_id). The body is returned as html_body for HTML notification types and body for plain-text types — exactly one of the two is populated for any given template.

get/v3/email_templates

Query parameters

cursorstring

Cursor link for pagination from previous page response header. Do not use any other parameters when using this.

per_pageinteger

Number of results per page

idsinteger[]

Comma separated list

gtestring date-time
ltestring date-time
gtstring date-time
ltstring date-time
gtestring date-time
ltestring date-time
gtstring date-time
ltstring date-time
fieldsstring[]

Comma separated list of fields to return

email_type'candidate_auto_reply' | 'new_candidate' | 'new_internal_candidate' | 'new_referral' | 'new_agency_submission' | 'candidate_hired' | 'approved_to_start_recruiting' | 'offer_fully_approved' | 'job_closed' | 'candidate_rejection' | 'weekly_status' | 'scorecard_reminder' | 'scorecard_repeat_reminder' | 'interviewer_invite' | 'take_home_test_email' | 'daily_recruiting' | 'stage_transition' | 'scorecard_progress' | 'agency_candidate_status' | 'agency_candidate_stage' | 'candidate_email' | 'team_email' | 'none' | 'extending_offer' | 'non_admin_welcome' | 'job_admin_welcome' | 'site_admin_welcome' | 'prospect_referral_receipt' | 'candidate_referral_receipt' | 'candidate_availability_request' | 'candidate_availability_confirmation' | 'approval_request' | 'eeoc_data_request' | 'event_prospect_auto_reply' | 'job_post_request' | 'gdpr_notification' | 'stage_change_for_followers' | 'rejection_for_followers' | 'calendly_request' | 'gdpr_consent_extension' | 'agency_recruiter_assigned' | 'slack_mentions' | 'candidate_self_schedule_request' | 'sourcing_automation_step' | 'candidate_survey' | 'esignature_request' | 'scheduling_link_confirmation' | 'talent_matching_summary' | 'identity_verification_request' | 'identity_verification_daily_digest'

Filter by notification category (e.g. candidate_email, candidate_rejection, interviewer_invite). Matches the email_type field on the response. Pass none to retrieve uncategorized custom templates.

from_type'user_email' | 'organization_email' | 'my_email_address' | 'inviter' | 'organizer' | 'not_applicable'

Filter by how the sender's address is resolved at send time. See the from_type field on the response for the meaning of each value.

Response

Successful

idinteger
created_atstring date-time
updated_atstring date-time
email_type'candidate_auto_reply' | 'new_candidate' | 'new_internal_candidate' | 'new_referral' | 'new_agency_submission' | 'candidate_hired' | 'approved_to_start_recruiting' | 'offer_fully_approved' | 'job_closed' | 'candidate_rejection' | 'weekly_status' | 'scorecard_reminder' | 'scorecard_repeat_reminder' | 'interviewer_invite' | 'take_home_test_email' | 'daily_recruiting' | 'stage_transition' | 'scorecard_progress' | 'agency_candidate_status' | 'agency_candidate_stage' | 'candidate_email' | 'team_email' | 'none' | 'extending_offer' | 'non_admin_welcome' | 'job_admin_welcome' | 'site_admin_welcome' | 'prospect_referral_receipt' | 'candidate_referral_receipt' | 'candidate_availability_request' | 'candidate_availability_confirmation' | 'approval_request' | 'eeoc_data_request' | 'event_prospect_auto_reply' | 'job_post_request' | 'gdpr_notification' | 'stage_change_for_followers' | 'rejection_for_followers' | 'calendly_request' | 'gdpr_consent_extension' | 'agency_recruiter_assigned' | 'slack_mentions' | 'candidate_self_schedule_request' | 'sourcing_automation_step' | 'candidate_survey' | 'esignature_request' | 'scheduling_link_confirmation' | 'talent_matching_summary' | 'identity_verification_request' | 'identity_verification_daily_digest'

Notification category that determines where the template is offered in the UI and which merge tokens are valid. Values include candidate_email, candidate_rejection, interviewer_invite, scorecard_reminder, extending_offer, candidate_auto_reply, and the other entries of this enum. none marks a custom, uncategorized template.

subjectstring

Subject line sent on the email. May contain merge tokens (e.g. {{CANDIDATE_FIRST_NAME}}) that are substituted with live values at send time.

bodystring nullable

Plain-text body of the template, returned for templates whose notification type is plain text (e.g. interviewer_invite, esignature_request). null for HTML templates — see html_body instead. May contain merge tokens that are substituted at send time.

user_idinteger nullable

Id of the Greenhouse user who owns this personal template. null for organization-wide templates, which are owned by the organization and available to every user who can send the template's email_type.

namestring

Recruiter-facing label identifying the template in Send email dropdowns (e.g. Reject - Phone Screen, Offer - Engineering). Unique among active templates of the same email_type within the same owner scope.

descriptionstring nullable

Internal note explaining when to use the template, shown to recruiters underneath the template name in the configuration UI. Plain text, not sent to candidates.

recipientsstring nullable

Comma-separated list of additional email addresses that are CC'd on every send. null when no extra recipients are configured. Used in addition to — not instead of — cc_recruiter and cc_coordinator.

defaultboolean

If true, this template is the organization's default for its email_type and is preselected in any workflow that auto-attaches a template (e.g. candidate auto-replies, scorecard reminders). At most one template per email_type can be the default.

html_bodystring nullable

HTML body of the template, returned for templates whose notification type is HTML (most candidate-facing types — see NotificationType). null for plain-text templates — see body instead. Sanitized server-side; may contain merge tokens substituted at send time.

office_anywhereboolean nullable

If true, the template is available to hiring plans for any office. If false, the template is scoped to a specific subset of offices configured on the template. null for legacy templates predating office scoping.

from_type'user_email' | 'organization_email' | 'my_email_address' | 'inviter' | 'organizer' | 'not_applicable'

How the sender's address is resolved at send time. user_email uses a shared communal email address configured on the template, organization_email uses one of the org's verified global addresses, my_email_address substitutes the sending user's address, inviter is used for welcome emails (resolves to the user inviting the new user), organizer is used for scorecard reminders (resolves to the interview organizer), and not_applicable is reserved for interviewer_invite and esignature_request templates that are sent from external services.

cc_recruiterboolean

If true, the candidate's job recruiter is added to the cc list every time the template is sent, in addition to recipients.

cc_coordinatorboolean

If true, the candidate's job coordinator is added to the cc list every time the template is sent, in addition to recipients.