Files
2025-11-30 09:06:02 +08:00

159 lines
3.0 KiB
Markdown

# Collections API
## Overview
The Collections API allows you to programmatically manage PocketBase collections, including creating, updating, deleting, and configuring collections.
## List Collections
```http
GET /api/collections
Authorization: Bearer {admin_token}
```
Response:
```json
{
"page": 1,
"perPage": 30,
"totalItems": 3,
"totalPages": 1,
"items": [
{
"id": "_pbc_344172009",
"name": "users",
"type": "auth",
"system": false,
"fields": [
{
"name": "email",
"type": "email",
"required": true,
"options": {
"exceptDomains": null,
"onlyDomains": null
}
},
{
"name": "verified",
"type": "bool",
"required": false
}
],
"indexes": [],
"listRule": null,
"viewRule": null,
"createRule": null,
"updateRule": null,
"deleteRule": null,
"created": "2024-01-01 12:00:00Z",
"updated": "2024-01-10 08:30:00Z"
}
]
}
```
## Get Single Collection
```http
GET /api/collections/{collectionId}
Authorization: Bearer {admin_token}
```
## Create Collection
```http
POST /api/collections
Content-Type: application/json
Authorization: Bearer {admin_token}
{
"name": "products",
"type": "base",
"fields": [
{
"name": "title",
"type": "text",
"required": true,
"options": {
"min": 1,
"max": 200
}
},
{
"name": "price",
"type": "number",
"required": true,
"options": {
"min": 0
}
}
],
"indexes": [],
"listRule": "status = 'published'",
"viewRule": "status = 'published'",
"createRule": "@request.auth.id != ''",
"updateRule": "@request.auth.role = 'admin'",
"deleteRule": "@request.auth.role = 'admin'"
}
```
## Update Collection
```http
PATCH /api/collections/{collectionId}
Content-Type: application/json
Authorization: Bearer {admin_token}
{
"name": "products",
"fields": [
{
"name": "title",
"type": "text",
"required": true
}
],
"indexes": [
"CREATE INDEX idx_products_title ON products (title)"
],
"listRule": "status = 'published'",
"updateRule": "@request.auth.role = 'admin'"
}
```
## Delete Collection
```http
DELETE /api/collections/{collectionId}
Authorization: Bearer {admin_token}
```
## Import Collections
```http
POST /api/collections/import
Content-Type: application/json
Authorization: Bearer {admin_token}
{
"collections": [
{
"name": "posts",
"type": "base",
"fields": [
{
"name": "title",
"type": "text"
}
],
"listRule": "",
"viewRule": "",
"createRule": "@request.auth.id != ''"
}
]
}
For the full set of fields and options, refer to the [official API Collections reference](https://pocketbase.io/docs/api-collections/).
**Note:** This is a placeholder file. See [core/collections.md](../core/collections.md) for comprehensive collection documentation.