---
title: Approvals
description: The 5 operations under approvals, as typed calls on the generated REST client.
---

Available from `@codespar/sdk` 0.12.0; the version on npm is 0.16.19. When these docs build, the examples on this page are compiled against `@codespar/sdk` 0.16.19, the version this site installs: a call that does not type-check against it fails the build.

Every call below is `cs.api` reaching one operation of the OpenAPI document this page was generated from; the [REST client overview](/docs/api/sdk/rest-client) explains `request`, `response`, the option bag and the errors. The values are placeholders shaped by the document.

```ts twoslash
import { CodeSpar } from "@codespar/sdk";

const cs = new CodeSpar({ apiKey: process.env.CODESPAR_API_KEY });
```

### GET `/v1/approvals`

List approvals held for review

```ts twoslash
import { CodeSpar } from "@codespar/sdk";
const cs = new CodeSpar({ apiKey: "csk_test_0000" });
// ---cut---
const result = await cs.api.get("/v1/approvals");
```

Parameters, body and every documented response: [GET /v1/approvals in the HTTP reference](/docs/api/reference/approvals#get-v1approvals).

### GET `/v1/approvals/health`

Approval queue health

```ts twoslash
import { CodeSpar } from "@codespar/sdk";
const cs = new CodeSpar({ apiKey: "csk_test_0000" });
// ---cut---
const result = await cs.api.get("/v1/approvals/health");
```

Parameters, body and every documented response: [GET /v1/approvals/health in the HTTP reference](/docs/api/reference/approvals#get-v1approvalshealth).

### GET `/v1/approvals/{id}`

Read one approval

```ts twoslash
import { CodeSpar } from "@codespar/sdk";
const cs = new CodeSpar({ apiKey: "csk_test_0000" });
// ---cut---
const result = await cs.api.get("/v1/approvals/{id}", {
  path: {
    id: "approval_0000000000000000"
  }
});
```

Parameters, body and every documented response: [GET /v1/approvals/\{id\} in the HTTP reference](/docs/api/reference/approvals#get-v1approvalsid).

### POST `/v1/approvals/{id}/decide`

Approve or deny a held call

```ts twoslash
import { CodeSpar } from "@codespar/sdk";
const cs = new CodeSpar({ apiKey: "csk_test_0000" });
// ---cut---
const r = await cs.api.response("post", "/v1/approvals/{id}/decide", {
  path: {
    id: "approval_0000000000000000"
  },
  body: {
    decision: "approve",
    reason: "string"
  }
});
// r.status is one of the documented statuses (200, 403),
// each with its own body shape in r.data; nothing here throws on 403.
if (r.ok) {
  console.log(r.data);
}
```

Parameters, body and every documented response: [POST /v1/approvals/\{id\}/decide in the HTTP reference](/docs/api/reference/approvals#post-v1approvalsiddecide).

### GET `/v1/approvals/{id}/status`

Poll a held call for its outcome

```ts twoslash
import { CodeSpar } from "@codespar/sdk";
const cs = new CodeSpar({ apiKey: "csk_test_0000" });
// ---cut---
const result = await cs.api.get("/v1/approvals/{id}/status", {
  path: {
    id: "approval_0000000000000000"
  }
});
```

Parameters, body and every documented response: [GET /v1/approvals/\{id\}/status in the HTTP reference](/docs/api/reference/approvals#get-v1approvalsidstatus).

