1.0.28
5 days ago by Adam Mazur
US address fields
Address handling on Applications, Candidates and Job Seekers changed in May 2026 so that the fields you read and write are semantically correct for US records.
Previously, US addresses reused address2 to hold the city and town to hold the state, which meant integrations had to know about the quirk. Now:
- A new
state_provinceattribute holds the state for US records, andnullfor non-US records. townalways holds the city, for every country.address2holds address line 2 for non-US records, and returnsnullfor US records.- Writing
address2on a US record is rejected. Writingstate_provinceon a non-US record is rejected. Both restrictions are temporary and will be lifted once the underlying address model is migrated. - Changing
countryacross the US/non-US boundary requires you to supply the new address fields in the same request, otherwise the request is rejected. - Validation errors that used to be reported against
townfor US records are now reported againststate_province.
If you read address2 or town for US candidates, update your mapping to town (city) and state_province (state).
New: Background Checks (api/v1/background_checks)
api/v1/background_checks)- New resource —
index,show,createandupdateare available, so a background check provider can push requests and results into Pinpoint against an application (Apr 2026) - Attributes:
name,status,result,result_url,external_uid,provider_code,is_completed,result_details(read-only),application_id,created_at,updated_at provider_codeidentifies your service. It must be one of the registered custom providers — useexample_checkwhile you build- Set
is_completed: truewhen you send the finalstatusandresult. This applies the configured tags to the application and sends the relevant notifications, so only send it once the check is genuinely finished result_urlis the link to your report (PDF or results page in your own UI).resultis the overall outcome or score, e.g.clear,consider,4/5- Updates are only permitted on checks created through the API by a custom provider. Checks owned by a native Pinpoint integration or an integration plugin are read-only over the API, and the
applicationrelationship cannot be reassigned after creation - Filters:
status,provider_code,external_uid,application_id,created_at,updated_at. Sortable oncreated_atandupdated_at.?include=applicationis supported - See the Background Checks guide for the end-to-end flow
New: One-way Video Interviews (api/v1/one_way_video_interviews)
api/v1/one_way_video_interviews)- New read-only resource —
indexandshow, for reporting on one-way (asynchronous) video interviews (May 2026) - Attributes:
status(Completed/Incomplete),sent_at,responded_at,interview_name,interview_description,num_questions,interview_stage,application_id,created_at,updated_at - Extra attributes (request with
extra_fields):total_time_spent_mins— how long the candidate spent recording;time_to_complete_hours— elapsed hours between the invite being sent and the candidate responding - Filters:
status,application_id,job_id,job_visibility. Sortable oncreated_atandupdated_at.?include=applicationis supported
Applications (api/v1/applications)
api/v1/applications)- Added
uuidattribute and filter — a stable identifier for the application that is safe to share with third parties, unlike the sequentialid(May 2026) - Added
external_system_reference(read, write, filter) — store the ID or reference the record came from in your own system, and look records back up by it (Jun 2026) - Added
preferred_name(read/write) (Jun 2026) - Added
state_provinceand changed US address field semantics — see the heads-up above (May 2026) hired_atis now writable on create and update (Apr 2026)- Added
ai_score— a read-only object containing Pinpoint's AI Match Score for the application (status,score,verdict,strengths,concerns,interview_focus,scored_at). Returnsnullwhen AI Match Score is not enabled for the company or no score exists yet (May 2026) - Added
documents_base64write-only array — attach one or more supporting documents on create or update, each as{ "data": "<base64 data URI>", "filename": "report.pdf" }. Accepted types:pdf,doc,docx,png,jpeg,xls,xlsx,pptx,mp4,mov,txt. Maximum 10 MB per file (Apr 2026) - Added
cover_letter_base64_dataandcover_letter_base64_filenamewrite-only attributes — upload a cover letter the same way as a CV. Accepted types:pdf,doc,docx,txt,rtf. Maximum 30 MB (May 2026) - A CV can now be added or replaced on the Update Application endpoint, not just on create. Useful for backfilling a resume that was missed during a migration, or replacing the wrong file. Assigning a CV replaces any existing attachment (Jun 2026)
- Added
job_postingrelationship, settable on create — record which posting the application came through. The posting must belong to the same job as the application, otherwise the request is rejected. The relationship cannot be changed on update (Jun 2026) - Added
furthest_stagerelationship (read-only) — the furthest stage the application has reached, which may be ahead of the currentstageif the candidate was moved back (May 2026) - Added
candidate_phonefilter — look an application up by the candidate's phone number, alongside the existingcandidate_emailfilter (Apr 2026) - Added
concealedfilter — restrict results to applications a viewer is allowed to see under blind screening, or to the concealed ones only (May 2026) - Applications created via the API can now be blocked as cross-job duplicates. If the company has opted out of cross-job duplicate candidates and the email address has already applied to a different job at that company, the create request is rejected with a clear error naming the conflicting application, instead of the duplicate being created and then obfuscated (Jun 2026)
- Fixed: tag writes that omit
tagnow return a validation error.add_tag_with_context,add_tags_with_contextandremove_tag_with_contextpreviously returned200while silently persisting nothing. Tag context names are also now sanitised (May 2026) - Fixed: the optional per-stage-group
<stage_group>_stage_atattributes (enabled by a company setting) no longer leak another company's stage group names into your response, now honour sparse fieldsets (fields[applications]), and no longer error when a stage group name begins with a digit (Apr and Jul 2026)
Candidates (api/v1/candidates)
api/v1/candidates)- Added
blockedattribute (read/write) and ablockedfilter — read or set whether a candidate is blocked. Candidates with no value recorded are treated as not blocked when filtering (May 2026) - Added
preferred_name(read/write) (Jun 2026) - Added
external_system_reference(read, write, filter) (Jun 2026) - Added
state_provinceand changed US address field semantics — see the heads-up above (May 2026) - Added
phonefilter — look a candidate up by phone number (Apr 2026)
Job Seekers (api/v1/job_seekers)
api/v1/job_seekers)- Added
preferred_name(read/write) (Jun 2026) - Added
external_system_reference(read, write, filter) (Jun 2026) - Added
state_provinceand changed US address field semantics — see the heads-up above (May 2026) - Fixed: tag writes that omit
tagnow return a validation error rather than a silent200(May 2026)
Jobs (api/v1/jobs)
api/v1/jobs)- Added
uuidattribute and filter — a stable identifier for the job that is safe to share with third parties (Apr 2026) - Added
external_system_reference(read, write, filter) (Jun 2026) requisition_idis now filterable, so you can find a job by the requisition reference you already hold (Jun 2026)hiring_manager_userandrecruitment_manager_userrelationships are now writable on create and update. Previously these were documented as relationships but writes did not take effect (Apr 2026)- Added
assigned_onboarding_candidate_owner_user_idandassigned_onboarding_candidate_owner_user_emailextra attributes (request withextra_fields) — the user who will be set as candidate owner when someone is moved into onboarding on this job (Jul 2026) - When creating a job without a
diversity_monitoringvalue, the company's default diversity monitoring setting is now applied instead of the field being left unset (Jun 2026) - Fixed:
filled_atis now derived from the job's audit trail rather than fromclosed_at, so it reflects when the job was actually marked as filled. Previously it returned the close date, and returnednullfor jobs that were filled without being closed (May 2026) - Fixed: the
searchfilter no longer returns an empty result set for common search terms. Search is now scoped to your own jobs before matching, so results are no longer lost to a global result-size limit (May 2026)
Job Postings (api/v1/job_postings)
api/v1/job_postings)urlandapplication_form_urlnow use the company's custom careers domain when one is configured, instead of always returning the*.pinpointhq.comsubdomain. The same fix applies to thepostings.jsonjob feed (Jun 2026)
Comments (api/v1/comments)
api/v1/comments)- Added delete —
DELETE /api/v1/comments/{id}removes a comment created through the API (Jul 2026) categoryis now accepted on write with the valuenote. Previously sending it returned a422. Comments created via the API are always notes, so the value is advisory (May 2026)
Users (api/v1/users)
api/v1/users)- Added
last_sign_in_at(read-only) — when the user last signed in to Pinpoint (Jun 2026) - Added
emailfilter — look a user up by email address (Jun 2026) - Fixed:
access_group_idis now returned on read requests, and is resolved for the company the API key belongs to. It was previously writable but absent from responses (May 2026)
Candidate Surveys (api/v1/candidate_surveys)
api/v1/candidate_surveys)- Added
answerssideload (read-only) — fetch a survey together with its answers using?include=answers(May 2026)
Candidate Assessments (api/v1/candidate_assessments)
api/v1/candidate_assessments)- Creating an assessment without an explicit
statusnow defaults topendinginstead of failing (Apr 2026) - The
statusattribute documentation now lists every allowed value (Apr 2026)
Equality Monitoring Categories (api/v1/equality_monitoring_categories)
api/v1/equality_monitoring_categories)- Added
equality_monitoring_template_idattribute and filter, plus anequality_monitoring_templaterelationship — you can now tell which template a category belongs to and filter categories by template (Jun 2026)
external_system_reference on structural resources
external_system_reference on structural resourcesexternal_system_reference was added across the resources most often used for mapping data from another system (Jun 2026):
- Departments — read, write, filter
- Locations — read, write, filter
- Structure Custom Group Ones — read, write, filter
- Hiring Workflows — read, filter
- Stages — read, filter (available when sideloaded, e.g.
?include=stage)
Performance
- Custom Attributes reads now eager-load the data behind
value,option_valueandoption_label, removing a large number of per-record queries on big result sets (May 2026) - The
job_visibilityfilter on Interviews uses a faster query path, which materially reduces response times for companies with a lot of interview history (May 2026)
