Request Validation for interviewStage.info
7 days ago
interviewStage.infonow enforces request body validation via the documented schema; invalidinterviewStageIdvalues will be rejected before reaching the handler.
interviewStage.info now enforces request body validation via the documented schema; invalid interviewStageId values will be rejected before reaching the handler.applicationForm.submit now correctly accepts null for utmData and its individual fields (utm_source, utm_medium, utm_campaign, utm_term, utm_content) again. Sending {"utmData": {"utm_source": null}} or {"utmData": null} was returning invalid_input after Zod validation was added in the presigned file upload release on April 14; this has been fixed. Omitting utmData or passing valid string values continues to work as before.applicationForm.submit now accepts application/json requests in addition to multipart/form-data. When using JSON, file field values should contain a handle obtained from file.createFileUploadHandle.file.createFileUploadHandle now supports the ApplicationForm context for uploading files that will be attached to application form submissions.multipart/form-data submissions continue to work unchanged.offer.create now returns specific error codes instead of a generic internal_server_error when the request fails due to a problem with the referenced opening:
opening_in_use — the opening is already in use by another offer.opening_state_invalid — the opening has already been closed or filled by a different application.notetakerTranscript.info now returns specific error codes instead of a generic notetaker_transcript_not_found when the request fails due to missing prerequisites:
notetaker_transcript_api_not_enabled — the endpoint has not been enabled for your organization (early access).notetaker_transcript_not_enabled — your organization does not have AI Notetaker enabled.notetaker_transcript_expired — the transcript has expired on the free tier.notetakerTranscriptId field to the InterviewEvent object returned by interviewEvent.list and interviewSchedule.list. This field contains the ID of the AI Notetaker transcript recording for the event, or null if no transcript exists.notetakerTranscript.info endpoint (Beta) to fetch transcript metadata and a pre-signed download URL for the raw transcript JSON. The URL is valid for 5 minutes. The response includes participant information (interviewers and candidate) resolved from the interview schedule. Contact your Ashby account team to enable this feature.application.delete now returns the deleted applicationId in the response results object.user.list now correctly accepts null for the cursor and syncToken request fields again. Sending {"cursor": null} to fetch the first page was returning invalid_input after the recent Zod validation migration; this has been fixed. Omitting the fields or passing a valid string value continues to work as before.candidate.setFraudStatus endpoint to set a candidate's fraud status to Fraudulent, NotFraudulent, or Unsure. Requires the candidatesWrite permission and the Fraud Detection feature to be enabled.fraudStatus field to the candidate.info response. Returns the candidate's fraud review status (Fraudulent, NotFraudulent, Unsure, Unreviewed, PassedFraudCheck, or null).candidate.listFraudChecks endpoint to retrieve paginated fraud checks and their associated fraud signals for a candidate.candidatesRead permission and the Fraud Detection feature to be enabled.