Charthop media API
The media API from Charthop — 4 operation(s) for media.
The media API from Charthop — 4 operation(s) for media.
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/charthop-media-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:
description: REST API for ChartHop
version: V1.0.0
title: ChartHop access Media API
contact:
name: ChartHop
url: https://www.charthop.com
email: support@charthop.com
servers:
- url: https://localhost
- url: http://localhost
tags:
- name: media
paths:
/v1/media:
post:
tags:
- media
summary: Upload a new piece of media
operationId: uploadGlobalMedia
parameters:
- name: syncVersions
in: query
description: Comma-separated list of image versions to resize synchronously (e.g. 50x50,250x250)
required: false
schema:
type: string
responses:
'201':
description: Media created
content:
application/json:
schema:
$ref: '#/components/schemas/Media'
'400':
description: Invalid type or bad request
'401':
description: Not authorized
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
required:
- file
/v1/media/{mediaId}:
get:
tags:
- media
summary: Returns metadata about a piece of media
operationId: getGlobalMedia
parameters:
- name: mediaId
in: path
description: Media id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Media'
'401':
description: Not authorized
'403':
description: Permission denied
'404':
description: Media not found
/v1/org/{orgId}/media:
post:
tags:
- media
summary: Upload a new piece of media
operationId: uploadMedia
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: syncVersions
in: query
description: Comma-separated list of image versions to resize synchronously (e.g. 50x50,250x250)
required: false
schema:
type: string
responses:
'201':
description: Media created
content:
application/json:
schema:
$ref: '#/components/schemas/Media'
'400':
description: Invalid type or bad request
'401':
description: Not authorized
requestBody:
content:
multipart/form-data:
schema:
type: object
properties:
file:
type: string
format: binary
required:
- file
/v1/org/{orgId}/media/{mediaId}:
get:
tags:
- media
summary: Returns metadata about a piece of media
operationId: getMedia
parameters:
- name: orgId
in: path
description: Org identifier (either id or slug)
required: true
schema:
type: string
- name: mediaId
in: path
description: Media id
required: true
schema:
type: string
responses:
'200':
description: successful operation
content:
application/json:
schema:
$ref: '#/components/schemas/Media'
'401':
description: Not authorized
'403':
description: Permission denied
'404':
description: Media not found
components:
schemas:
Attribution:
type: object
properties:
principalUserId:
type: string
example: 588f7ee98f138b19220041a7
agentUserIds:
type: array
items:
type: string
example: 588f7ee98f138b19220041a7
eventId:
type: string
example: 588f7ee98f138b19220041a7
aiChatId:
type: string
example: 588f7ee98f138b19220041a7
aiToolUseId:
type: string
channel:
type: string
enum:
- WEB
- MOBILE
- SLACK
- TEAMS
- MCP
Media:
type: object
required:
- id
- path
- type
- versions
- createId
- createAt
properties:
id:
type: string
description: globally unique id of media
example: 588f7ee98f138b19220041a7
orgId:
type: string
description: parent org id, if the media belongs to an organization
example: 588f7ee98f138b19220041a7
path:
type: string
description: path to the file in media S3 bucket
example: 588f7ee98f138b19220041a7/2017/02/21/588f7ee98f138b19220041a7/avatar.png
type:
type: string
description: mime type of file
example: image/jpeg
bytes:
type: integer
format: int64
description: size of file in bytes
example: '102342'
width:
type: integer
format: int32
description: width of image in pixels
example: '600'
height:
type: integer
format: int32
description: height of image in pixels
example: '300'
versions:
type: array
description: versions/sizes available
uniqueItems: true
items:
type: string
createId:
type: string
description: created by user id
example: 588f7ee98f138b19220041a7
createBehalfId:
type: string
description: created on behalf of user id
example: 588f7ee98f138b19220041a7
createAttribution:
$ref: '#/components/schemas/Attribution'
createAt:
type: string
description: created timestamp
example: '2017-01-24T13:57:52Z'