Gumlet Multipart Upload API
Upload large video files in parts and complete the multipart upload.
Upload large video files in parts and complete the multipart upload.
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/gumlet-multipart-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: Gumlet Multipart Upload API
description: Gumlet helps developers deliver online video and images. This API encompasses Gumlet Video, Image and Video Analytics functionality to help you build your products better and faster than ever before.
version: '1.4'
contact:
name: Gumlet Support Team
url: https://www.gumlet.com/contact/
email: support@gumlet.com
termsOfService: https://www.gumlet.com/terms/
license:
name: Apache 2.0
url: https://opensource.org/license/apache-2.0
x-scalar-sdk-installation:
- lang: TypeScript
description: '```sh
npm install @gumlet/nodejs-sdk
```'
- lang: Python
description: '```sh
pip install gumlet
```'
servers:
- url: https://api.gumlet.com/v1
security:
- API_KEY: []
tags:
- name: Multipart Upload
description: Upload large video files in parts and complete the multipart upload.
paths:
/video/assets/{asset_id}/multipartupload/{part_number}/sign:
get:
summary: Get Part Upload URL
description: Use this endpoint to retrieve a pre-signed upload URL for the given part number.
operationId: retrieve-part-url
parameters:
- name: asset_id
in: path
description: An asset id of the created asset for which you are uploading parts
schema:
type: string
required: true
- name: part_number
in: path
description: Part number of multiple parts of the original video which you you are uploading
schema:
type: string
required: true
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value:
asset_id: 642db9d6cc21a55eb474a0b2
part_number: '1'
part_upload_url: https://gumlet-video-user-uploads.s3.us-west-2.amazonaws.com/gumlet-user-uploads-prod/600e2eccc1be42e7a5b29427/642db9d6cc21c21eb474a0c1/origin-642db9d6cc21a55eb474a0c1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID%2F20230405%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230405T181136Z&X-Amz-Expires=3600&X-Amz-Signature=23d23ca56dceab55ba16349609af7d0921361ced905dde848b6206aa3de0205a&X-Amz-SignedHeaders=host&partNumber=1&uploadId=rkY.tbFdsN14Obcdh.VpVvGdtVxipAa2dyKszL2g7ETT38TXucloiyJLtz9Ff79OgvM3tdsFdenolTgdaIy_jo7GyArbApbueZZ9oLM3k7tuHkX9wXyOMDbGRQ3V0q4W&x-id=UploadPart
schema:
type: object
properties:
asset_id:
type: string
example: 642db9d6cc21a55eb474a0b2
part_number:
type: string
example: '1'
part_upload_url:
type: string
example: https://gumlet-video-user-uploads.s3.us-west-2.amazonaws.com/gumlet-user-uploads-prod/600e2eccc1be42e7a5b29427/642db9d6cc21c21eb474a0c1/origin-642db9d6cc21a55eb474a0c1?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=REDACTED_AWS_ACCESS_KEY_ID%2F20230405%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230405T181136Z&X-Amz-Expires=3600&X-Amz-Signature=23d23ca56dceab55ba16349609af7d0921361ced905dde848b6206aa3de0205a&X-Amz-SignedHeaders=host&partNumber=1&uploadId=rkY.tbFdsN14Obcdh.VpVvGdtVxipAa2dyKszL2g7ETT38TXucloiyJLtz9Ff79OgvM3tdsFdenolTgdaIy_jo7GyArbApbueZZ9oLM3k7tuHkX9wXyOMDbGRQ3V0q4W&x-id=UploadPart
'400':
description: Bad Request
content:
application/json:
examples:
Result:
value:
error:
code: invalid_parameter_value
message: The parameter value is invalid.
schema:
type: object
properties:
error:
type: object
properties:
code:
type: string
example: invalid_parameter_value
message:
type: string
example: The parameter value is invalid.
required:
- code
- message
required:
- error
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
deprecated: false
tags:
- Multipart Upload
x-stoplight:
id: 3s79ppxzn4m4a
x-codeSamples:
- label: TypeScript
lang: TypeScript
source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst multipartUpload = await client.multipartUpload.retrievePartURL('partNumber', {\n asset_id: 'assetId',\n});\n\nconsole.log(multipartUpload);"
- label: Python
lang: Python
source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nmultipart_upload = client.multipart_upload.retrieve_part_url(\n asset_id=\"assetId\",\n part_number=\"partNumber\",\n)\n\nprint(multipart_upload)"
/video/assets/{asset_id}/multipartupload/complete:
post:
summary: Complete Multipart Upload
description: Once you upload all parts to S3 bucket via pre-signed URL, use this endpoint to complete the multipart upload.
operationId: complete-multipart-upload
parameters:
- name: asset_id
in: path
description: An asset id for which you are uploading original video via multipart
schema:
type: string
required: true
requestBody:
content:
application/json:
schema:
type: object
properties:
parts:
type: array
description: List of object containing part number with ETag received as a response header while uploading each part
items:
properties:
PartNumber:
type: integer
format: int32
ETag:
type: string
description: ETag received while uploading the part using PUT
type: object
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: {}
schema:
type: object
properties: {}
'400':
description: Bad Request — multipart upload incomplete or aborted
content:
application/json:
examples:
Result:
value:
code: multipart_upload_not_completed
message: Multipart upload may have been aboarted or not completed.
schema:
type: object
properties:
code:
type: string
example: multipart_upload_not_completed
message:
type: string
example: Multipart upload may have been aboarted or not completed.
required:
- code
- message
'401':
$ref: '#/components/responses/Unauthorized'
'403':
$ref: '#/components/responses/Forbidden'
deprecated: false
tags:
- Multipart Upload
x-stoplight:
id: hn4uybtbtvz5m
x-codeSamples:
- label: TypeScript
lang: TypeScript
source: "import Gumlet from '@gumlet/nodejs-sdk';\n\nconst client = new Gumlet({\n apiKey: process.env['API_KEY'], // defaults to the API_KEY env var\n});\n\nconst multipartUpload = await client.multipartUpload.complete('assetId');\n\nconsole.log(multipartUpload);"
- label: Python
lang: Python
source: "import os\n\nfrom gumlet import Gumlet\n\nclient = Gumlet(\n api_key=os.environ.get(\"API_KEY\"),\n)\n\nmultipart_upload = client.multipart_upload.complete(\n asset_id=\"assetId\",\n)\n\nprint(multipart_upload)"
components:
schemas:
Error:
type: object
required:
- error
properties:
error:
type: object
required:
- code
- message
properties:
code:
type: string
description: Machine-readable error code
message:
type: string
description: Human-readable error message
param:
type: string
description: Optional parameter name related to the error
responses:
Unauthorized:
description: Unauthorized — missing or invalid API key / bearer token
content:
application/json:
examples:
Result:
value:
error:
code: invalid_api_key
message: API key supplied with request is invalid
schema:
$ref: '#/components/schemas/Error'
Forbidden:
description: Forbidden — unpaid account or insufficient role permissions
content:
application/json:
examples:
Result:
value:
error:
code: unauthorized
message: You don't have access to this feature. Please contact your organization owner.
schema:
$ref: '#/components/schemas/Error'
securitySchemes:
API_KEY:
type: http
scheme: bearer
x-tagGroups:
- name: Video on Demand
tags:
- Video Assets
- Global Search
- Multipart Upload
- Audio Upload
- Subtitle Upload
- Recycle Bin
- Video Workspaces
- Folders
- Video Playlists
- Channel Viewers
- Video Usage Analytics
- Video Profiles
- Webhooks
- name: Live Streams
tags:
- Live Stream Workspaces
- Live Stream Assets
- Live Stream Analytics
- name: Image APIs
tags:
- Image Sources
- Image Usage Analytics
- name: Video Analytics
tags:
- Video Analytics
- name: Webhooks
tags:
- Webhooks
- name: Account Endpoints
tags:
- User Data
- Billing
- Organization Data
- Audit Logs
x-ext-urls: {}