POST /api/v1/approvals/{approval_id}/decision
cURL
curl --request POST \
--url '/api/v1/approvals/{approval_id}/decision' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"decision": "changes_requested",
"feedback": "Use the approved customer-facing wording."
}'JavaScript
const response = await fetch('/api/v1/approvals/{approval_id}/decision', {
method: 'POST',
headers: {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
body: JSON.stringify({
"decision": "changes_requested",
"feedback": "Use the approved customer-facing wording."
})
});
const data = await response.json();Python
import requests
response = requests.request(
"POST",
"/api/v1/approvals/{approval_id}/decision",
headers={
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
},
json={
"decision": "changes_requested",
"feedback": "Use the approved customer-facing wording."
},
)
print(response.json())PHP
<?php
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', '/api/v1/approvals/{approval_id}/decision', [
'headers' => [
'Authorization' => 'Bearer <token>',
'Content-Type' => 'application/json',
],
'json' => [
'decision' => 'changes_requested',
'feedback' => 'Use the approved customer-facing wording.',
],
]);
echo $response->getBody();Go
package main
import (
"fmt"
"io"
"net/http"
"strings"
)
func main() {
body := strings.NewReader(`{
"decision": "changes_requested",
"feedback": "Use the approved customer-facing wording."
}`)
req, _ := http.NewRequest("POST", "/api/v1/approvals/{approval_id}/decision", body)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
data, _ := io.ReadAll(res.Body)
fmt.Println(string(data))
}Ruby
require "net/http"
uri = URI("/api/v1/approvals/{approval_id}/decision")
http = Net::HTTP.new(uri.host, uri.port)
http.use_ssl = uri.scheme == "https"
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
{
"decision": "changes_requested",
"feedback": "Use the approved customer-facing wording."
}
JSON
response = http.request(request)
puts response.bodyJava
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("/api/v1/approvals/{approval_id}/decision"))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.method("POST", HttpRequest.BodyPublishers.ofString("""
{
"decision": "changes_requested",
"feedback": "Use the approved customer-facing wording."
}
"""))
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());Authorization
A bearer token in the Authorization header.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
approval_id | string | Yes |
Request body
application/json · Required
| Name | Type | Required | Description |
|---|---|---|---|
decision | string | Yes | One of: approved, rejected, changes_requested |
feedback | string or null | No |
Responses
200 · The resolved approval request.
| Name | Type | Required | Description |
|---|---|---|---|
data | ApprovalDecision | Yes | |
data.id | string | Yes | |
data.object | string | Yes | |
data.run_id | string or null | Yes | |
data.status | string | Yes | One of: approved, rejected, changes_requested |
data.decision | string | Yes | One of: approved, rejected, changes_requested |
data.responded_at | string (date-time) or null (date-time) | Yes | |
data.updated_at | string (date-time) or null (date-time) | Yes | |
request_id | string | Yes |
{
"data": {
"id": "string",
"object": "approval",
"run_id": "string",
"status": "approved",
"decision": "approved",
"responded_at": "2024-01-01T00:00:00Z",
"updated_at": "2024-01-01T00:00:00Z"
},
"request_id": "string"
}401 · The Bearer token is missing, malformed, expired, or revoked.
| Name | Type | Required | Description |
|---|---|---|---|
error | object | Yes | |
error.code | string | Yes | |
error.message | string | Yes | |
error.details | object | No | |
request_id | string | Yes |
{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"request_id": "string"
}403 · The token lacks the required ability.
| Name | Type | Required | Description |
|---|---|---|---|
error | object | Yes | |
error.code | string | Yes | |
error.message | string | Yes | |
error.details | object | No | |
request_id | string | Yes |
{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"request_id": "string"
}404 · The resource was not found in the token workspace.
| Name | Type | Required | Description |
|---|---|---|---|
error | object | Yes | |
error.code | string | Yes | |
error.message | string | Yes | |
error.details | object | No | |
request_id | string | Yes |
{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"request_id": "string"
}409 · The operation conflicts with current state or idempotency history.
| Name | Type | Required | Description |
|---|---|---|---|
error | object | Yes | |
error.code | string | Yes | |
error.message | string | Yes | |
error.details | object | No | |
request_id | string | Yes |
{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"request_id": "string"
}422 · The request is invalid or the workspace cannot perform the operation.
| Name | Type | Required | Description |
|---|---|---|---|
error | object | Yes | |
error.code | string | Yes | |
error.message | string | Yes | |
error.details | object | No | |
request_id | string | Yes |
{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"request_id": "string"
}429 · A per-token rate limit was exceeded.
| Name | Type | Required | Description |
|---|---|---|---|
error | object | Yes | |
error.code | string | Yes | |
error.message | string | Yes | |
error.details | object | No | |
request_id | string | Yes |
{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"request_id": "string"
}503 · The site administrator has disabled the Workspace API.
| Name | Type | Required | Description |
|---|---|---|---|
error | object | Yes | |
error.code | string | Yes | |
error.message | string | Yes | |
error.details | object | No | |
request_id | string | Yes |
{
"error": {
"code": "string",
"message": "string",
"details": {}
},
"request_id": "string"
}