licensy-ai Blog API
The blog API from licensy-ai — 7 operation(s) for blog.
The blog API from licensy-ai — 7 operation(s) for blog.
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/licensy-ai:licensy-ai-blog-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: Fast Blog API
version: 0.1.0
tags:
- name: blog
paths:
/api/v2/blog/posts:
get:
tags:
- blog
summary: Get Blog Posts
description: 'Get all published blog posts from Notion.
Args:
category: Optional category filter
include_drafts: Include draft posts (for admin management)
Returns:
List of blog posts'
operationId: get_blog_posts_api_v2_blog_posts_get
parameters:
- name: category
in: query
required: false
schema:
anyOf:
- type: string
- type: 'null'
description: Filter by category
title: Category
description: Filter by category
- name: include_drafts
in: query
required: false
schema:
type: boolean
description: Include draft posts (admin only)
default: false
title: Include Drafts
description: Include draft posts (admin only)
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/blog/posts/{slug}:
get:
tags:
- blog
summary: Get Blog Post By Slug
description: 'Get a single blog post by slug, including full content.
Args:
slug: Post slug
Returns:
Blog post with content'
operationId: get_blog_post_by_slug_api_v2_blog_posts__slug__get
parameters:
- name: slug
in: path
required: true
schema:
type: string
title: Slug
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/blog/sync:
post:
tags:
- blog
summary: Sync Blog Posts
description: 'Force refresh blog posts from Notion (admin only).
Clears cache and fetches fresh data.
Returns:
Success message'
operationId: sync_blog_posts_api_v2_blog_sync_post
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
security:
- HTTPBearer: []
/api/v2/blog/posts/{page_id}/status:
patch:
tags:
- blog
summary: Update Post Status
description: 'Update the status of a blog post in Notion (admin only).
Checks if Status property exists before attempting update.
Args:
page_id: Notion page ID
status: New status value
Returns:
Updated post data'
operationId: update_post_status_api_v2_blog_posts__page_id__status_patch
security:
- HTTPBearer: []
parameters:
- name: page_id
in: path
required: true
schema:
type: string
title: Page Id
- name: status
in: query
required: true
schema:
type: string
description: New status (Published, Draft, Archived)
title: Status
description: New status (Published, Draft, Archived)
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
/api/v2/blog/database-url:
get:
tags:
- blog
summary: Get Database Url
description: 'Get the Notion database URL for creating new posts (admin only).
Returns:
Database URL'
operationId: get_database_url_api_v2_blog_database_url_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
security:
- HTTPBearer: []
/api/v2/blog/test-connection:
get:
tags:
- blog
summary: Test Notion Connection
description: 'Test the Notion API connection and database access (admin only).
Returns:
Connection test results'
operationId: test_notion_connection_api_v2_blog_test_connection_get
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
security:
- HTTPBearer: []
/api/v2/blog/images/{filename}:
get:
tags:
- blog
summary: Get Blog Image
description: 'Stable proxy for a post''s featured image.
Why: Notion serves featured images as S3 presigned URLs that expire after
60 minutes. AI crawlers (Perplexity, ChatGPT) cache the rendered HTML and
cite the image URL inside it — when that URL expires, citations become
broken-image links. This endpoint resolves the slug → current Notion URL
on every cache miss, fetches the bytes, and serves them with a 24h
Cache-Control so CDNs amortize the upstream fetch.
The URL `/api/v2/blog/images/.` is stable forever (slug is
immutable per post), so citations never rot.'
operationId: get_blog_image_api_v2_blog_images__filename__get
parameters:
- name: filename
in: path
required: true
schema:
type: string
title: Filename
responses:
'200':
description: Successful Response
content:
application/json:
schema: {}
'422':
description: Validation Error
content:
application/json:
schema:
$ref: '#/components/schemas/HTTPValidationError'
components:
schemas:
HTTPValidationError:
properties:
detail:
items:
$ref: '#/components/schemas/ValidationError'
type: array
title: Detail
type: object
title: HTTPValidationError
ValidationError:
properties:
loc:
items:
anyOf:
- type: string
- type: integer
type: array
title: Location
msg:
type: string
title: Message
type:
type: string
title: Error Type
type: object
required:
- loc
- msg
- type
title: ValidationError
securitySchemes:
HTTPBearer:
type: http
scheme: bearer