> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.astropods.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.astropods.com/_mcp/server.

# Authorize a deployment request

GET https://astropods.com/api/v1/deployments/authorize

Checks whether an inbound request to the calling deployment is allowed by its grants. The messaging container calls it, as does an agent that serves its own web UI. The token identifies the deployment. Identity fields are only returned when the request is allowed.

Reference: https://docs.astropods.com/api-reference/astropods-api/deployments/authorize-a-deployment-request

## Authentication

- `Authorization` header (bearer token, required) — The deployment's token, injected into the agent as ASTRO_AUTHZ_TOKEN.

## Request

### Query parameters

- `adapter` (string, required) — The adapter handling the request: web, slack, or custom
- `identity_type` (string, optional) — user for a signed-in user, slack for a Slack user, or empty for anonymous
- `identity_id` (string, optional) — The user ID for identity_type; supply it with identity_type
- `identity_scope` (string, optional) — Disambiguates identity_id: the Slack team_id for slack, empty otherwise

## Response

### 200

OK

- `allowed` (boolean, optional)
- `slack_team_id` (string, optional) — The Slack workspace ID from the request. Only present when allowed and identity_type is slack.
- `slack_user_id` (string, optional) — The Slack user ID from the request. Only present when allowed and identity_type is slack.
- `user_id` (string, optional) — Resolved platform user ID. Only present when allowed.

## Errors

### 400 Bad Request Error

Bad Request

- `code` (string, optional)
- `details` (string, optional)
- `error` (string, optional)

### 401 Unauthorized Error

Unauthorized

- `code` (string, optional)
- `details` (string, optional)
- `error` (string, optional)

## Examples

**Response**

```json
{
  "allowed": true,
  "slack_team_id": "string",
  "slack_user_id": "string",
  "user_id": "string"
}
```

**SDK Code**

```python
import requests

url = "https://astropods.com/api/v1/deployments/authorize"

querystring = {"adapter":"adapter"}

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers, params=querystring)

print(response.json())
```

```javascript
const url = 'https://astropods.com/api/v1/deployments/authorize?adapter=adapter';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"net/http"
	"io"
)

func main() {

	url := "https://astropods.com/api/v1/deployments/authorize?adapter=adapter"

	req, _ := http.NewRequest("GET", url, nil)

	req.Header.Add("Authorization", "Bearer <token>")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://astropods.com/api/v1/deployments/authorize?adapter=adapter")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://astropods.com/api/v1/deployments/authorize?adapter=adapter")
  .header("Authorization", "Bearer <token>")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://astropods.com/api/v1/deployments/authorize?adapter=adapter', [
  'headers' => [
    'Authorization' => 'Bearer <token>',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://astropods.com/api/v1/deployments/authorize?adapter=adapter");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <token>");
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = ["Authorization": "Bearer <token>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://astropods.com/api/v1/deployments/authorize?adapter=adapter")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```