---
title: "Create approval request"
method: POST
path: "/approvals"
tags: ["approvals"]
---

# Create approval request

`POST /approvals`

## Request

- Base URL: `https://api.smartrecruiters.com/approvals-api/v201910`
- URL: `https://api.smartrecruiters.com/approvals-api/v201910/approvals`
- Auth: one of:
  - API key in header `x-smarttoken`
  - OAuth 2
    - Authorization code: `https://www.smartrecruiters.com/identity/oauth/allow`
    - Token URL: `https://api.smartrecruiters.com/identity/oauth/token` scopes: `approvals_create`

The new approval request will be created based on approval request with provided baseId. If base approval request is pending, it will be abandoned. The newly created request will contain new id, type, decision mode and steps, as well as PENDING statuses and decisions.

## Request body

- object
  - `baseId` string, required: Approval request id
  - `type` 'sequential' | 'parallel', required
  - `decisionMode` 'any' | 'all', required
  - `steps` StepInput[], required: Steps to complete approval
    - `approvers` ApproverInput[]: The order matters when type is `sequential`
      - `id` string: Approver id

## Response `201`

Approval request created

- ApprovalRequest: Approval request
  - `id` string: Approval request id
  - `subject` Subject: Subject of approval request
    - `id` string
    - `type` 'job' | 'offer'
  - `type` 'sequential' | 'parallel'
  - `decisionMode` 'any' | 'all'
  - `status` 'PENDING' | 'APPROVED' | 'REJECTED' | 'ABANDONED': Status of approval request
  - `steps` Step[]
    - `status` 'PENDING' | 'APPROVED' | 'REJECTED' | 'SKIPPED': Status of approval step
    - `approvers` Approver[]: The order matters when type is `sequential`
      - `id` string: Approver id
      - `decision` 'PENDING' | 'APPROVED' | 'REJECTED' | 'SKIPPED': Decision status for approver
      - `decidedOn` string, date-time: Decision date

## Other responses

- `400`: Unable to create approval request with codes * **BASE_ID_NOT_FOUND** when base approval request id doesn't exist * **APPROVER_ID_NOT_FOUND** when at least one of approver ids doesn't exist * **INVALID_DECISION_MODE** when decisionMode is `all` and type is `sequential`.
- `401`: Unable to create approval request with codes * **UNAUTHORIZED_ACCESS** when no permissions to create approval request

---

[API](https://skmtc.dev/smartrecruiters/apis/approvals-api.md) - [All operations](https://skmtc.dev/smartrecruiters/apis/approvals-api/llms.txt) - [OpenAPI document](https://skmtc.dev/smartrecruiters/apis/approvals-api/revisions/19e2c88e92b5?raw)
