Skip to content
Home / Docs / Assets

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"

Last updated October 29, 2026 Was this page helpful? Tell us →