{"openapi":"3.1.0","info":{"version":"1.0.0","title":"Ashby API","description":"The public API for accessing resources in your Ashby instance.","contact":{"name":"Ashby Support","url":"https://app.ashbyhq.com/support","email":"support@ashbyhq.com"}},"servers":[{"url":"https://api.ashbyhq.com"}],"tags":[{"name":"ashby","description":"The Ashby API"}],"paths":{"/apiKey.info":{"post":{"summary":"apiKey.info","description":"Retrieve information about the API key being used to make the request.\n\n**Requires the [`apiKeysRead`](authentication#permissions-apikeyinfo) permission.**\n","operationId":"apiKeyInfo","tags":["API Key"],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Responses for the apiKey.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"title":{"type":"string","description":"The name of the API key.","example":"Custom Job Board API key"},"createdAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"scopes":{"type":"array","description":"List of permission scopes that this API key is authorized for.","items":{"type":"string"},"example":["jobs:read","candidates:read"]}}}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}},"security":[{"BasicAuth":[]}]}},"/application.changeSource":{"post":{"summary":"application.changeSource","operationId":"applicationChangeSource","description":"Change the source of an application.\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationchangesource) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to update the source of"}]},"sourceId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The source to set on the application. Pass null to unset an application's source."}]}},"required":["applicationId","sourceId"],"example":{"applicationId":"3ae2b801-19f6-41ef-ad28-214bd731948f","sourceId":"2c6991c5-c9e2-4af8-879e-29c5a9d26509"}}}}},"responses":{"200":{"description":"Responses from the application.changeSource endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.changeStage":{"post":{"summary":"application.changeStage","operationId":"applicationChangeStage","description":"Change the stage of an application\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationchangestage) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to update the stage of"}]},"interviewStageId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The interview stage to move the application to."}]},"archiveReasonId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"Archive Reason to set when moving to an Interview Stage with type: `Archived`. \nNote: You must pass this parameter when moving to an Interview Stage with type: `Archived`\n"}]},"archiveEmail":{"type":"object","properties":{"communicationTemplateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the communication template to use for the email.\nNote: This communication template's intendedTypes must include: `email`.\n"}]},"sendAt":{"type":"string","format":"date-time","description":"The date and time to send the email as an ISO 8601 date and time string, e.g. `2025-02-24T08:27:01Z`.\nIf omitted, the email will be scheduled for the following morning at 9:32am in your default timezone.\nIf the time is in the past, the email will be sent immediately.\nNote: If a timezone is not specified, timestamps will be interpreted in UTC, regardless of your timezone setting.\n"}},"description":"Email to send to the candidate when moving to an Interview Stage with type: `Archived`.\nNote: If application is already archived, the email will not be sent.\nNote: If email send fails, the application stage will not be updated. If this is the case, you can retry the request without this parameter.\nNote: You may only pass this parameter if the application is moving to an Interview Stage with type: `Archived`.\n","required":["communicationTemplateId"]}},"required":["applicationId","interviewStageId"],"example":{"applicationId":"3ae2b801-19f6-41ef-ad28-214bd731948f","interviewStageId":"2c6991c5-c9e2-4af8-879e-29c5a9d26509"}}}}},"responses":{"200":{"description":"Responses from the application.changeStage endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"allOf":[{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"},{"type":"object","properties":{"errors":{"type":"array","items":{"type":"string","enum":["invalid_input","application_not_found","interview_plan_not_found","interview_stage_not_found","archive_reason_not_found","communication_template_not_found","communication_template_not_allowed"]},"description":"| Error Code | Description |\n|------------|-------------|\n| `invalid_input` | A parameter is the wrong type |\n| `invalid_input` | Archive fields are not allowed for non-archive stages |\n| `invalid_input` | Archive reason ID is required for archive stages |\n| `application_not_found` | |\n| `interview_plan_not_found` | |\n| `interview_stage_not_found` | |\n| `archive_reason_not_found` | |\n| `communication_template_not_found` | |\n| `communication_template_not_allowed` | Template contains unresolvable substitution tokens |\n| `communication_template_not_allowed` | Template intended types does not include 'email' |\n| `communication_template_not_allowed` | [Less common] Template is archived |\n| `communication_template_not_allowed` | [Less common] Template is a one-off template |\n"}}}]}]}}}}}}},"/application.create":{"post":{"summary":"application.create","operationId":"applicationCreate","description":"Consider a candidate for a job (eg when sourcing a candidate for a job posting).\n\nIf you're submitting an application as a job board, use the [`applicationForm.submit`](ref:applicationformsubmit) endpoint instead. See [Creating a custom careers page](https://developers.ashbyhq.com/docs/creating-a-custom-careers-page) for details.\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationcreate) permission.**\n\nTo set values for custom fields on Applications, use the [`customFields.setValue`](ref:customfieldsetvalue) endpoint.\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the candidate to consider for a job"}]},"jobId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the job to consider the candidate for"}]},"interviewPlanId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the interview plan to place the application in. If none is provided, the default interview plan is used.\n"}]},"interviewStageId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The interview stage of the interview plan (either default or provided) to place the application in. \nIf none is provided, the application is placed in the first \"Lead\" stage. \nYou can also supply the special string \"FirstPreInterviewScreen\", which will choose the first pre-interview-screen stage on the specified job's interview plan.\n"}]},"sourceId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The source to set on the application being created."}]},"creditedToUserId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user the application will be credited to."}]},"createdAt":{"allOf":[{"description":"An ISO date string to set the application's `createdAt` timestamp. When this value isn't provided, the `createdAt` timestamp defaults to the time the call was made.\n"},{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}]},"applicationHistory":{"allOf":[{"type":"array","description":"An array of objects representing the application history.","items":{"type":"object","properties":{"stageId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The ID of the interview stage for this history event. This stage must belong to the interview plan associated with the application."}]},"stageNumber":{"allOf":[{"type":"integer"},{"description":"The sort order of this event. 0 is the first, the highest number will be the current stage."}]},"enteredStageAt":{"allOf":[{"$ref":"#/paths/~1candidate.addEmailMessage/post/requestBody/content/application~1json/schema/properties/sentAt/allOf/0"},{"description":"An ISO date string representing the time the application entered this stage."}]},"archiveReasonId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The ID of the archive reason. If the interview stage is an `Archived` stage type, this field is required."}]}},"required":["stageId","stageNumber","enteredStageAt"]}},{"description":"An array of objects representing the application history.\n"}]}},"required":["candidateId","jobId"],"example":{"candidateId":"3ae2b801-19f6-41ef-ad28-214bd731948f","jobId":"2c6991c5-c9e2-4af8-879e-29c5a9d26509"}}}}},"responses":{"200":{"description":"Responses from the application.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.info":{"post":{"summary":"application.info","operationId":"applicationInfo","description":"Fetch application details by application id or by submitted form instance id (which is return by the `applicationForm.submit` endpoint). If both applicationId and submittedFormInstanceId are provided, we will lookup by applicationId.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationinfo) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"applicationId":{"allOf":[{"description":"The id of the application to fetch."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"expand":{"type":"array","description":"Choose to expand the result and include additional data for related objects. \n","items":{"type":"string","enum":["openings","applicationFormSubmissions","referrals"]}}},"required":["applicationId"]},{"type":"object","properties":{"submittedFormInstanceId":{"allOf":[{"description":"The id of the application's submitted form instance to fetch."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"expand":{"type":"array","description":"Choose to expand the result and include additional data for related objects. \n","items":{"type":"string","enum":["openings","applicationFormSubmissions"]}}},"required":["submittedFormInstanceId"]}]}}}},"responses":{"200":{"description":"Responses from the application.info endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"allOf":[{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"},{"type":"object","properties":{"openings":{"description":"The openings array will only be included if the `openings` expand parameter is included when the request is made.","type":"array","items":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening"}}}},{"type":"object","properties":{"applicationHistory":{"type":"array","items":{"$ref":"#/paths/~1application.listHistory/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/items"}},"applicationFormSubmissions":{"type":"array","description":"Application form submissions. These match the response from the `applicationForm.submit` endpoint. Use of the expand parameter is required to fetch.","items":{"$ref":"#/paths/~1applicationForm.submit/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/submittedFormInstance"}},"referrals":{"type":"array","items":{"type":"object","properties":{"user":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"referredAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}}}},"resumeFileHandle":{"description":"The id, name and handle for the application's resume","$ref":"#/paths/~1candidate.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/fileHandles/items"}}}]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.list":{"post":{"summary":"application.list","operationId":"applicationList","description":"Gets all applications in the organization.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationlist) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1opening.list/post/requestBody/content/application~1json/schema"},{"properties":{"status":{"type":"string","enum":["Hired","Archived","Active","Lead"]},"jobId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"expand":{"type":"array","description":"Choose to expand the result and include additional data for related objects. \n","items":{"type":"string","enum":["openings"]}}}}]}}}},"responses":{"200":{"description":"Responses from the application.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"allOf":[{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"},{"$ref":"#/paths/~1application.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/allOf/1"}]}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.transfer":{"post":{"summary":"application.transfer","operationId":"applicationTransfer","description":"Transfer an application to a different job.\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationtransfer) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to transfer."}]},"jobId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the job to transfer the application to."}]},"interviewPlanId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the interview plan to transfer the application to. \n"}]},"interviewStageId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The interview stage of the interview plan to transfer the application to. \n"}]},"startAutomaticActivities":{"allOf":[{"type":"boolean"},{"description":"Whether to start any automatic activities set on the target interview stage. \nIf not provided, the default value is `true`.\n"},{"default":true}]}},"required":["applicationId","jobId","interviewPlanId","interviewStageId"],"example":{"applicationId":"3ae2b801-19f6-41ef-ad28-214bd731948f","jobId":"2c6991c5-c9e2-4af8-879e-29c5a9d26509","interviewPlanId":"af94aedd-b743-462c-ab22-9e7e356c11b4","interviewStageId":"5eb15197-8664-48fd-99cf-fbdc9d25149d"}}}}},"responses":{"200":{"description":"Responses from the application.transfer endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.update":{"post":{"summary":"application.update","operationId":"applicationUpdate","description":"Update an application\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationupdate) permission.**\n\nTo set values for custom fields on Applications, use the [`customFields.setValue`](ref:customfieldsetvalue) endpoint.\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application to update"}]},"sourceId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The source to set on the application being created."}]},"creditedToUserId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user the application will be credited to."}]},"createdAt":{"allOf":[{"description":"An ISO date string to set the application's `createdAt` timestamp. When this value isn't provided, the `createdAt` timestamp defaults to the time the call was made.\n"},{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}]},"sendNotifications":{"type":"boolean","default":true,"description":"Whether or not users who are subscribed to the application should be notified that application was updated. Default is true."}},"required":["applicationId"],"example":{"applicationId":"3ae2b801-19f6-41ef-ad28-214bd731948f","createdAt":"2021-01-01T00:00:00Z","creditedToUserId":"3ae2b801-19f6-41ef-ad28-214bd731948f","sourceId":"3ae2b801-19f6-41ef-ad28-214bd731948f"}}}}},"responses":{"200":{"description":"Responses from the application.update endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.updateHistory":{"post":{"summary":"application.updateHistory","operationId":"applicationUpdateHistory","description":"Update the history of an application. This endpoint is used to update the history of an application, such as setting the entered stage time or deleting a history event.\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationupdatehistory) permission and the `Allow updating application history?` setting found in your admin API key permissions configuration.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","properties":{"applicationId":{"allOf":[{"description":"The id of the application to fetch."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"applicationHistory":{"type":"array","description":"The updated array of application history events. This array should contain all history events for the application, not just the events being updated.","items":{"type":"object","properties":{"stageId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"stageNumber":{"type":"integer","title":"Stage Number","description":"The order of the history event in the application's history. 0 is the first event."},"enteredStageAt":{"description":"The time the application entered the stage.","$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"applicationHistoryId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","title":"Application History ID","description":"The id of the application history event to update if you are updating an existing event."},"archiveReasonId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","title":"Archive Reason ID","description":"The id of the archive reason to associate with the history event if the stage type is `archived`."}},"required":["stageId","stageNumber","enteredStageAt"]}}},"required":["applicationId","applicationHistory"]}]}}}},"responses":{"200":{"description":"Responses from the application.updateHistory endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"allOf":[{"$ref":"#/webhooks/pushToHRIS/post/requestBody/content/application~1json/schema/properties/data/properties/application"},{"$ref":"#/paths/~1application.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/allOf/1"},{"type":"object","properties":{"applicationHistory":{"type":"array","items":{"$ref":"#/paths/~1application.listHistory/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/items"}},"applicationFormSubmissions":{"type":"array","description":"Application form submissions. These match the response from the `applicationForm.submit` endpoint. Use of the expand parameter is required to fetch.","items":{"$ref":"#/paths/~1applicationForm.submit/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/submittedFormInstance"}},"referrals":{"type":"array","items":{"type":"object","properties":{"user":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"referredAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}}}}}}]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.listHistory":{"post":{"summary":"application.listHistory","operationId":"applicationListHistory","description":"Fetch a paginated list of application history items for an application.\n\nThis endpoint supports pagination only (not incremental sync). See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for usage examples.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationListHistory) permission.**\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"applicationId":{"allOf":[{"description":"The id of the application to fetch."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}},{"$ref":"#/paths/~1brand.list/post/requestBody/content/application~1json/schema","required":["applicationId"]}]}}}},"responses":{"200":{"description":"Responses for the application.listHistory endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1brand.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"stageId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"title":{"type":"string","title":"Title","example":"Offer"},"enteredStageAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"leftStageAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},"stageNumber":{"type":"integer","title":"Stage Number","description":"The order of the history event in the application's history. 0 is the first event."},"allowedActions":{"type":"array","items":{"type":"string","enum":["none","delete","set_entered_at"]},"title":"Allowed Actions","description":"Actions that can be performed on the application via `application.updateHistory`.","example":["delete","set_entered_at"]},"actorId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","title":"Actor ID","description":"The ID of the user that performed the stage change."}},"required":["id","stageId","title","enteredStageAt","allowedActions","stageNumber"]}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.listCriteriaEvaluations":{"post":{"summary":"application.listCriteriaEvaluations","operationId":"applicationListCriteriaEvaluations","description":"Fetch a paginated list of AI criteria evaluations for an application.\n\nThis endpoint returns the AI-generated criteria evaluations that assess how well a candidate meets specific job requirements. Each evaluation contains the outcome, reasoning, and other assessment details.\n\nThis endpoint supports pagination only (not incremental sync). See the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for usage examples.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationListCriteriaEvaluations) permission.**\n\n**Note:** This endpoint requires the AI Application Review feature to be enabled for your organization.\n","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"type":"object","properties":{"applicationId":{"allOf":[{"description":"The id of the application to fetch criteria evaluations for."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}},{"$ref":"#/paths/~1brand.list/post/requestBody/content/application~1json/schema"}],"required":["applicationId"]}}}},"responses":{"200":{"description":"Responses for the application.listCriteriaEvaluations endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"$ref":"#/paths/~1brand.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"type":"object","title":"Criteria Evaluation","description":"An AI-generated evaluation of how well a candidate meets a specific job criterion.","properties":{"id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the criteria evaluation."}]},"criterion":{"allOf":[{"type":"object","title":"Criterion Version","description":"The criterion that was evaluated, including its configuration and prompt details.","properties":{"id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the criterion version."}]},"title":{"type":"string","description":"The title of the criterion.","example":"Location"},"type":{"type":"string","description":"The type of criterion evaluation.","enum":["ResumePrompt","DidAnswerApplicationFormQuestion","SimilarityToAiGeneratedAnswer"],"example":"ResumePrompt"},"prompt":{"type":"string","description":"The prompt text used for AI evaluation.","example":"Evaluate if the candidate's location aligns with the job requirements."},"applicationFormDefinitionId":{"anyOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"type":"null"}],"description":"The id of the application form definition (if applicable)."},"applicationFormFieldPath":{"type":["string","null"],"description":"The path to the specific application form field (if applicable)."}},"required":["id","title","type","prompt"]},{"description":"The criterion that was evaluated."}]},"status":{"type":"string","description":"The status of the evaluation.","enum":["Pending","Completed","Failed","Skipped"],"example":"Completed"},"outcome":{"type":["string","null"],"description":"The evaluation outcome (e.g., \"Meets\", \"Does Not Meet\").","example":"Meets"},"reasoning":{"type":["string","null"],"description":"The AI's reasoning for the evaluation outcome.","example":"The candidate's location in San Francisco aligns well with the job's requirement for Bay Area presence."},"skipReason":{"type":["string","null"],"description":"The reason why the evaluation was skipped (if status is \"Skipped\").","example":"NoResume"},"outcomeNumber":{"type":["number","null"],"description":"A numerical score representing the evaluation outcome (0.0 to 1.0).","minimum":0,"maximum":1,"example":0.85},"evaluatedAt":{"type":["string","null"],"format":"date-time","description":"The date and time when the evaluation was completed.","example":"2024-01-15T10:30:00Z"}},"required":["id","criterion","status"]}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/applicationFeedback.list":{"post":{"summary":"applicationFeedback.list","operationId":"applicationFeedbackList","description":"List all interview scorecards and feedback submissions associated with an application.\n\nEach feedback submission contains:\n- **formDefinition**: The structure of the feedback form with all available fields\n- **submittedValues**: Responses to the form fields, which depending on the form configuration can include:\n - Text feedback (e.g., \"Candidate showed strong technical skills...\")\n - Numerical scores (e.g., \"4\" for a 1-4 rating scale)\n - Structured selections (e.g., \"Strong Hire\" for overall recommendation)\n- **Interview context**: Links to associated interviews, events, and the submitting user\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationfeedbacklist) permission.**\n","tags":["Application Feedback"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1opening.list/post/requestBody/content/application~1json/schema"},{"type":"object","properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application you'd like to fetch feedback for"}]}}}]}}}},"responses":{"200":{"description":"Responses from the applicationFeedback.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"allOf":[{"type":"object","allOf":[{"$ref":"#/paths/~1applicationForm.submit/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/submittedFormInstance"},{"type":"object","properties":{"submittedByUser":{"$ref":"#/paths/~1user.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"},"interviewId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"interviewEventId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"feedbackFormDefinitionId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"applicationHistoryId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"applicationId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"submittedAt":{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}}}],"required":["submittedByUser","applicationId"]}]},"example":[{"id":"f47ac10b-58cc-4372-a567-0e02b2c3d479","applicationId":"550e8400-e29b-41d4-a716-446655440000","feedbackFormDefinitionId":"6ba7b810-9dad-11d1-80b4-00c04fd430c8","interviewId":"6ba7b811-9dad-11d1-80b4-00c04fd430c8","interviewEventId":"6ba7b812-9dad-11d1-80b4-00c04fd430c8","submittedAt":"2023-11-15T14:30:00.000Z","submittedByUser":{"id":"123e4567-e89b-12d3-a456-426614174000","firstName":"Sarah","lastName":"Johnson","email":"sarah.johnson@company.com","globalRole":"Elevated Access","isEnabled":true,"updatedAt":"2023-11-15T14:30:00.000Z"},"formDefinition":{"sections":[{"title":"Technical Assessment","fields":[{"isRequired":true,"field":{"id":"550e8400-e29b-41d4-a716-446655440001","type":"ValueSelect","path":"overall_recommendation","title":"Overall Recommendation","humanReadablePath":"Overall Recommendation","isNullable":false,"selectableValues":[{"label":"Strong Hire","value":"strong_hire"},{"label":"Hire","value":"hire"},{"label":"No Hire","value":"no_hire"}]}},{"isRequired":false,"field":{"id":"550e8400-e29b-41d4-a716-446655440002","type":"Score","path":"technical_skills","title":"Technical Skills","humanReadablePath":"Technical Skills","isNullable":false}},{"isRequired":false,"field":{"id":"550e8400-e29b-41d4-a716-446655440003","type":"RichText","path":"detailed_feedback","title":"Detailed Feedback","humanReadablePath":"Detailed Feedback","isNullable":false}}]}]},"submittedValues":{"overall_recommendation":"hire","technical_skills":"4","detailed_feedback":"Candidate demonstrated strong problem-solving skills and wrote clean, efficient code. Good understanding of algorithms and data structures. Communication was clear throughout the interview."}}]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.addHiringTeamMember":{"post":{"summary":"application.addHiringTeamMember","description":"Adds an Ashby user to the hiring team at the application level. \n\n**Requires the [`candidateWrite`](authentication#permissions-applicationaddhiringteammember) permission.**\n","operationId":"applicationaddhiringteammember","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"required":["applicationId","teamMemberId","roleId"],"properties":{"applicationId":{"allOf":[{"description":"The application to assign the user a role on."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"teamMemberId":{"allOf":[{"description":"The id of the user to assign the role to."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"roleId":{"allOf":[{"description":"The id of the hiring team role to assign."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}}}}},"responses":{"200":{"description":"Responses for the application.addHiringTeamMember endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1hiringTeam.addMember/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/application.removeHiringTeamMember":{"post":{"summary":"application.removeHiringTeamMember","description":"Removes an Ashby user to the hiring team at the application level. \n\n**Requires the [`candidateWrite`](authentication#permissions-applicationremovehiringteammember) permission.**\n","operationId":"applicationremovehiringteammember","tags":["Application"],"requestBody":{"content":{"application/json":{"schema":{"required":["applicationId","teamMemberId","roleId"],"properties":{"applicationId":{"allOf":[{"description":"The application to unassign the user a role from."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"teamMemberId":{"allOf":[{"description":"The id of the user to unassign the role from."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"roleId":{"allOf":[{"description":"The id of the hiring team role to unassign."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}}}}},"responses":{"200":{"description":"Responses for the application.removeHiringTeamMember endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1hiringTeam.addMember/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/applicationHiringTeamRole.list":{"post":{"summary":"applicationHiringTeamRole.list","operationId":"applicationHiringTeamRoleList","description":"Gets all available hiring team roles for applications in the organization.\n\n**Requires the [`candidatesRead`](authentication#permissions-applicationHiringTeamRoleList) permission.**\n","tags":["Application Hiring Team Role"],"responses":{"200":{"description":"Responses from the applicationHiringTeamRole.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"properties":{"results":{"type":"array","items":{"allOf":[{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"title":{"type":"string"}},"required":["id","title"]}]}}}}],"required":["results"]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/applicationFeedback.submit":{"post":{"summary":"applicationFeedback.submit","description":"Application feedback forms support a variety of field types. \n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationfeedbacksubmit) permission.**\n\nThe values accepted for each field depend on the type of field that's being filled out: |\n- `Boolean` - A boolean value\n- `CompensationRange` - An object in the format `{ type: \"compensation-range\", minValue: 100000, maxValue: 150000, currencyCode: \"USD\", interval: \"1 YEAR\" }`. `currencyCode` must be a valid ISO 4217 code and `interval` must be a valid compensation interval (e.g. `\"1 HOUR\"`, `\"1 YEAR\"`).\n- `Currency` - An object in the format `{ value: 100000, currencyCode: \"USD\" }`. `currencyCode` must be a valid ISO 4217 code.\n- `Date` - A date string in the format YYYY-MM-DD\n- `Email` - A valid email address\n- `LongText`, `Phone`, `String` - A string\n- `MultiValueSelect` - An array of strings that exist in the MultiValueSelect field's selectable options\n- `Number` - An integer\n- `NumberRange` - An object in the format `{ type: \"number-range\", minValue: 1, maxValue: 10 }`\n- `RichText` - We do not support submitting rich text documents via the API but we do support submitting plain text values for these fields. Plain text values must be submitted in the format `{ type: \"PlainText\", value: \"A plain text string\" }`\n- `Score` - An integer between 1 and 4 submitted in the format `{ score: 4 }`\n- `Url` - A valid URL string. The empty string is also accepted.\n- `UUID` - A UUID string, or an object in the format `{ value: \"\" }`\n- `ValueSelect` - A string that matches the value of one of the ValueSelect field's selectable options\n\nThe `submittedValues` field in the response contains the submitted feedback in an object where the key is the path of the field and the value is the value submitted for that field.\n","operationId":"applicationfeedbacksubmit","tags":["Application Feedback"],"requestBody":{"content":{"application/json":{"schema":{"oneOf":[{"type":"object","required":["feedbackForm","formDefinitionId","applicationId"],"properties":{"feedbackForm":{"$ref":"#/paths/~1offer.create/post/requestBody/content/application~1json/schema/properties/offerForm"},"formDefinitionId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the feedback form definition associated with the form submission"}]},"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application you're submitting feedback for"}]},"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user the feedback will be credited to.\nIf a userId is not provided, the feedback will be credited to the API key user.\n"}]}}},{"type":"object","required":["feedbackForm","formDefinitionId","applicationId","userId","interviewEventId"],"properties":{"feedbackForm":{"$ref":"#/paths/~1offer.create/post/requestBody/content/application~1json/schema/properties/offerForm"},"formDefinitionId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the feedback form definition associated with the form submission"}]},"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the application you're submitting feedback for"}]},"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user the feedback will be credited to. \nThe user must be an interviewer on the interview event that feedback is being submitted for.\n"}]},"interviewEventId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the interview event you're submitting feedback for.\n"}]}}}]}}}},"responses":{"200":{"description":"Responses from the applicationFeedback.submit endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"submittedFormInstance":{"$ref":"#/paths/~1applicationForm.submit/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/submittedFormInstance"}}}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/applicationForm.submit":{"post":{"summary":"applicationForm.submit","description":"Submit an application for a job posting.\n\n**Requires the [`candidatesWrite`](authentication#permissions-applicationformsubmit) permission.**\n\nThe Content-Type of this request must be `multipart/form-data` or `application/json`.\n\nWhen using `application/json`, file fields should contain a handle string obtained from [`file.createFileUploadHandle`](https://developers.ashbyhq.com/reference/filecreatefileuploadhandle) with `fileUploadContext` set to `ApplicationForm`. This allows files to be uploaded directly to storage, bypassing the need to send file bytes through the API.\n\nWhen using `multipart/form-data`, file fields should reference a file part included in the multipart request body (existing behavior).\n\n**Important:** Please ensure that you check the response's `success` field and display any validation errors to candidates if it is `false`. Not doing so will result in applications not being recorded, without any notification to the candidate prompting them to resubmit. For testing purposes, you can simulate a validation failure by submitting the email address `testing-fail-validation@example.com`.\n\n**Note: The requests generated from this documentation will not work for this endpoint.**\n\nThe values accepted for each field depend on the type of field that's being filled out:\n- `Boolean` - A boolean value\n- `Date` - A date string in the format YYYY-MM-DD\n- `Email` - A valid email address\n- `Number` - An integer\n- `RichText` - We do not support submitting rich text documents via the API but we do support submitting plain text values for these fields. Plain text values must be submitted in the format `{ type: \"PlainText\", value: \"A plain text string\" }`\n- `Score` - An integer between 1 and 4 submitted in the format `{ score: 4 }`\n- `Phone`, `String` A string\n- `ValueSelect` - A string that matches the value of one of the ValueSelect field's selectable options\n- `MultiValueSelect` - An array of strings that exist in the MultiValueSelect field's selectable options\n- `Location` - An object with the following properties: `{ country: \"USA\", city: \"San Francisco\", region: \"California\" }`. You may provide any combination of these properties and we will attempt to geocode the location. For best results, provide all three properties.\n- `EducationHistory` - [Early Access] An array of objects with the following properties: `{ schoolName: \"University of California, Berkeley\", degree: \"Bachelor of Science\", major: \"Computer Science\", startDate: \"2020-09-01\", endDate: \"2024-05-15\", isCurrent: true }`. Only `schoolName` is required. We will attempt to match the school name to a known school in our database. If `isCurrent` is true, `endDate` must not be provided.\n","operationId":"applicationformsubmit","tags":["Application Form"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["jobPostingId","applicationForm"],"properties":{"jobPostingId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the job posting to submit an application for"}]},"applicationForm":{"$ref":"#/paths/~1offer.create/post/requestBody/content/application~1json/schema/properties/offerForm"},"utmData":{"type":"object","properties":{"utm_source":{"type":"string"},"utm_campaign":{"type":"string"},"utm_medium":{"type":"string"},"utm_term":{"type":"string"},"utm_content":{"type":"string"}}},"tagIds":{"type":"array","description":"The ids of the tags to apply to the candidate","items":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}},"allowSubmissionForUnpublishedJobPosting":{"type":"boolean","example":true,"description":"Defaults to true. If you are running a custom built careers page that is statically generated, you may want to set this to true to allow applications to be submitted in the time a job is unpublished and your careers page is refreshed. If set to false, applications submitted for unpublished job postings will return a `job_posting_not_published` error."}}}},"multipart/form-data":{"schema":{"type":"object","required":["jobPostingId","applicationForm"],"properties":{"jobPostingId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the job posting to submit an application for"}]},"applicationForm":{"$ref":"#/paths/~1offer.create/post/requestBody/content/application~1json/schema/properties/offerForm"},"utmData":{"type":"object","properties":{"utm_source":{"type":"string"},"utm_campaign":{"type":"string"},"utm_medium":{"type":"string"},"utm_term":{"type":"string"},"utm_content":{"type":"string"}}},"tagIds":{"type":"array","description":"The ids of the tags to apply to the candidate","items":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}},"allowSubmissionForUnpublishedJobPosting":{"type":"boolean","example":true,"description":"Defaults to true. If you are running a custom built careers page that is statically generated, you may want to set this to true to allow applications to be submitted in the time a job is unpublished and your careers page is refreshed. If set to false, applications submitted for unpublished job postings will return a `job_posting_not_published` error."},"":{"type":"string","description":"Any file referenced in the `applicationForm`. The name of this field must exactly match the `value` on the `fieldSubmission` that references this file.","format":"binary"}}}}}},"responses":{"200":{"description":"Responses from the applicationFeedback.submit endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"submittedFormInstance":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"formDefinition":{"$ref":"#/paths/~1offer.start/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/formDefinition"},"submittedValues":{"type":"object","example":{"_systemfield_name":"Gob Bluth"}}},"required":["id","formDefinition","submittedValues"]},"formMessages":{"allOf":[{"type":"object","description":"Messages related to the application form submission. Check if the application was blocked before submitting any surveys.","properties":{"blocked":{"type":"boolean","description":"Whether the application was blocked due to configured application limits (eg too many applications submitted for a single candidate). If true, do not attempt to submit any surveys, if any.","example":true},"blockMessageForCandidateHtml":{"type":"string","description":"A message to display to the candidates regarding the application limits. If there is no message, then the candidate should not be informed that they were blocked.","example":"

Please Note: we have set up limits for applications for this role. Candidates may not apply more than 2 times in any 60 day span for any job in the Application Limit Group.

\n"}},"required":["blocked"]},{"description":"Contains information about the form submission. When `blocked` is true, \nthe application was blocked by organizational rules and no Application \nrecord was created. Do not attempt to call `application.info` with the \n`submittedFormInstanceId` as it will return an `application_blocked` error. \nThe submission is saved as a blocked submission and can be reviewed by \nadministrators.\n"}]}},"required":["submittedFormInstance","formMessages"]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/approval.list":{"post":{"summary":"approval.list","operationId":"approvalList","description":"Gets all approvals in the organization. You can optionally filter by entity type and entity ID.\n\nSee the [Pagination and Incremental Synchronization](/docs/pagination-and-incremental-sync) guide for detailed usage examples.\n\n**Requires the [`approvalsRead`](authentication#permissions-approvallist) permission.**\n","tags":["Approval"],"requestBody":{"content":{"application/json":{"schema":{"allOf":[{"$ref":"#/paths/~1surveyFormDefinition.list/post/requestBody/content/application~1json/schema"},{"type":"object","properties":{"entityType":{"type":"string","enum":["offer","job","opening"],"description":"Filter approvals by the type of entity they are associated with."},"entityId":{"type":"string","format":"uuid","description":"Filter approvals to only those associated with this specific entity ID."}}}]}}}},"responses":{"200":{"description":"Responses from the approval.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success Response","allOf":[{"$ref":"#/paths/~1job.list/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"approvalDefinitionId":{"allOf":[{"description":"The id of the approval definition associated to this approval."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"entityId":{"allOf":[{"description":"The id of the approval entity (e.g. the id of the offer version)."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"entityType":{"type":"string","enum":["offer","job","opening"]},"createdAt":{"allOf":[{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}]},"submittedAt":{"allOf":[{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},{"description":"The date when the approval was submitted and sent to users for approval."}]},"completedAt":{"allOf":[{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},{"description":"The date when the approval was completed and approved by everyone."}]},"steps":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"approvalsRequired":{"type":"integer","description":"The number of approvers required to approve this step, before the approval moves on to the next step."},"completedAt":{"allOf":[{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},{"description":"The date when the step is completed based on the number of required approvals"}]},"approvers":{"type":"array","description":"An unordered list of who can approve this step.","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of a user who is an approver for this step."}]},"decision":{"type":"string","enum":["approve","reject","pending"]},"decidedAt":{"allOf":[{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},{"description":"The date when the decision was taken by the user."}]},"requestedAt":{"allOf":[{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"},{"description":"The date when the decision was sent to be approved by the user."}]}},"required":["id","userId","decision"]}}},"required":["id","approvalsRequired","approvers"]}}},"required":["id","createdAt","approvalDefinitionId","entityId","entityType","steps"]}}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/approvalDefinition.update":{"post":{"summary":"approvalDefinition.update","operationId":"approvalDefinitionUpdate","description":"Create or update an approval definition for a specific entity that requires approval. The entity requiring approval must be within scope of an approval in Ashby that is marked as being managed by the API.\n\nIf the provided approval step definitions is an empty list, then approval will be skipped and the entity will proceed to the next stage.\n\n**Requires the [`approvalsWrite`](authentication#permissions-approvaldefinitionupdate) permission.**\n","tags":["Approval Definition"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"entityType":{"type":"string","enum":["offer"]},"entityId":{"allOf":[{"description":"The id of the approval entity being updated (e.g. the id of the offer version)."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"approvalStepDefinitions":{"type":"array","description":"An ordered list of approval steps that describes the number of required approvers at each step, as well as who is an approver at each step.","items":{"type":"object","properties":{"approvalsRequired":{"type":"integer","description":"The number of approvers required to approve this step, before the approval moves on to the next step. The number of approvers must be non-zero and no more than the number of approvers in this step.","example":1},"approvers":{"type":"array","description":"An unordered list of who can approve this step.","items":{"type":"object","properties":{"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of a user who is an approver for this step."}]},"type":{"type":"string","enum":["user"]}},"required":["userId","type"]}}},"required":["approvalsRequired","approvers"]}},"submitApprovalRequest":{"type":"boolean","description":"Control whether an approval request created through this API should be immediately submitted.\nIf false, then the approval will need to be manually submitted in the Ashby app.\nDefault: false\n"}},"required":["entityType","entityId","approvalStepDefinitions"]}}}},"responses":{"200":{"description":"Responses from the approvalDefinition.update endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","properties":{"id":{"allOf":[{"description":"The id of the approval definition."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"entityType":{"type":"string","enum":["Offer"]},"entityId":{"allOf":[{"description":"The id of the approval entity (e.g. the id of the offer version)."},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"approvalStepDefinitions":{"$ref":"#/paths/~1approvalDefinition.update/post/requestBody/content/application~1json/schema/properties/approvalStepDefinitions"}},"required":["entityType","entityId","approvalStepDefinitions"]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/archiveReason.list":{"post":{"summary":"archiveReason.list","description":"Lists archive reasons\n\n**Requires the [`hiringProcessMetadataRead`](authentication#permissions-archivereasonlist) permission.**\n","operationId":"archivereasonlist","tags":["Archive Reason"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"includeArchived":{"type":"boolean","description":"When true, includes archived interview plans","default":false}}}}}},"responses":{"200":{"description":"Responses for the archiveReason.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success Response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"text":{"type":"string","example":"Too inexperienced"},"reasonType":{"enum":["RejectedByCandidate","RejectedByOrg","Other"],"example":"RejectedByOrg"},"isArchived":{"$ref":"#/webhooks/openingCreate/post/requestBody/content/application~1json/schema/properties/data/properties/opening/properties/isArchived"}},"required":["id","text","reasonType","isArchived"]}}}},{"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/assessment.addCompletedToCandidate":{"post":{"summary":"assessment.addCompletedToCandidate","operationId":"assessmentAddCompletedToCandidate","description":"Add a completed assessment to a candidate\n\n**Requires the [`candidatesWrite`](authentication#permissions-assessmentaddcompletedtocandidate) permission.**\n","tags":["Assessment"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the candidate, to whom to add the completed assessment"}]},"partnerId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the partner adding the assessment"}]},"assessment":{"type":"object","description":"The completed assessment","required":["assessmentTypeId","assessmentId","assessmentName","result","metadata"],"properties":{"assessmentTypeId":{"allOf":[{"description":"An identifier that uniquely identifies the assessment type"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"assessmentId":{"allOf":[{"description":"An identifier that uniquely identifies the completed assessment"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"assessmentName":{"type":"string","example":"Node Assessment","description":"The name of the assessment that was taken that will be displayed in the UI"},"result":{"allOf":[{"description":"The assessment's result"},{"$ref":"#/paths/~1assessment.addCompletedToCandidate/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/result"}]},"metadata":{"type":"array","description":"An array of metadata associated with this completed assessment","items":{"$ref":"#/paths/~1assessment.addCompletedToCandidate/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/result"}}}},"timestamp":{"allOf":[{"description":"The timestamp in milliseconds since the unix epoch, when the assessment was completed"},{"type":"integer","description":"The timestamp in milliseconds since the unix epoch, when the update occurred","format":"int64","example":1665680638489}]}},"required":["candidateId","partnerId","assessment","timestamp"]}}}},"responses":{"200":{"description":"Responses for the assessment.addCompletedToCandidate endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success Response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"properties":{"results":{"type":"object","required":["assessmentTypeId","assessmentId","assessmentName","candidateId","metadata"],"properties":{"applicationId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"assessmentId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"assessmentName":{"type":"string","example":"test-assessment-name"},"assessmentTypeId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"metadata":{"type":"array","items":{"$ref":"#/paths/~1assessment.addCompletedToCandidate/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/result"}},"result":{"type":"object","properties":{"identifier":{"type":"string","description":"Uniquely identifies this field, for this partner","example":"result-max"},"label":{"type":"string","description":"Label for the assessment metadata to be displayed in the UI","example":"Max Score"},"description":{"type":"string","description":"Description of the assessment metadata, which may be displayed in the UI","example":"The maximum possible score for the assessment"},"type":{"type":"string","description":"The type of the value. Please reach out if you'd like us to support a new type!","enum":["numeric_score","numeric_duration_minutes","url","string","boolean_success"]},"value":{"allOf":[{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"}],"description":"The raw value — one of string, number, or boolean\n"},{"example":10}]}},"required":["identifier","label","type","value"]}}}}},{"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/assessment.start":{"post":{"summary":"assessment.start (Implemented by Partner)","operationId":"assessmentStart","description":"The API for starting an assessment. Implemented by the partner, called by Ashby.\n","tags":["Assessment"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["assessment_type_id","candidate","application","job"],"properties":{"assessment_type_id":{"allOf":[{"description":"The id of the type of assessment to start (retrieved from calling /assessment.list)"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"candidate":{"allOf":[{"description":"Identifier of the assessment being started"},{"type":"object","description":"A description of the candidate","required":["ashby_id","first_name","last_name","email","ashby_profile_url"],"properties":{"ashby_id":{"allOf":[{"type":"string"},{"description":"The identifier of the candidate in Ashby"}]},"first_name":{"allOf":[{"type":"string"},{"description":"The first name of the candidate being assessed"}]},"last_name":{"allOf":[{"type":"string"},{"description":"The last name of the candidate being assessed"}]},"email":{"allOf":[{"type":"string"},{"description":"The email of the candidate being assessed"}]},"ashby_profile_url":{"allOf":[{"type":"string"},{"description":"The url back into Ashby of the candidate being assessed"}]}}}]},"application":{"allOf":[{"description":"The application for which the candidate is being assessed"},{"type":"object","description":"The application for which the candidate is being assessed","required":["ashby_id","status"],"properties":{"ashby_id":{"allOf":[{"type":"string"},{"description":"The id of the application in Ashby"}]},"status":{"allOf":[{"$ref":"#/paths/~1application.list/post/requestBody/content/application~1json/schema/allOf/1/properties/status"},{"description":"The status of the application in Ashby"}]}}}]},"job":{"allOf":[{"description":"The job for which the candidate is being assessed"},{"type":"object","description":"The job for which the candidate is being assessed","required":["ashby_id","name","ashby_job_url"],"properties":{"ashby_id":{"allOf":[{"type":"string"},{"description":"The id of the job in Ashby"}]},"name":{"allOf":[{"type":"string"},{"description":"The name of the job in Ashby"}]},"req_id":{"allOf":[{"type":"string"},{"description":"The customer-defined requisition id for the job"}]},"ashby_job_url":{"allOf":[{"type":"string"},{"description":"The url of the job, internal to Ashby"}]},"hiringTeam":{"type":"array","items":{"$ref":"#/paths/~1hiringTeam.addMember/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}}}}]}}}}}},"responses":{"200":{"description":"Responses for the assessment.start endpoint","content":{"application/json":{"schema":{"title":"Success Response","type":"object","required":["success","results"],"properties":{"success":{"type":"boolean"},"results":{"required":["assessment_id"],"properties":{"assessment_id":{"type":"string"},"update_request":{"$ref":"#/paths/~1assessment.update/post/requestBody/content/application~1json/schema"}}}}}}}},"409":{"description":"The assessment could not be started because the candidate is already being assessed.\n"},"422":{"description":"A custom error message that will be shown to the user in Ashby.\n","content":{"application/json":{"schema":{"title":"Custom Error Response","type":"object","required":["message"],"properties":{"message":{"type":"string","description":"The message to be shown to the user in Ashby."}}}}}}}}},"/assessment.list":{"post":{"summary":"assessment.list (Implemented by Partner)","operationId":"assessmentList","description":"The API for listing assessments that the partner supports — implemented by the partner, but called by Ashby\n","tags":["Assessment"],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Responses for the assessment.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"array","items":{"allOf":[{"type":"object","description":"List of available assessments","properties":{"assessment_type_id":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"name":{"type":"string"},"description":{"type":"string"}}}]}}}}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/assessment.update":{"post":{"summary":"assessment.update","operationId":"assessmentUpdate","description":"Update Ashby about the status of a started assessment.\n\n**Requires the [`candidatesWrite`](authentication#permissions-assessmentupdate) permission.**\n\n`assessment_status` is required unless `cancelled_reason` is provided.\n","tags":["Assessment"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["assessment_id","timestamp"],"properties":{"assessment_id":{"allOf":[{"description":"Identifier of the assessment being updated"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]},"timestamp":{"$ref":"#/paths/~1assessment.addCompletedToCandidate/post/requestBody/content/application~1json/schema/properties/timestamp/allOf/1"},"assessment_status":{"allOf":[{"description":"The current status of the assessment. Setting this with a value of \"Started\" will signal Ashby to store the timestamp the assessment started. Required when `cancelled_reason` is not set."},{"$ref":"#/paths/~1assessment.addCompletedToCandidate/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/result"}]},"assessment_profile_url":{"allOf":[{"description":"The url back to the assessment/candidate on the partner's website. This value should always be of type url. Required when `assessment_result` is set."},{"$ref":"#/paths/~1assessment.addCompletedToCandidate/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/result"}]},"assessment_result":{"allOf":[{"description":"The result of the assessment. Sending an update with this field will signal to Ashby that the assessment is complete."},{"$ref":"#/paths/~1assessment.addCompletedToCandidate/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/result"}]},"cancelled_reason":{"allOf":[{"description":"The reason the assessment was cancelled. This field will signal to Ashby that the assessment is cancelled."},{"$ref":"#/paths/~1assessment.addCompletedToCandidate/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/result"}]},"metadata":{"type":"array","description":"Any other metadata about the assessment (e.g. ETA until complete). All assessment data should have unique identifiers.","items":{"$ref":"#/paths/~1assessment.addCompletedToCandidate/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results/properties/result"}}}}}}},"responses":{"200":{"description":"Responses for the assessment.start endpoint"}}}},"/assessment.cancel":{"post":{"summary":"assessment.cancel (Implemented by Partner)","operationId":"assessmentCancel","description":"(Optional) Cancels an assessment. Implemented by the partner, called by Ashby.\n","tags":["Assessment"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["assessment_id"],"properties":{"assessment_id":{"allOf":[{"description":"The id of the started assessment to cancel"},{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"}]}}}}}},"responses":{"200":{"description":"Responses for the assessment.cancel endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success Response","type":"object","$ref":"#/paths/~1assessment.start/post/responses/200/content/application~1json/schema"},{"title":"Error Response","type":"object","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/assessment.customField.list":{"post":{"summary":"customField.list (Implemented by Partner)","operationId":"assessmentPartnerCustomFieldList","description":"The API for listing custom fields that can be synced to Ashby — implemented by the assessment partner, but called by Ashby.\n\nThis endpoint is optional and must be enabled for your integration. Contact Ashby if you wish to use this feature.\n","tags":["Assessment"],"requestBody":{"content":{"application/json":{"schema":{"type":"object"}}}},"responses":{"200":{"description":"Responses for the customField.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success Response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"fields":{"type":"array","items":{"type":"object","description":"A custom field specification provided by an assessment partner","properties":{"id":{"type":"string","minLength":1,"description":"Unique identifier for this custom field. This id will be used as the key in `additional_fields` when calling `/assessment.start`.","example":"department"},"name":{"type":"string","minLength":1,"description":"Display name of the custom field shown to users in Ashby","example":"Department"},"type":{"type":"string","description":"The type of the custom field","enum":["String","Date","DateRange","Number","ValueSelect","MultiValueSelect","Boolean","LongText","Email","Phone","Score","SocialLink","Url","Currency","Location"],"example":"ValueSelect"},"possible_values":{"type":"array","description":"Required for `ValueSelect` and `MultiValueSelect` types. An array of possible values the user can choose from.","items":{"type":"object","properties":{"key":{"type":"string","minLength":1,"description":"Internal identifier for this option. This value will be sent in `additional_fields` when the assessment is started.","example":"eng"},"value":{"type":"string","minLength":1,"description":"Display value shown to users in Ashby","example":"Engineering"}},"required":["key","value"]}},"isRequired":{"type":"boolean","description":"Whether this field is required. Defaults to false if not specified.","example":false}},"required":["id","name","type"]}}},"required":["fields"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/brand.list":{"post":{"summary":"brand.list","operationId":"brandList","description":"Lists all brands for the organization.\n\n**Requires the [`organizationRead`](authentication#permissions-departmentinfo) permission.**\n","tags":["Brand"],"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"cursor":{"type":"string","description":"Opaque cursor indicating which page of results to fetch","example":"G8"},"limit":{"type":"number","description":"The maximum number of items to return. The maximum and default value is 100.","example":25}},"example":{"cursor":"qA","limit":25}}}}},"responses":{"200":{"description":"Responses for the brand.list endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"title":"Success response"},{"type":"object","properties":{"moreDataAvailable":{"type":"boolean","description":"Whether the cursor can be used to fetch a subsequent page of data."},"nextCursor":{"$ref":"#/paths/~1brand.list/post/requestBody/content/application~1json/schema/properties/cursor"}},"required":["moreDataAvailable"]}]},{"type":"object","properties":{"results":{"type":"array","items":{"type":"object","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},"name":{"type":"string","description":"The name of the brand"},"hostedJobsPageSlug":{"type":"string","description":"The slug used for the brand's hosted jobs page URL"}},"required":["id","name","hostedJobsPageSlug"]}}},"required":["results"]}]},{"title":"Error response","$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/candidate.addEmailMessage":{"post":{"summary":"candidate.addEmailMessage","description":"Adds an email message to a candidate's profile.\n\n**Requires the [`candidatesWrite`](authentication#permissions-candidateaddemailmessage) permission.**\n","operationId":"candidateAddEmailMessage","tags":["Candidate"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["candidateId","emailProviderEmailId","subject","from","to","body"],"properties":{"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The candidate to attach this email to."}]},"emailProviderEmailId":{"type":"string","description":"Unique identifier for this message in the partner system. Must be unique per API key."},"subject":{"type":"string","description":"The email subject line."},"from":{"type":"string","description":"The sender email address."},"to":{"type":"string","description":"The recipient email address."},"body":{"type":"string","description":"The html body of the email."},"userId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The Ashby user ID to associate with this email. Defaults to the API key user."}]},"sentAt":{"allOf":[{"type":"string","format":"date-time","example":"2022-07-21T17:32:28Z"},{"description":"When the email was sent. Defaults to the current time."}]},"cc":{"type":"string","description":"CC recipients."},"messageUrl":{"type":"string","format":"uri","description":"URL to view the message in the partner application.","example":"https://example.com/messages/1234567890"},"messageIdHeader":{"type":"string","description":"RFC 5322 message identifier.","example":""},"threadId":{"type":"string","description":"Thread identifier to group this message with others. Defaults to emailProviderEmailId."},"isPrivate":{"type":"boolean","description":"Whether the email should be marked as private. Private emails require \"Allow access to non-offer private fields?\" API key permission to create and view. Defaults to false.","default":false}}}}}},"responses":{"200":{"description":"Responses for the candidate.addEmailMessage endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"type":"object","description":"An email sent to or from a candidate.","properties":{"id":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","description":"The unique id of the email in Ashby."},"candidateId":{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId","description":"The candidate this email is attached to."},"emailProviderEmailId":{"type":"string","description":"The unique identifier for this message in the partner system."},"subject":{"type":"string","description":"The email subject line."},"from":{"type":"string","description":"The sender email address."},"to":{"type":"string","description":"The recipient email address."},"body":{"type":["string","null"],"description":"The body of the email. Can be HTML or plain text."},"sentAt":{"$ref":"#/paths/~1candidate.addEmailMessage/post/requestBody/content/application~1json/schema/properties/sentAt/allOf/0","description":"When the email was sent."},"cc":{"type":["string","null"],"description":"CC recipients."},"messageUrl":{"type":["string","null"],"format":"uri","description":"URL to view the message in the partner application."},"messageIdHeader":{"type":["string","null"],"description":"RFC 5322 Message-ID header value."},"threadId":{"type":"string","description":"Thread identifier grouping this message with others."},"isPrivate":{"type":"boolean","description":"Whether the email is marked as private."},"userIsSender":{"type":"boolean","description":"Whether the associated user is the sender (true) or recipient (false)."}},"required":["id","candidateId","emailProviderEmailId","subject","from","to","sentAt","isPrivate","userIsSender","threadId"]}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/candidate.addProject":{"post":{"summary":"candidate.addProject","operationId":"candidateaddproject","description":"Adds the candidate to a project.\n\n**Requires the [`candidatesWrite`](authentication#permissions-candidateaddproject) permission.**\n","tags":["Candidate"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the candidate"}]},"projectId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the project"}]}},"required":["candidateId","projectId"],"example":{"candidateId":"f9e52a51-a075-4116-a7b8-484deba69004","projectId":"bcffca12-5b09-4a76-acf2-00a8e267b222"}}}}},"responses":{"200":{"description":"Responses from the candidate.addProject endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1candidate.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/candidate.addTag":{"post":{"summary":"candidate.addTag","description":"Adds a tag to a candidate\n\n**Requires the [`candidatesWrite`](authentication#permissions-candidateaddtag) permission.**\n","operationId":"candidateAddTag","tags":["Candidate"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["candidateId","tagId"],"properties":{"candidateId":{"type":"string","description":"The unique id of the candidate to add the tag to.","example":"5b591aed-88e3-4395-b9c6-7d529f93354a"},"tagId":{"type":"string","description":"The unique id of the tag to add to the candidate.","example":"38430ede-5bd2-41fc-b474-87591cb98cbc"}}}}}},"responses":{"200":{"description":"Responses for the candidate.addTag endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1candidate.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/candidate.anonymize":{"post":{"summary":"candidate.anonymize","description":"Anonymizes a candidate.\n\n**Requires the [`candidatesWrite`](authentication#permissions-candidateanonymize) permission.**\n\n**Note**: this action cannot be reversed and requires all of a candidate's applications to be in the archived or hired state.\n","operationId":"candidateAnonymize","tags":["Candidate"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","required":["candidateId"],"properties":{"candidateId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the candidate to anonymize."}]}}}}}},"responses":{"200":{"description":"Responses for the candidate.anonymize endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","description":"The anonymized candidate","properties":{"results":{"$ref":"#/paths/~1candidate.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/candidate.create":{"post":{"summary":"candidate.create","operationId":"candidateCreate","description":"Creates a new candidate\n\n**Requires the [`candidatesWrite`](authentication#permissions-candidatecreate) permission.**\n\nTo set values for custom fields on Candidates, use the [`customFields.setValue`](ref:customfieldsetvalue) endpoint.\n","tags":["Candidate"],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","example":"Adam Hart","description":"The first and last name of the candidate to be created."},"email":{"allOf":[{"type":"string","example":"test@ashbyhq.com"},{"description":"Primary, personal email of the candidate to be created."}]},"phoneNumber":{"allOf":[{"type":"string","example":"555-555-5555"},{"description":"Primary, personal phone number of the candidate to be created."}]},"linkedInUrl":{"type":"string","example":"https://linkedin.com/in/user","description":"Url to the candidate's LinkedIn profile. Must be a valid Url."},"githubUrl":{"type":"string","example":"https://github.com/user","description":"Url to the candidate's Github profile. Must be a valid Url."},"website":{"type":"string","example":"https://twitter.com/user","description":"Url of the candidate's website. Must be a valid Url."},"alternateEmailAddresses":{"type":"array","items":{"type":"string"},"example":["test.email@ashbyhq.com"],"description":"Array of alternate email address to add to the candidate's profile."},"sourceId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The source to set on the candidate being created."}]},"creditedToUserId":{"allOf":[{"$ref":"#/paths/~1interviewerPool.addUser/post/requestBody/content/application~1json/schema/properties/userId"},{"description":"The id of the user the candidate will be credited to."}]},"location":{"type":"object","description":"The location of the candidate.","properties":{"city":{"type":"string","example":"San Francisco","description":"The city of the candidate's location."},"region":{"type":"string","example":"California","description":"The region (state, province, etc.) of the candidate's location."},"country":{"type":"string","example":"United States","description":"The country of the candidate's location."}}},"createdAt":{"allOf":[{"description":"An ISO date string to set the candidate's `createdAt` timestamp. When this value isn't provided, the `createdAt` timestamp defaults to the time the call was made.\n"},{"$ref":"#/paths/~1candidate.createNote/post/requestBody/content/application~1json/schema/properties/createdAt"}]}},"required":["name"]}}}},"responses":{"200":{"description":"Responses for the candidate.create endpoint","content":{"application/json":{"schema":{"oneOf":[{"title":"Success response","allOf":[{"$ref":"#/paths/~1job.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/0"},{"type":"object","properties":{"results":{"$ref":"#/paths/~1candidate.info/post/responses/200/content/application~1json/schema/oneOf/0/allOf/1/properties/results"}},"required":["results"]}]},{"$ref":"#/paths/~1report.generate/post/responses/429/content/application~1json/schema"}]}}}}}}},"/candidate.createNote":{"post":{"summary":"candidate.createNote","description":"Creates a note on a candidate.\n\n**Requires the [`candidatesWrite`](authentication#permissions-candidatecreatenote) permission.**\n\nFor notes submitted with a type of `text/html`, we support the elements listed below. Any unsupported elements will be stripped out of the note's content before posting.\n - Bold ``\n - Italic ``\n - Underline ``\n - Links ``\n - Bulleted Lists - `