Assets API
DELETE /v1/assets
Bulk Delete Assets
Bulk delete assets. Returns split of deleted vs those requiring confirmation.
Auth: ApiKeyAuth, BearerAuth
Request body (BulkDeleteRequest)
| Field | Type | Required | Description |
|---|---|---|---|
asset_ids |
array |
yes | |
confirm |
boolean | no |
Response 200 (BulkDeleteResponse)
curl -X DELETE "https://api.pinbridge.io/v1/assets" \
-H "X-API-Key: $PINBRIDGE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"asset_ids": ["3fa85f64-5717-4562-b3fc-2c963f66afa6"]}'
GET /v1/assets
List Assets
List all assets for the organization, with optional filters.
total in the body (and the X-Total-Count header) counts the assets
matching the filters and search, ignoring limit and offset.
Auth: ApiKeyAuth, BearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
workspace_id |
query | no | string? | |
sort |
query | no | enum(created_at_desc, created_at_asc, name_asc, name_desc, size_desc, size_asc) | Sort order |
limit |
query | no | integer | |
offset |
query | no | integer | |
q |
query | no | string? | Case-insensitive search on the original file name |
asset_type |
query | no | AssetType? | Only images or videos |
in_use |
query | no | boolean? | true: only assets used by a pin or a pending scheduled pin; false: only unused assets |
since |
query | no | string? | Only assets uploaded at or after this ISO 8601 timestamp |
until |
query | no | string? | Only assets uploaded before this ISO 8601 timestamp |
Response 200 (AssetListResponse)
curl -X GET "https://api.pinbridge.io/v1/assets" \
-H "X-API-Key: $PINBRIDGE_API_KEY"
POST /v1/assets/images
Upload Image Asset
Upload an image asset for later pin publishing.
Auth: ApiKeyAuth, BearerAuth
Request body: multipart/form-data with a file field.
Response 201 (AssetResponse)
curl -X POST "https://api.pinbridge.io/v1/assets/images" \
-H "X-API-Key: $PINBRIDGE_API_KEY" \
-F "file=@/path/to/file"
POST /v1/assets/videos
Upload Video Asset
Upload a video asset for later pin publishing.
Auth: ApiKeyAuth, BearerAuth
Request body: multipart/form-data with a file field.
Response 201 (AssetResponse)
curl -X POST "https://api.pinbridge.io/v1/assets/videos" \
-H "X-API-Key: $PINBRIDGE_API_KEY" \
-F "file=@/path/to/file"
DELETE /v1/assets/{asset_id}
Delete Asset
Delete an asset. Returns requires_confirmation=True while it is in use.
In use means referenced by a pin or by a scheduled pin that has not run yet;
referenced_pin_count counts both. With confirm=true the asset is deleted
anyway: pins keep their record without it, and pending schedules lose it, so
an unpublished pin or schedule that used it fails to publish.
Auth: ApiKeyAuth, BearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
asset_id |
path | yes | string | |
confirm |
query | no | boolean |
Response 200 (AssetDeleteResponse)
curl -X DELETE "https://api.pinbridge.io/v1/assets/$ASSET_ID" \
-H "X-API-Key: $PINBRIDGE_API_KEY"
GET /v1/assets/{asset_id}
Get Asset
Return metadata for an accessible asset.
Auth: ApiKeyAuth, BearerAuth
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
asset_id |
path | yes | string |
Response 200 (AssetResponse)
curl -X GET "https://api.pinbridge.io/v1/assets/$ASSET_ID" \
-H "X-API-Key: $PINBRIDGE_API_KEY"
GET /v1/assets/{asset_id}/content
Get Asset Content
Serve the uploaded asset content.
Parameters
| Name | In | Required | Type | Description |
|---|---|---|---|---|
asset_id |
path | yes | string |
Response 200
curl -X GET "https://api.pinbridge.io/v1/assets/$ASSET_ID/content"
