Short.io Posts API
The Posts API from Short.io — 3 operation(s) for posts.
The Posts API from Short.io — 3 operation(s) for posts.
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/short-io:short-io-posts-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: Short.io Posts API
version: 1.0.0
x-scalar-sdk-installation:
- lang: Node
description: 'Install the official **Short.io Node.js SDK** from npm:'
source: npm install @short.io/client-node
servers:
- url: https://api.short.io
description: API server
security:
- apiKey: []
tags:
- name: Posts
paths:
/links/post:
post:
summary: Create post
tags:
- Posts
description: Creates a content page rendered at a short link
requestBody:
required: true
content:
application/json:
schema:
allOf:
- type: object
required:
- DomainId
properties:
DomainId:
type: number
description: Domain ID where the post will be created
path:
type: string
description: Short link path (auto-generated if omitted)
- type: object
required:
- title
- body
properties:
title:
type: string
description: Post title
description:
type: string
description: Short post description / meta
coverImageURL:
type: string
description: Cover image URL
body:
type: string
description: Post body (Markdown)
responses:
'200':
description: Default Response
operationId: createPost
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await createPost({\n \"body\": {\n \"DomainId\": 0,\n \"path\": \"string\",\n \"title\": \"string\",\n \"description\": \"string\",\n \"coverImageURL\": \"string\",\n \"body\": \"string\"\n }\n});\n"
/links/post/{id}:
get:
summary: Get post by ID
tags:
- Posts
parameters:
- schema:
type: string
in: path
name: id
required: true
description: Link id string
responses:
'200':
description: Default Response
operationId: getPost
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await getPost({\n \"path\": {\n \"id\": \"string\"\n }\n});\n"
put:
summary: Update post
tags:
- Posts
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- title
- body
properties:
title:
type: string
description: Post title
description:
type: string
description: Short post description / meta
coverImageURL:
type: string
description: Cover image URL
body:
type: string
description: Post body (Markdown)
parameters:
- schema:
type: string
in: path
name: id
required: true
description: Link id string
responses:
'200':
description: Default Response
operationId: updatePost
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await updatePost({\n \"path\": {\n \"id\": \"string\"\n },\n \"body\": {\n \"title\": \"string\",\n \"description\": \"string\",\n \"coverImageURL\": \"string\",\n \"body\": \"string\"\n }\n});\n"
delete:
summary: Delete post
tags:
- Posts
parameters:
- schema:
type: string
in: path
name: id
required: true
description: Link id string
responses:
'200':
description: Default Response
operationId: deletePost
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await deletePost({\n \"path\": {\n \"id\": \"string\"\n }\n});\n"
/links/post/{id}/cover:
post:
summary: Upload post cover image
tags:
- Posts
requestBody:
required: true
content:
application/json:
schema:
description: Raw cover image bytes
description: Raw cover image bytes
parameters:
- schema:
type: string
in: path
name: id
required: true
description: Link id string
responses:
'200':
description: Default Response
operationId: createCover
x-codeSamples:
- lang: JavaScript
label: '@short.io/client-node'
source: "const { data } = await createCover({\n \"path\": {\n \"id\": \"string\"\n }\n});\n"
components:
securitySchemes:
apiKey:
type: apiKey
name: Authorization
in: header