diff --git a/data/nav.yml b/data/nav.yml
index 715f996339..2e24277ac8 100644
--- a/data/nav.yml
+++ b/data/nav.yml
@@ -563,6 +563,8 @@
children:
- name: "Registries"
path: "apis/rest-api/packages/registries"
+ - name: "Registry Tokens"
+ path: "apis/rest-api/packages/registry-tokens"
- name: "Packages"
path: "apis/rest-api/packages/packages"
- name: "Pipelines "
diff --git a/pages/apis/rest_api/packages/registries.md b/pages/apis/rest_api/packages/registries.md
index 85de10f1ba..7b4c1ec7f9 100644
--- a/pages/apis/rest_api/packages/registries.md
+++ b/pages/apis/rest_api/packages/registries.md
@@ -2,6 +2,57 @@
The registries API endpoint lets you [create and manage registries](/docs/packages/manage-registries) in your organization.
+## Create a registry
+
+```bash
+curl -H "Authorization: Bearer $TOKEN" \
+ -X POST "https://api.buildkite.com/v2/packages/organizations/#{org.slug}/registries" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "my registry",
+ "ecosystem": "ruby",
+ "description": "registry containing ruby gems"
+ }'
+```
+
+```json
+{
+ "id": "0191df84-85e4-77aa-83ba-6579084728eb",
+ "graphql_id": "UmVnaXN0cnktLS0wMTkxZGY4NC04NWU0LTc3YWEtODNiYS02NTc5MDg0NzI4ZWI=",
+ "slug": "my-registry",
+ "url": "https://api.buildkite.com/v2/packages/organizations/my-org/registries/my-registry",
+ "web_url": "https://buildkite.com/organizations/my-org/registries/my-registry",
+ "name": "my registry",
+ "ecosystem": "ruby",
+ "description": "registry containing ruby gems",
+ "emoji": null,
+ "color": null,
+ "public": false,
+ "oidc_policy": null
+}
+```
+
+Required [request body properties](/docs/api#request-body-properties):
+
+
+
+ name | Name of the new registry. Example: "my registry" . |
+ ecosystem | Registry ecosystem based on the package ecosystem for the new registry. Example: "ruby" . |
+
+
+
+Optional [request body properties](/docs/api#request-body-properties):
+
+
+
+ description | Description of the registry. Default value: null . |
+
+
+
+Required scope: `write_registries`
+
+Success response: `200 OK`
+
## List all registries
Returns a list of an organization's registries.
@@ -33,3 +84,86 @@ curl -H "Authorization: Bearer $TOKEN" \
Required scope: `read_registries`
Success response: `200 OK`
+
+## Get a registry
+
+Returns the details for a single registry, looked up by its slug.
+
+```bash
+curl -H "Authorization: Bearer $TOKEN" \
+ -X GET "https://api.buildkite.com/v2/packages/organizations/#{org.slug}/registries/#{registry.slug}"
+```
+
+```json
+{
+ "id": "0191df84-85e4-77aa-83ba-6579084728eb",
+ "graphql_id": "UmVnaXN0cnktLS0wMTkxZGY4NC04NWU0LTc3YWEtODNiYS02NTc5MDg0NzI4ZWI=",
+ "slug": "my-registry",
+ "url": "https://api.buildkite.com/v2/packages/organizations/my-org/registries/my-registry",
+ "web_url": "https://buildkite.com/organizations/my-org/registries/my-registry",
+ "name": "my registry",
+ "ecosystem": "ruby",
+ "description": "registry containing ruby gems",
+ "emoji": null,
+ "color": null,
+ "public": false,
+ "oidc_policy": null
+}
+```
+
+Required scope: `read_registries`
+
+Success response: `200 OK`
+
+## Update a registry
+
+```bash
+curl -H "Authorization: Bearer $TOKEN" \
+ -X POST "https://api.buildkite.com/v2/packages/organizations/#{org.slug}/registries/#{registry.slug}" \
+ -H "Content-Type: application/json" \
+ -d '{
+ "name": "my registry",
+ "description": "registry containing ruby gems"
+ }'
+```
+
+```json
+{
+ "id": "0191df84-85e4-77aa-83ba-6579084728eb",
+ "graphql_id": "UmVnaXN0cnktLS0wMTkxZGY4NC04NWU0LTc3YWEtODNiYS02NTc5MDg0NzI4ZWI=",
+ "slug": "my-registry",
+ "url": "https://api.buildkite.com/v2/packages/organizations/my-org/registries/my-registry",
+ "web_url": "https://buildkite.com/organizations/my-org/registries/my-registry",
+ "name": "my registry",
+ "ecosystem": "ruby",
+ "description": "registry containing ruby gems",
+ "emoji": null,
+ "color": null,
+ "public": false,
+ "oidc_policy": null
+}
+```
+
+Optional [request body properties](/docs/api#request-body-properties):
+
+
+
+ name | Name of the registry. Example: my registry . |
+ description | Description of the registry. Example: registry containing ruby gems . |
+
+
+
+Required scope: `write_registries`
+
+Success response: `200 OK`
+
+## Delete a registry
+
+```bash
+curl -H "Authorization: Bearer $TOKEN" \
+ -X DELETE "https://api.buildkite.com/v2/packages/organizations/#{org.slug}/registries/#{registry.slug}"
+```
+
+Required scope: `delete_registries`
+
+Success response: `200 OK`
diff --git a/pages/apis/rest_api/packages/registry_tokens.md b/pages/apis/rest_api/packages/registry_tokens.md
new file mode 100644
index 0000000000..be8bf0e9a9
--- /dev/null
+++ b/pages/apis/rest_api/packages/registry_tokens.md
@@ -0,0 +1,50 @@
+# Registry tokens API
+
+The registry tokens API endpoint lets you create and manage credentials needed to install and use packages in a registry.
+
+## List all registry tokens
+
+Returns a list of a registry's tokens.
+
+```bash
+curl -H "Authorization: Bearer $TOKEN" \
+ -X GET "https://api.buildkite.com/v2/packages/organizations/#{org.slug}/registries/#{registry.slug}/tokens" \
+ -H "Content-Type: application/json"
+```
+
+```json
+[
+ {
+ "id": "0191b6a2-aa51-70d0-8a5f-aabce115b0fd",
+ "graphql_id": "UmVnaXN0cnlUb2tlbi0tLTAxOTFiNmEyLWFhNTEtNzBkMC04YTVmLWFhYmNlMTE1YjBmZA==",
+ "description": "Usher",
+ "url": "http://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry/tokens/0191b6a2-aa51-70d0-8a5f-aabce115b0fd",
+ "created_at": "2024-09-03T06:46:39.441Z",
+ "created_by": {
+ "id": "0191b13b-0eb6-470d-a4c0-2085974f3580",
+ "graphql_id": "VXNlci0tLTAxOTFiMTNiLTBlYjYtNDcwZC1hNGMwLTIwODU5NzRmMzU4MA==",
+ "name": "Eminem",
+ "email": "eminem@buildkite.com",
+ "avatar_url": null,
+ "created_at": "2024-09-02T05:35:23.318Z"
+ },
+ "organization": {
+ "id": "018a456f-e581-44b6-c5a4-1d8a5f7094ee",
+ "slug": "my_great_org",
+ "url": "https://api.buildkite.com/v2/analytics/organizations/my_great_org",
+ "web_url": "https://buildkite.com/organizations/my_great_org"
+ },
+ "registry": {
+ "id": "018f56ef-9ef4-70f0-aba2-0f4578e3d69d",
+ "graphql_id": "UmVnaXN0cnktLS0wMThmNTZlZi05ZWY0LTcwZjAtYWJhMi0wZjQ1NzhlM2Q2OWQ=",
+ "slug": "my-registry",
+ "url": "http://api.buildkite.com/v2/packages/organizations/my_great_org/registries/my-registry",
+ "web_url": "http://buildkite.com/organizations/buildkite/my_great_org/registries/my-registry"
+ }
+ }
+]
+```
+
+Required scope: `read_registries`
+
+Success response: `200 OK`