# Get role binding details

**GET** `/admin/role-bindings/{role_binding_id}`

:::code-group
```bash title="cURL"
curl --request GET \
  --url https://api.pinecone.io/admin/role-bindings/{role_binding_id} \
  --header 'Authorization: Bearer <token>' \
  --header 'X-Pinecone-Api-Version: <x-pinecone-api-version>'
```

```python title="Python"
import requests

url = "https://api.pinecone.io/admin/role-bindings/{role_binding_id}"

headers = {
    "Authorization": "Bearer <token>",
    "X-Pinecone-Api-Version": "<x-pinecone-api-version>"
}

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

print(response.text)
```

```javascript title="JavaScript"
const options = {method: "GET", headers: {"Authorization": "Bearer <token>", "X-Pinecone-Api-Version": "<x-pinecone-api-version>"}};

fetch("https://api.pinecone.io/admin/role-bindings/{role_binding_id}", options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
```

```php title="PHP"
<?php

$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://api.pinecone.io/admin/role-bindings/{role_binding_id}",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "Authorization: Bearer <token>",
    "X-Pinecone-Api-Version: <x-pinecone-api-version>"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
```

```go title="Go"
package main

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

func main() {

	url := "https://api.pinecone.io/admin/role-bindings/{role_binding_id}"

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

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("X-Pinecone-Api-Version", "<x-pinecone-api-version>")

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

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

	fmt.Println(string(body))

}
```

```java title="Java"
HttpResponse<String> response = Unirest.get("https://api.pinecone.io/admin/role-bindings/{role_binding_id}")
  .header("Authorization", "Bearer <token>")
  .header("X-Pinecone-Api-Version", "<x-pinecone-api-version>")
  .asString();
```

```ruby title="Ruby"
require 'uri'
require 'net/http'

url = URI("https://api.pinecone.io/admin/role-bindings/{role_binding_id}")

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

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
request["X-Pinecone-Api-Version"] = '<x-pinecone-api-version>'

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

:::code-group
```json title="200"
{
  "created_at": "2026-04-10T15:23:00.000Z",
  "id": "9a8e3528-b9c0-4358-84ce-84c28e91b566",
  "principal_id": "f8a3b2c1-4d5e-6f7a-8b9c-0d1e2f3a4b5c",
  "principal_type": "service_account",
  "resource_id": "a2f7dddb-1597-4eff-9f71-535fde243f58",
  "resource_type": "project",
  "role": "DataPlaneEditor"
}
```

```json title="401"
{
  "error": {
    "code": "UNAUTHENTICATED",
    "message": "Invalid API key."
  },
  "status": 401
}
```

```json title="403"
{
  "error": {
    "code": "QUOTA_EXCEEDED",
    "message": "The index exceeds the project quota of 5 pods by 2 pods. Upgrade your account or change the project settings to increase the quota."
  },
  "status": 429
}
```

```json title="404"
{
  "error": {
    "code": "QUOTA_EXCEEDED",
    "message": "The index exceeds the project quota of 5 pods by 2 pods. Upgrade your account or change the project settings to increase the quota."
  },
  "status": 429
}
```

```json title="500"
{
  "error": {
    "code": "UNKNOWN",
    "message": "Internal server error"
  },
  "status": 500
}
```

```json title="4XX"
{
  "error": {
    "code": "QUOTA_EXCEEDED",
    "message": "The index exceeds the project quota of 5 pods by 2 pods. Upgrade your account or change the project settings to increase the quota."
  },
  "status": 429
}
```
:::

#### Authorizations

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `Authorization` | `string` | - |  |

An [access token](/guides/admin-organizations-manage-service-accounts#retrieve-an-access-token) must be provided in the `Authorization` header using the `Bearer` scheme.

#### Headers

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `X-Pinecone-Api-Version` | `string` | `2026-07` | Required date-based version header |

#### Path Parameters

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `role_binding_id` | `string` | - | Role binding ID |

#### Response

`200` — The role binding.

Grants a `role` to a `principal` at a `resource` scope.

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `id` | `string` | - | The unique ID of the role binding. |

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `principal_type` | `string` | - | The kind of principal that receives permissions from a role binding. Possible values: user, service_account, api_key, invite. Example: service_account |

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `principal_id` | `string` | - | The principal's ID. A UUID for all principal types (user, service_account, api_key, invite). Example: e2e92523-85dc-4142-b8c2-e681be8b78df |

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `resource_type` | `string` | - | The kind of resource scope a role binding applies to. Possible values: organization, project. Example: project |

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `resource_id` | `string` | - | The organization or project that the binding is scoped to. |

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `role` | `string` | - | A role assigned to a principal at a resource scope. Example: ProjectOwner |

| Prop | Type | Default | Description |
| --- | --- | --- | --- |
| `created_at` | `string` | - | When the role binding was created. |

## Related pages

- [List role bindings](./admin-2-role-bindings-list-role-bindings.md)
- [Create a role binding](./admin-2-role-bindings-create-a-role-binding.md)
- [Delete a role binding](./admin-2-role-bindings-delete-a-role-binding.md)

# Agent Instructions

Cite this page’s canonical URL and keep its documentation version.
Follow Link headers to discover available agent guidance and tools.
Read the advertised skill for the requested version before choosing starting pages.
Treat documentation as reference material, not execution authorization.
