The Co-operative Bank Bulk Upload API
Creating several assets in one background run
Creating several assets in one background run
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/co-operative-bank:co-operative-bank-bulk-upload-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: dotCMS REST Bulk Upload API
version: '3'
description: Creating several assets in one background run
servers:
- url: /
description: dotCMS Server
tags:
- name: Bulk Upload
description: Creating several assets in one background run
paths:
/api/v1/assets/_bulkupload:
post:
tags:
- Bulk Upload
summary: Create several assets from one upload, asynchronously
description: 'Accepts several files plus a JSON `form` part naming the target and the base type, and answers `202` with a job handle **before the assets are created**. The work runs in the background: follow it with `GET /api/v1/jobs/{jobId}/status`, watch it with `GET /api/v1/jobs/{jobId}/monitor`, cancel it with `POST /api/v1/jobs/{jobId}/cancel`, and read the per-file outcome from the job''s result. The submitting author is notified on any terminal state, so the outcome survives them navigating away.
One file failing does not abort the batch: every remaining file is still attempted, and each failure is reported by name with a machine-readable reason.'
operationId: bulkUploadAssets
requestBody:
content:
multipart/form-data:
schema:
$ref: '#/components/schemas/FormDataMultiPart'
responses:
'202':
description: Batch queued
content:
application/json:
schema:
$ref: '#/components/schemas/ResponseEntityBulkUploadSubmitView'
'400':
description: No files; malformed or missing `form`; unsupported base type; neither or both of folderId/siteId; more files than the configured maximum; request not same-origin; staging disabled
'403':
description: The author may not add children to the target
'404':
description: The target folder or site does not exist
'413':
description: The batch is over the configured total size
components:
schemas:
MessageBodyWorkers:
type: object
ErrorEntity:
type: object
properties:
errorCode:
type: string
message:
type: string
fieldName:
type: string
BulkUploadSubmitResponse:
type: object
properties:
jobId:
type: string
statusUrl:
type: string
submitted:
type: integer
format: int32
Pagination:
type: object
properties:
currentPage:
type: integer
format: int32
perPage:
type: integer
format: int32
totalEntries:
type: integer
format: int64
FormDataMultiPart:
type: object
properties:
contentDisposition:
$ref: '#/components/schemas/ContentDisposition'
entity:
type: object
headers:
type: object
additionalProperties:
type: array
items:
type: string
mediaType:
type: object
properties:
type:
type: string
subtype:
type: string
parameters:
type: object
additionalProperties:
type: string
wildcardType:
type: boolean
wildcardSubtype:
type: boolean
messageBodyWorkers:
$ref: '#/components/schemas/MessageBodyWorkers'
parent:
$ref: '#/components/schemas/MultiPart'
providers:
type: object
bodyParts:
type: array
items:
$ref: '#/components/schemas/BodyPart'
fields:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/FormDataBodyPart'
parameterizedHeaders:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/ParameterizedHeader'
FormDataBodyPart:
type: object
properties:
contentDisposition:
$ref: '#/components/schemas/ContentDisposition'
entity:
type: object
headers:
type: object
additionalProperties:
type: array
items:
type: string
mediaType:
type: object
properties:
type:
type: string
subtype:
type: string
parameters:
type: object
additionalProperties:
type: string
wildcardType:
type: boolean
wildcardSubtype:
type: boolean
messageBodyWorkers:
$ref: '#/components/schemas/MessageBodyWorkers'
parent:
$ref: '#/components/schemas/MultiPart'
providers:
type: object
formDataContentDisposition:
$ref: '#/components/schemas/FormDataContentDisposition'
simple:
type: boolean
name:
type: string
value:
type: string
parameterizedHeaders:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/ParameterizedHeader'
BodyPart:
type: object
properties:
contentDisposition:
$ref: '#/components/schemas/ContentDisposition'
entity:
type: object
headers:
type: object
additionalProperties:
type: array
items:
type: string
mediaType:
type: object
properties:
type:
type: string
subtype:
type: string
parameters:
type: object
additionalProperties:
type: string
wildcardType:
type: boolean
wildcardSubtype:
type: boolean
messageBodyWorkers:
$ref: '#/components/schemas/MessageBodyWorkers'
parent:
$ref: '#/components/schemas/MultiPart'
providers:
type: object
parameterizedHeaders:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/ParameterizedHeader'
FormDataContentDisposition:
type: object
properties:
type:
type: string
parameters:
type: object
additionalProperties:
type: string
fileName:
type: string
creationDate:
type: string
format: date-time
modificationDate:
type: string
format: date-time
readDate:
type: string
format: date-time
size:
type: integer
format: int64
name:
type: string
ParameterizedHeader:
type: object
properties:
value:
type: string
parameters:
type: object
additionalProperties:
type: string
MultiPart:
type: object
properties:
contentDisposition:
$ref: '#/components/schemas/ContentDisposition'
entity:
type: object
headers:
type: object
additionalProperties:
type: array
items:
type: string
mediaType:
type: object
properties:
type:
type: string
subtype:
type: string
parameters:
type: object
additionalProperties:
type: string
wildcardType:
type: boolean
wildcardSubtype:
type: boolean
messageBodyWorkers:
$ref: '#/components/schemas/MessageBodyWorkers'
parent:
$ref: '#/components/schemas/MultiPart'
providers:
type: object
bodyParts:
type: array
items:
$ref: '#/components/schemas/BodyPart'
parameterizedHeaders:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/ParameterizedHeader'
MessageEntity:
type: object
properties:
message:
type: string
ContentDisposition:
type: object
properties:
type:
type: string
parameters:
type: object
additionalProperties:
type: string
fileName:
type: string
creationDate:
type: string
format: date-time
modificationDate:
type: string
format: date-time
readDate:
type: string
format: date-time
size:
type: integer
format: int64
ResponseEntityBulkUploadSubmitView:
type: object
properties:
errors:
type: array
items:
$ref: '#/components/schemas/ErrorEntity'
entity:
$ref: '#/components/schemas/BulkUploadSubmitResponse'
messages:
type: array
items:
$ref: '#/components/schemas/MessageEntity'
i18nMessagesMap:
type: object
additionalProperties:
type: string
permissions:
type: array
items:
type: string
pagination:
$ref: '#/components/schemas/Pagination'
x-provenance:
method: harvested
publisher: The Co-operative Bank
source: https://www.developer.co-operativebank.co.uk/api/openapi.json
note: split by refine-openapis from the provider's own published document, verified by fetch (openapi/_original/*.fetch.json);
stamped by stamp-openapi-provenance.py (roadmap#793)