Google Blogger Pages API

The Pages API from Google Blogger — 4 operation(s) for pages.

GitHub OpenAPI

Operations 8

PATCH /v3/blogs/{blogId}/pages/{pageId} Patch pages #
DELETE /v3/blogs/{blogId}/pages/{pageId} Delete pages #
PUT /v3/blogs/{blogId}/pages/{pageId} Update pages #
GET /v3/blogs/{blogId}/pages/{pageId} Get pages #
POST /v3/blogs/{blogId}/pages/{pageId}/revert Revert pages #
GET /v3/blogs/{blogId}/pages List pages #
POST /v3/blogs/{blogId}/pages Insert pages #
POST /v3/blogs/{blogId}/pages/{pageId}/publish Publish pages #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • 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.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/google-blogger:google-blogger-pages-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

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 Specification

google-blogger-pages-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Blogger API Pages API
  version: v3
  description: Generated from Google's published Discovery document for Blogger API (blogger v3, revision 20261110). 8 operation(s).
  contact:
    name: Google
    url: https://developers.google.com/
  termsOfService: https://developers.google.com/terms
externalDocs:
  url: https://developers.google.com/blogger/docs/3.0/getting_started
servers:
- url: https://blogger.googleapis.com
paths:
  /v3/blogs/{blogId}/pages/{pageId}:
    patch:
      operationId: blogger.pages.patch
      summary: Patch pages
      description: Patches a page.
      parameters:
      - name: blogId
        in: path
        required: true
        description: Resource name segment (blogId).
        schema:
          type: string
      - name: pageId
        in: path
        required: true
        description: Resource name segment (pageId).
        schema:
          type: string
      - name: publish
        in: query
        required: false
        schema:
          type: boolean
      - name: revert
        in: query
        required: false
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Page'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
        4XX:
          content: &id001
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content: *id001
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/blogger
      - apiKey: []
      tags:
      - Pages
    delete:
      operationId: blogger.pages.delete
      summary: Delete pages
      description: Deletes a page by blog id and page id.
      parameters:
      - name: blogId
        in: path
        required: true
        description: Resource name segment (blogId).
        schema:
          type: string
      - name: pageId
        in: path
        required: true
        description: Resource name segment (pageId).
        schema:
          type: string
      - name: useTrash
        in: query
        required: false
        description: Move to Trash if possible
        schema:
          type: boolean
      responses:
        '200':
          description: Successful response
        4XX:
          content: &id002
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content: *id002
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/blogger
      - apiKey: []
      tags:
      - Pages
    put:
      operationId: blogger.pages.update
      summary: Update pages
      description: Updates a page by blog id and page id.
      parameters:
      - name: blogId
        in: path
        required: true
        description: Resource name segment (blogId).
        schema:
          type: string
      - name: pageId
        in: path
        required: true
        description: Resource name segment (pageId).
        schema:
          type: string
      - name: publish
        in: query
        required: false
        schema:
          type: boolean
      - name: revert
        in: query
        required: false
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Page'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
        4XX:
          content: &id003
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content: *id003
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/blogger
      - apiKey: []
      tags:
      - Pages
    get:
      operationId: blogger.pages.get
      summary: Get pages
      description: Gets a page by blog id and page id.
      parameters:
      - name: blogId
        in: path
        required: true
        description: Resource name segment (blogId).
        schema:
          type: string
      - name: pageId
        in: path
        required: true
        description: Resource name segment (pageId).
        schema:
          type: string
      - name: view
        in: query
        required: false
        schema:
          type: string
          enum:
          - VIEW_TYPE_UNSPECIFIED
          - READER
          - AUTHOR
          - ADMIN
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
        4XX:
          content: &id004
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content: *id004
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/blogger
        - https://www.googleapis.com/auth/blogger.readonly
      - apiKey: []
      tags:
      - Pages
  /v3/blogs/{blogId}/pages/{pageId}/revert:
    post:
      operationId: blogger.pages.revert
      summary: Revert pages
      description: Reverts a published or scheduled page to draft state.
      parameters:
      - name: blogId
        in: path
        required: true
        description: Resource name segment (blogId).
        schema:
          type: string
      - name: pageId
        in: path
        required: true
        description: Resource name segment (pageId).
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
        4XX:
          content: &id005
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content: *id005
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/blogger
      - apiKey: []
      tags:
      - Pages
  /v3/blogs/{blogId}/pages:
    get:
      operationId: blogger.pages.list
      summary: List pages
      description: Lists pages.
      parameters:
      - name: blogId
        in: path
        required: true
        description: Resource name segment (blogId).
        schema:
          type: string
      - name: fetchBodies
        in: query
        required: false
        schema:
          type: boolean
      - name: maxResults
        in: query
        required: false
        schema:
          format: uint32
          type: integer
      - name: pageToken
        in: query
        required: false
        schema:
          type: string
      - name: status
        in: query
        required: false
        schema:
          type: array
          items:
            type: string
            enum:
            - LIVE
            - DRAFT
            - SOFT_TRASHED
      - name: view
        in: query
        required: false
        schema:
          enum:
          - VIEW_TYPE_UNSPECIFIED
          - READER
          - AUTHOR
          - ADMIN
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PageList'
        4XX:
          content: &id006
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content: *id006
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/blogger
        - https://www.googleapis.com/auth/blogger.readonly
      - apiKey: []
      tags:
      - Pages
    post:
      operationId: blogger.pages.insert
      summary: Insert pages
      description: Inserts a page.
      parameters:
      - name: blogId
        in: path
        required: true
        description: Resource name segment (blogId).
        schema:
          type: string
      - name: isDraft
        in: query
        required: false
        schema:
          type: boolean
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Page'
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
        4XX:
          content: &id007
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content: *id007
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/blogger
      - apiKey: []
      tags:
      - Pages
  /v3/blogs/{blogId}/pages/{pageId}/publish:
    post:
      operationId: blogger.pages.publish
      summary: Publish pages
      description: Publishes a page.
      parameters:
      - name: blogId
        in: path
        required: true
        description: Resource name segment (blogId).
        schema:
          type: string
      - name: pageId
        in: path
        required: true
        description: Resource name segment (pageId).
        schema:
          type: string
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Page'
        4XX:
          content: &id008
            application/json:
              schema:
                $ref: '#/components/schemas/GoogleRpcError'
          description: 'Client error (google.rpc.Status: INVALID_ARGUMENT, PERMISSION_DENIED, NOT_FOUND ...)'
        default:
          content: *id008
          description: Error response (google.rpc.Status)
      security:
      - oauth2:
        - https://www.googleapis.com/auth/blogger
      - apiKey: []
      tags:
      - Pages
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: query
      name: key
      description: API key; accepted by methods that do not need user data.
    oauth2:
      type: oauth2
      flows:
        authorizationCode:
          authorizationUrl: https://accounts.google.com/o/oauth2/auth
          tokenUrl: https://oauth2.googleapis.com/token
          scopes:
            https://www.googleapis.com/auth/blogger: Manage your Blogger account
            https://www.googleapis.com/auth/blogger.readonly: View your Blogger account
  schemas:
    GoogleRpcError:
      type: object
      description: The error envelope every Google API returns.
      properties:
        error:
          type: object
          properties:
            code:
              type: integer
            message:
              type: string
            status:
              type: string
            details:
              type: array
              items:
                type: object
    Page:
      properties:
        selfLink:
          description: The API REST URL to fetch this resource from.
          type: string
        content:
          type: string
          description: The body content of this Page, in HTML.
        id:
          description: The identifier for this resource.
          type: string
        author:
          description: The author of this Page.
          properties:
            url:
              description: The URL of the creator's Profile page.
              type: string
            image:
              type: object
              description: The creator's avatar.
              properties:
                url:
                  description: The creator's avatar URL.
                  type: string
            displayName:
              type: string
              description: The display name.
            id:
              description: The identifier of the creator.
              type: string
          type: object
        etag:
          type: string
          description: Etag of the resource.
        published:
          type: string
          description: RFC 3339 date-time when this Page was published.
        trashed:
          description: RFC 3339 date-time when this Page was trashed.
          type: string
        updated:
          type: string
          description: RFC 3339 date-time when this Page was last updated.
        status:
          type: string
          description: The status of the page for admin resources (either LIVE or DRAFT).
          enum:
          - LIVE
          - DRAFT
          - SOFT_TRASHED
        title:
          type: string
          description: The title of this entity. This is the name displayed in the Admin user interface.
        blog:
          description: Data about the blog containing this Page.
          properties:
            id:
              description: The identifier of the blog containing this page.
              type: string
          type: object
        kind:
          description: The kind of this entity. Always blogger#page.
          type: string
        url:
          description: The URL that this Page is displayed at.
          type: string
      type: object
    PageList:
      properties:
        etag:
          type: string
          description: Etag of the response.
        items:
          description: The list of Pages for a Blog.
          type: array
          items:
            $ref: '#/components/schemas/Page'
        nextPageToken:
          type: string
          description: Pagination token to fetch the next page, if one exists.
        kind:
          type: string
          description: The kind of this entity. Always blogger#pageList.
      type: object
x-provenance:
  method: harvested
  publisher: Google
  source: https://blogger.googleapis.com/$discovery/rest?version=v3
  note: converted by discovery-to-openapi.py from Google's Discovery document (revision 20261110)