Google Blogger · Capability
Google Blogger API
Google Blogger API. 16 operations. Lead operation: Get a blog by URL. Self-contained Naftiko capability covering one Google Blogger business surface.
What You Can Do
GET
Getblogbyurl
— Get a blog by URL
/v1/blogs/byurl
GET
Getblog
— Get a blog
/v1/blogs/{blogid}
GET
Listpages
— List pages
/v1/blogs/{blogid}/pages
POST
Insertpage
— Create a page
/v1/blogs/{blogid}/pages
GET
Listposts
— List posts
/v1/blogs/{blogid}/posts
POST
Insertpost
— Create a post
/v1/blogs/{blogid}/posts
GET
Searchposts
— Search posts
/v1/blogs/{blogid}/posts/search
GET
Getpost
— Get a post
/v1/blogs/{blogid}/posts/{postid}
PUT
Updatepost
— Update a post
/v1/blogs/{blogid}/posts/{postid}
PATCH
Patchpost
— Patch a post
/v1/blogs/{blogid}/posts/{postid}
DELETE
Deletepost
— Delete a post
/v1/blogs/{blogid}/posts/{postid}
GET
Listcomments
— List comments
/v1/blogs/{blogid}/posts/{postid}/comments
GET
Getcomment
— Get a comment
/v1/blogs/{blogid}/posts/{postid}/comments/{commentid}
DELETE
Deletecomment
— Delete a comment
/v1/blogs/{blogid}/posts/{postid}/comments/{commentid}
GET
Getuser
— Get a user
/v1/users/{userid}
GET
Listblogsbyuser
— List blogs by user
/v1/users/{userid}/blogs
MCP Tools
get-blog-url
Get a blog by URL
read-only
idempotent
get-blog
Get a blog
read-only
idempotent
list-pages
List pages
read-only
idempotent
create-page
Create a page
list-posts
List posts
read-only
idempotent
create-post
Create a post
search-posts
Search posts
read-only
idempotent
get-post
Get a post
read-only
idempotent
update-post
Update a post
idempotent
patch-post
Patch a post
idempotent
delete-post
Delete a post
idempotent
list-comments
List comments
read-only
idempotent
get-comment
Get a comment
read-only
idempotent
delete-comment
Delete a comment
idempotent
get-user
Get a user
read-only
idempotent
list-blogs-user
List blogs by user
read-only
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Google Blogger API
description: 'Google Blogger API. 16 operations. Lead operation: Get a blog by URL. Self-contained Naftiko capability covering
one Google Blogger business surface.'
tags:
- Google Blogger
- Google Blogger API
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
GOOGLE_BLOGGER_API_KEY: GOOGLE_BLOGGER_API_KEY
capability:
consumes:
- type: http
namespace: blogger
baseUri: https://www.googleapis.com/blogger/v3
description: Google Blogger API business capability. Self-contained, no shared references.
resources:
- name: blogs-byurl
path: /blogs/byurl
operations:
- name: getblogbyurl
method: GET
description: Get a blog by URL
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: url
in: query
type: string
required: true
- name: blogs-blogId
path: /blogs/{blogId}
operations:
- name: getblog
method: GET
description: Get a blog
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: blogs-blogId-pages
path: /blogs/{blogId}/pages
operations:
- name: listpages
method: GET
description: List pages
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: insertpage
method: POST
description: Create a page
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: blogs-blogId-posts
path: /blogs/{blogId}/posts
operations:
- name: listposts
method: GET
description: List posts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: maxResults
in: query
type: integer
- name: pageToken
in: query
type: string
- name: labels
in: query
type: string
- name: startDate
in: query
type: string
- name: endDate
in: query
type: string
- name: status
in: query
type: string
- name: orderBy
in: query
type: string
- name: insertpost
method: POST
description: Create a post
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: isDraft
in: query
type: boolean
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: blogs-blogId-posts-search
path: /blogs/{blogId}/posts/search
operations:
- name: searchposts
method: GET
description: Search posts
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: q
in: query
type: string
required: true
- name: blogs-blogId-posts-postId
path: /blogs/{blogId}/posts/{postId}
operations:
- name: getpost
method: GET
description: Get a post
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: postId
in: path
type: string
required: true
- name: updatepost
method: PUT
description: Update a post
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: postId
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: patchpost
method: PATCH
description: Patch a post
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: postId
in: path
type: string
required: true
- name: body
in: body
type: object
description: Request body (JSON).
required: false
- name: deletepost
method: DELETE
description: Delete a post
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: postId
in: path
type: string
required: true
- name: blogs-blogId-posts-postId-comments
path: /blogs/{blogId}/posts/{postId}/comments
operations:
- name: listcomments
method: GET
description: List comments
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: postId
in: path
type: string
required: true
- name: maxResults
in: query
type: integer
- name: pageToken
in: query
type: string
- name: blogs-blogId-posts-postId-comments-commentId
path: /blogs/{blogId}/posts/{postId}/comments/{commentId}
operations:
- name: getcomment
method: GET
description: Get a comment
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: postId
in: path
type: string
required: true
- name: commentId
in: path
type: string
required: true
- name: deletecomment
method: DELETE
description: Delete a comment
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: blogId
in: path
type: string
required: true
- name: postId
in: path
type: string
required: true
- name: commentId
in: path
type: string
required: true
- name: users-userId
path: /users/{userId}
operations:
- name: getuser
method: GET
description: Get a user
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: userId
in: path
type: string
required: true
- name: users-userId-blogs
path: /users/{userId}/blogs
operations:
- name: listblogsbyuser
method: GET
description: List blogs by user
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: userId
in: path
type: string
required: true
authentication:
type: bearer
token: '{{env.GOOGLE_BLOGGER_API_KEY}}'
exposes:
- type: rest
namespace: blogger-rest
port: 8080
description: REST adapter for Google Blogger API. One Spectral-compliant resource per consumed operation, prefixed with
/v1.
resources:
- path: /v1/blogs/byurl
name: blogs-byurl
description: REST surface for blogs-byurl.
operations:
- method: GET
name: getblogbyurl
description: Get a blog by URL
call: blogger.getblogbyurl
with:
url: rest.url
outputParameters:
- type: object
mapping: $.
- path: /v1/blogs/{blogid}
name: blogs-blogid
description: REST surface for blogs-blogId.
operations:
- method: GET
name: getblog
description: Get a blog
call: blogger.getblog
with:
blogId: rest.blogId
outputParameters:
- type: object
mapping: $.
- path: /v1/blogs/{blogid}/pages
name: blogs-blogid-pages
description: REST surface for blogs-blogId-pages.
operations:
- method: GET
name: listpages
description: List pages
call: blogger.listpages
with:
blogId: rest.blogId
outputParameters:
- type: object
mapping: $.
- method: POST
name: insertpage
description: Create a page
call: blogger.insertpage
with:
blogId: rest.blogId
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/blogs/{blogid}/posts
name: blogs-blogid-posts
description: REST surface for blogs-blogId-posts.
operations:
- method: GET
name: listposts
description: List posts
call: blogger.listposts
with:
blogId: rest.blogId
maxResults: rest.maxResults
pageToken: rest.pageToken
labels: rest.labels
startDate: rest.startDate
endDate: rest.endDate
status: rest.status
orderBy: rest.orderBy
outputParameters:
- type: object
mapping: $.
- method: POST
name: insertpost
description: Create a post
call: blogger.insertpost
with:
blogId: rest.blogId
isDraft: rest.isDraft
body: rest.body
outputParameters:
- type: object
mapping: $.
- path: /v1/blogs/{blogid}/posts/search
name: blogs-blogid-posts-search
description: REST surface for blogs-blogId-posts-search.
operations:
- method: GET
name: searchposts
description: Search posts
call: blogger.searchposts
with:
blogId: rest.blogId
q: rest.q
outputParameters:
- type: object
mapping: $.
- path: /v1/blogs/{blogid}/posts/{postid}
name: blogs-blogid-posts-postid
description: REST surface for blogs-blogId-posts-postId.
operations:
- method: GET
name: getpost
description: Get a post
call: blogger.getpost
with:
blogId: rest.blogId
postId: rest.postId
outputParameters:
- type: object
mapping: $.
- method: PUT
name: updatepost
description: Update a post
call: blogger.updatepost
with:
blogId: rest.blogId
postId: rest.postId
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: PATCH
name: patchpost
description: Patch a post
call: blogger.patchpost
with:
blogId: rest.blogId
postId: rest.postId
body: rest.body
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletepost
description: Delete a post
call: blogger.deletepost
with:
blogId: rest.blogId
postId: rest.postId
outputParameters:
- type: object
mapping: $.
- path: /v1/blogs/{blogid}/posts/{postid}/comments
name: blogs-blogid-posts-postid-comments
description: REST surface for blogs-blogId-posts-postId-comments.
operations:
- method: GET
name: listcomments
description: List comments
call: blogger.listcomments
with:
blogId: rest.blogId
postId: rest.postId
maxResults: rest.maxResults
pageToken: rest.pageToken
outputParameters:
- type: object
mapping: $.
- path: /v1/blogs/{blogid}/posts/{postid}/comments/{commentid}
name: blogs-blogid-posts-postid-comments-commentid
description: REST surface for blogs-blogId-posts-postId-comments-commentId.
operations:
- method: GET
name: getcomment
description: Get a comment
call: blogger.getcomment
with:
blogId: rest.blogId
postId: rest.postId
commentId: rest.commentId
outputParameters:
- type: object
mapping: $.
- method: DELETE
name: deletecomment
description: Delete a comment
call: blogger.deletecomment
with:
blogId: rest.blogId
postId: rest.postId
commentId: rest.commentId
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{userid}
name: users-userid
description: REST surface for users-userId.
operations:
- method: GET
name: getuser
description: Get a user
call: blogger.getuser
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- path: /v1/users/{userid}/blogs
name: users-userid-blogs
description: REST surface for users-userId-blogs.
operations:
- method: GET
name: listblogsbyuser
description: List blogs by user
call: blogger.listblogsbyuser
with:
userId: rest.userId
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: blogger-mcp
port: 9090
transport: http
description: MCP adapter for Google Blogger API. One tool per consumed operation, routed inline through this capability's
consumes block.
tools:
- name: get-blog-url
description: Get a blog by URL
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.getblogbyurl
with:
url: tools.url
outputParameters:
- type: object
mapping: $.
- name: get-blog
description: Get a blog
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.getblog
with:
blogId: tools.blogId
outputParameters:
- type: object
mapping: $.
- name: list-pages
description: List pages
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.listpages
with:
blogId: tools.blogId
outputParameters:
- type: object
mapping: $.
- name: create-page
description: Create a page
hints:
readOnly: false
destructive: false
idempotent: false
call: blogger.insertpage
with:
blogId: tools.blogId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: list-posts
description: List posts
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.listposts
with:
blogId: tools.blogId
maxResults: tools.maxResults
pageToken: tools.pageToken
labels: tools.labels
startDate: tools.startDate
endDate: tools.endDate
status: tools.status
orderBy: tools.orderBy
outputParameters:
- type: object
mapping: $.
- name: create-post
description: Create a post
hints:
readOnly: false
destructive: false
idempotent: false
call: blogger.insertpost
with:
blogId: tools.blogId
isDraft: tools.isDraft
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: search-posts
description: Search posts
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.searchposts
with:
blogId: tools.blogId
q: tools.q
outputParameters:
- type: object
mapping: $.
- name: get-post
description: Get a post
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.getpost
with:
blogId: tools.blogId
postId: tools.postId
outputParameters:
- type: object
mapping: $.
- name: update-post
description: Update a post
hints:
readOnly: false
destructive: false
idempotent: true
call: blogger.updatepost
with:
blogId: tools.blogId
postId: tools.postId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: patch-post
description: Patch a post
hints:
readOnly: false
destructive: false
idempotent: true
call: blogger.patchpost
with:
blogId: tools.blogId
postId: tools.postId
body: tools.body
outputParameters:
- type: object
mapping: $.
- name: delete-post
description: Delete a post
hints:
readOnly: false
destructive: true
idempotent: true
call: blogger.deletepost
with:
blogId: tools.blogId
postId: tools.postId
outputParameters:
- type: object
mapping: $.
- name: list-comments
description: List comments
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.listcomments
with:
blogId: tools.blogId
postId: tools.postId
maxResults: tools.maxResults
pageToken: tools.pageToken
outputParameters:
- type: object
mapping: $.
- name: get-comment
description: Get a comment
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.getcomment
with:
blogId: tools.blogId
postId: tools.postId
commentId: tools.commentId
outputParameters:
- type: object
mapping: $.
- name: delete-comment
description: Delete a comment
hints:
readOnly: false
destructive: true
idempotent: true
call: blogger.deletecomment
with:
blogId: tools.blogId
postId: tools.postId
commentId: tools.commentId
outputParameters:
- type: object
mapping: $.
- name: get-user
description: Get a user
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.getuser
with:
userId: tools.userId
outputParameters:
- type: object
mapping: $.
- name: list-blogs-user
description: List blogs by user
hints:
readOnly: true
destructive: false
idempotent: true
call: blogger.listblogsbyuser
with:
userId: tools.userId
outputParameters:
- type: object
mapping: $.