<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="blogger_v3.html">Blogger API</a> . <a href="blogger_v3.posts.html">posts</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#delete">delete(blogId, postId)</a></code></p>
<p class="firstline">Delete a post by ID.</p>
<p class="toc_element">
  <code><a href="#get">get(blogId, postId, maxComments=None, fetchImages=None, fetchBody=None, view=None)</a></code></p>
<p class="firstline">Get a post by ID.</p>
<p class="toc_element">
  <code><a href="#getByPath">getByPath(blogId, path, maxComments=None, view=None)</a></code></p>
<p class="firstline">Retrieve a Post by Path.</p>
<p class="toc_element">
  <code><a href="#insert">insert(blogId, body, isDraft=None, fetchImages=None, fetchBody=None)</a></code></p>
<p class="firstline">Add a post.</p>
<p class="toc_element">
  <code><a href="#list">list(blogId, orderBy=None, startDate=None, endDate=None, labels=None, pageToken=None, status=None, maxResults=None, fetchBodies=None, fetchImages=None, view=None)</a></code></p>
<p class="firstline">Retrieves a list of posts, possibly filtered.</p>
<p class="toc_element">
  <code><a href="#list_next">list_next(previous_request, previous_response)</a></code></p>
<p class="firstline">Retrieves the next page of results.</p>
<p class="toc_element">
  <code><a href="#patch">patch(blogId, postId, body, maxComments=None, revert=None, publish=None, fetchImages=None, fetchBody=None)</a></code></p>
<p class="firstline">Update a post. This method supports patch semantics.</p>
<p class="toc_element">
  <code><a href="#publish">publish(blogId, postId, publishDate=None)</a></code></p>
<p class="firstline">Publishes a draft post, optionally at the specific time of the given publishDate parameter.</p>
<p class="toc_element">
  <code><a href="#revert">revert(blogId, postId)</a></code></p>
<p class="firstline">Revert a published or scheduled post to draft state.</p>
<p class="toc_element">
  <code><a href="#search">search(blogId, q, orderBy=None, fetchBodies=None)</a></code></p>
<p class="firstline">Search for a post.</p>
<p class="toc_element">
  <code><a href="#update">update(blogId, postId, body, maxComments=None, revert=None, publish=None, fetchImages=None, fetchBody=None)</a></code></p>
<p class="firstline">Update a post.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="delete">delete(blogId, postId)</code>
  <pre>Delete a post by ID.

Args:
  blogId: string, The ID of the Blog. (required)
  postId: string, The ID of the Post. (required)
</pre>
</div>

<div class="method">
    <code class="details" id="get">get(blogId, postId, maxComments=None, fetchImages=None, fetchBody=None, view=None)</code>
  <pre>Get a post by ID.

Args:
  blogId: string, ID of the blog to fetch the post from. (required)
  postId: string, The ID of the post (required)
  maxComments: integer, Maximum number of comments to pull back on a post.
  fetchImages: boolean, Whether image URL metadata for each post is included (default: false).
  fetchBody: boolean, Whether the body content of the post is included (default: true). This should be set to false when the post bodies are not required, to help minimize traffic.
  view: string, Access level with which to view the returned result. Note that some fields require elevated access.
    Allowed values
      ADMIN - Admin level detail
      AUTHOR - Author level detail
      READER - Reader level detail

Returns:
  An object of the form:

    {
    "status": "A String", # Status of the post. Only set for admin-level requests
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "titleLink": "A String", # The title link URL, similar to atom's related link.
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "status": "A String", # The status of the comment (only populated for admin users)
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "readerComments": "A String", # Comment control and display setting for readers of this post.
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "etag": "A String", # Etag of the resource.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "images": [ # Display image for the Post.
      {
        "url": "A String",
      },
    ],
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="getByPath">getByPath(blogId, path, maxComments=None, view=None)</code>
  <pre>Retrieve a Post by Path.

Args:
  blogId: string, ID of the blog to fetch the post from. (required)
  path: string, Path of the Post to retrieve. (required)
  maxComments: integer, Maximum number of comments to pull back on a post.
  view: string, Access level with which to view the returned result. Note that some fields require elevated access.
    Allowed values
      ADMIN - Admin level detail
      AUTHOR - Author level detail
      READER - Reader level detail

Returns:
  An object of the form:

    {
    "status": "A String", # Status of the post. Only set for admin-level requests
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "titleLink": "A String", # The title link URL, similar to atom's related link.
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "status": "A String", # The status of the comment (only populated for admin users)
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "readerComments": "A String", # Comment control and display setting for readers of this post.
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "etag": "A String", # Etag of the resource.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "images": [ # Display image for the Post.
      {
        "url": "A String",
      },
    ],
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="insert">insert(blogId, body, isDraft=None, fetchImages=None, fetchBody=None)</code>
  <pre>Add a post.

Args:
  blogId: string, ID of the blog to add the post to. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "status": "A String", # Status of the post. Only set for admin-level requests
  "content": "A String", # The content of the Post. May contain HTML markup.
  "kind": "blogger#post", # The kind of this entity. Always blogger#post
  "titleLink": "A String", # The title link URL, similar to atom's related link.
  "author": { # The author of this Post.
    "url": "A String", # The URL of the Post creator's Profile page.
    "image": { # The Post author's avatar.
      "url": "A String", # The Post author's avatar URL.
    },
    "displayName": "A String", # The display name.
    "id": "A String", # The identifier of the Post creator.
  },
  "replies": { # The container of comments on this Post.
    "totalItems": "A String", # The count of comments on this post.
    "items": [ # The List of Comments for this Post.
      {
        "status": "A String", # The status of the comment (only populated for admin users)
        "content": "A String", # The actual content of the comment. May include HTML markup.
        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
        "inReplyTo": { # Data about the comment this is in reply to.
          "id": "A String", # The identified of the parent of this comment.
        },
        "author": { # The author of this Comment.
          "url": "A String", # The URL of the Comment creator's Profile page.
          "image": { # The comment creator's avatar.
            "url": "A String", # The comment creator's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Comment creator.
        },
        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
        "blog": { # Data about the blog containing this comment.
          "id": "A String", # The identifier of the blog containing this comment.
        },
        "published": "A String", # RFC 3339 date-time when this comment was published.
        "post": { # Data about the post containing this comment.
          "id": "A String", # The identifier of the post containing this comment.
        },
        "id": "A String", # The identifier for this resource.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "selfLink": "A String", # The URL of the comments on this post.
  },
  "readerComments": "A String", # Comment control and display setting for readers of this post.
  "labels": [ # The list of labels this Post was tagged with.
    "A String",
  ],
  "customMetaData": "A String", # The JSON meta-data for the Post.
  "updated": "A String", # RFC 3339 date-time when this Post was last updated.
  "blog": { # Data about the blog containing this Post.
    "id": "A String", # The identifier of the Blog that contains this Post.
  },
  "url": "A String", # The URL where this Post is displayed.
  "etag": "A String", # Etag of the resource.
  "location": { # The location for geotagged posts.
    "lat": 3.14, # Location's latitude.
    "lng": 3.14, # Location's longitude.
    "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
    "name": "A String", # Location name.
  },
  "published": "A String", # RFC 3339 date-time when this Post was published.
  "images": [ # Display image for the Post.
    {
      "url": "A String",
    },
  ],
  "title": "A String", # The title of the Post.
  "id": "A String", # The identifier of this Post.
  "selfLink": "A String", # The API REST URL to fetch this resource from.
}

  isDraft: boolean, Whether to create the post as a draft (default: false).
  fetchImages: boolean, Whether image URL metadata for each post is included in the returned result (default: false).
  fetchBody: boolean, Whether the body content of the post is included with the result (default: true).

Returns:
  An object of the form:

    {
    "status": "A String", # Status of the post. Only set for admin-level requests
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "titleLink": "A String", # The title link URL, similar to atom's related link.
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "status": "A String", # The status of the comment (only populated for admin users)
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "readerComments": "A String", # Comment control and display setting for readers of this post.
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "etag": "A String", # Etag of the resource.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "images": [ # Display image for the Post.
      {
        "url": "A String",
      },
    ],
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list">list(blogId, orderBy=None, startDate=None, endDate=None, labels=None, pageToken=None, status=None, maxResults=None, fetchBodies=None, fetchImages=None, view=None)</code>
  <pre>Retrieves a list of posts, possibly filtered.

Args:
  blogId: string, ID of the blog to fetch posts from. (required)
  orderBy: string, Sort search results
    Allowed values
      published - Order by the date the post was published
      updated - Order by the date the post was last updated
  startDate: string, Earliest post date to fetch, a date-time with RFC 3339 formatting.
  endDate: string, Latest post date to fetch, a date-time with RFC 3339 formatting.
  labels: string, Comma-separated list of labels to search for.
  pageToken: string, Continuation token if the request is paged.
  status: string, Statuses to include in the results. (repeated)
    Allowed values
      draft - Draft (non-published) posts.
      live - Published posts
      scheduled - Posts that are scheduled to publish in the future.
  maxResults: integer, Maximum number of posts to fetch.
  fetchBodies: boolean, Whether the body content of posts is included (default: true). This should be set to false when the post bodies are not required, to help minimize traffic.
  fetchImages: boolean, Whether image URL metadata for each post is included.
  view: string, Access level with which to view the returned result. Note that some fields require escalated access.
    Allowed values
      ADMIN - Admin level detail
      AUTHOR - Author level detail
      READER - Reader level detail

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
    "items": [ # The list of Posts for this Blog.
      {
        "status": "A String", # Status of the post. Only set for admin-level requests
        "content": "A String", # The content of the Post. May contain HTML markup.
        "kind": "blogger#post", # The kind of this entity. Always blogger#post
        "titleLink": "A String", # The title link URL, similar to atom's related link.
        "author": { # The author of this Post.
          "url": "A String", # The URL of the Post creator's Profile page.
          "image": { # The Post author's avatar.
            "url": "A String", # The Post author's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Post creator.
        },
        "replies": { # The container of comments on this Post.
          "totalItems": "A String", # The count of comments on this post.
          "items": [ # The List of Comments for this Post.
            {
              "status": "A String", # The status of the comment (only populated for admin users)
              "content": "A String", # The actual content of the comment. May include HTML markup.
              "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
              "inReplyTo": { # Data about the comment this is in reply to.
                "id": "A String", # The identified of the parent of this comment.
              },
              "author": { # The author of this Comment.
                "url": "A String", # The URL of the Comment creator's Profile page.
                "image": { # The comment creator's avatar.
                  "url": "A String", # The comment creator's avatar URL.
                },
                "displayName": "A String", # The display name.
                "id": "A String", # The identifier of the Comment creator.
              },
              "updated": "A String", # RFC 3339 date-time when this comment was last updated.
              "blog": { # Data about the blog containing this comment.
                "id": "A String", # The identifier of the blog containing this comment.
              },
              "published": "A String", # RFC 3339 date-time when this comment was published.
              "post": { # Data about the post containing this comment.
                "id": "A String", # The identifier of the post containing this comment.
              },
              "id": "A String", # The identifier for this resource.
              "selfLink": "A String", # The API REST URL to fetch this resource from.
            },
          ],
          "selfLink": "A String", # The URL of the comments on this post.
        },
        "readerComments": "A String", # Comment control and display setting for readers of this post.
        "labels": [ # The list of labels this Post was tagged with.
          "A String",
        ],
        "customMetaData": "A String", # The JSON meta-data for the Post.
        "updated": "A String", # RFC 3339 date-time when this Post was last updated.
        "blog": { # Data about the blog containing this Post.
          "id": "A String", # The identifier of the Blog that contains this Post.
        },
        "url": "A String", # The URL where this Post is displayed.
        "etag": "A String", # Etag of the resource.
        "location": { # The location for geotagged posts.
          "lat": 3.14, # Location's latitude.
          "lng": 3.14, # Location's longitude.
          "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
          "name": "A String", # Location name.
        },
        "published": "A String", # RFC 3339 date-time when this Post was published.
        "images": [ # Display image for the Post.
          {
            "url": "A String",
          },
        ],
        "title": "A String", # The title of the Post.
        "id": "A String", # The identifier of this Post.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "kind": "blogger#postList", # The kind of this entity. Always blogger#postList
    "etag": "A String", # Etag of the response.
  }</pre>
</div>

<div class="method">
    <code class="details" id="list_next">list_next(previous_request, previous_response)</code>
  <pre>Retrieves the next page of results.

Args:
  previous_request: The request for the previous page. (required)
  previous_response: The response from the request for the previous page. (required)

Returns:
  A request object that you can call 'execute()' on to request the next
  page. Returns None if there are no more items in the collection.
    </pre>
</div>

<div class="method">
    <code class="details" id="patch">patch(blogId, postId, body, maxComments=None, revert=None, publish=None, fetchImages=None, fetchBody=None)</code>
  <pre>Update a post. This method supports patch semantics.

Args:
  blogId: string, The ID of the Blog. (required)
  postId: string, The ID of the Post. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "status": "A String", # Status of the post. Only set for admin-level requests
  "content": "A String", # The content of the Post. May contain HTML markup.
  "kind": "blogger#post", # The kind of this entity. Always blogger#post
  "titleLink": "A String", # The title link URL, similar to atom's related link.
  "author": { # The author of this Post.
    "url": "A String", # The URL of the Post creator's Profile page.
    "image": { # The Post author's avatar.
      "url": "A String", # The Post author's avatar URL.
    },
    "displayName": "A String", # The display name.
    "id": "A String", # The identifier of the Post creator.
  },
  "replies": { # The container of comments on this Post.
    "totalItems": "A String", # The count of comments on this post.
    "items": [ # The List of Comments for this Post.
      {
        "status": "A String", # The status of the comment (only populated for admin users)
        "content": "A String", # The actual content of the comment. May include HTML markup.
        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
        "inReplyTo": { # Data about the comment this is in reply to.
          "id": "A String", # The identified of the parent of this comment.
        },
        "author": { # The author of this Comment.
          "url": "A String", # The URL of the Comment creator's Profile page.
          "image": { # The comment creator's avatar.
            "url": "A String", # The comment creator's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Comment creator.
        },
        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
        "blog": { # Data about the blog containing this comment.
          "id": "A String", # The identifier of the blog containing this comment.
        },
        "published": "A String", # RFC 3339 date-time when this comment was published.
        "post": { # Data about the post containing this comment.
          "id": "A String", # The identifier of the post containing this comment.
        },
        "id": "A String", # The identifier for this resource.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "selfLink": "A String", # The URL of the comments on this post.
  },
  "readerComments": "A String", # Comment control and display setting for readers of this post.
  "labels": [ # The list of labels this Post was tagged with.
    "A String",
  ],
  "customMetaData": "A String", # The JSON meta-data for the Post.
  "updated": "A String", # RFC 3339 date-time when this Post was last updated.
  "blog": { # Data about the blog containing this Post.
    "id": "A String", # The identifier of the Blog that contains this Post.
  },
  "url": "A String", # The URL where this Post is displayed.
  "etag": "A String", # Etag of the resource.
  "location": { # The location for geotagged posts.
    "lat": 3.14, # Location's latitude.
    "lng": 3.14, # Location's longitude.
    "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
    "name": "A String", # Location name.
  },
  "published": "A String", # RFC 3339 date-time when this Post was published.
  "images": [ # Display image for the Post.
    {
      "url": "A String",
    },
  ],
  "title": "A String", # The title of the Post.
  "id": "A String", # The identifier of this Post.
  "selfLink": "A String", # The API REST URL to fetch this resource from.
}

  maxComments: integer, Maximum number of comments to retrieve with the returned post.
  revert: boolean, Whether a revert action should be performed when the post is updated (default: false).
  publish: boolean, Whether a publish action should be performed when the post is updated (default: false).
  fetchImages: boolean, Whether image URL metadata for each post is included in the returned result (default: false).
  fetchBody: boolean, Whether the body content of the post is included with the result (default: true).

Returns:
  An object of the form:

    {
    "status": "A String", # Status of the post. Only set for admin-level requests
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "titleLink": "A String", # The title link URL, similar to atom's related link.
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "status": "A String", # The status of the comment (only populated for admin users)
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "readerComments": "A String", # Comment control and display setting for readers of this post.
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "etag": "A String", # Etag of the resource.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "images": [ # Display image for the Post.
      {
        "url": "A String",
      },
    ],
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="publish">publish(blogId, postId, publishDate=None)</code>
  <pre>Publishes a draft post, optionally at the specific time of the given publishDate parameter.

Args:
  blogId: string, The ID of the Blog. (required)
  postId: string, The ID of the Post. (required)
  publishDate: string, Optional date and time to schedule the publishing of the Blog. If no publishDate parameter is given, the post is either published at the a previously saved schedule date (if present), or the current time. If a future date is given, the post will be scheduled to be published.

Returns:
  An object of the form:

    {
    "status": "A String", # Status of the post. Only set for admin-level requests
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "titleLink": "A String", # The title link URL, similar to atom's related link.
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "status": "A String", # The status of the comment (only populated for admin users)
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "readerComments": "A String", # Comment control and display setting for readers of this post.
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "etag": "A String", # Etag of the resource.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "images": [ # Display image for the Post.
      {
        "url": "A String",
      },
    ],
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="revert">revert(blogId, postId)</code>
  <pre>Revert a published or scheduled post to draft state.

Args:
  blogId: string, The ID of the Blog. (required)
  postId: string, The ID of the Post. (required)

Returns:
  An object of the form:

    {
    "status": "A String", # Status of the post. Only set for admin-level requests
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "titleLink": "A String", # The title link URL, similar to atom's related link.
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "status": "A String", # The status of the comment (only populated for admin users)
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "readerComments": "A String", # Comment control and display setting for readers of this post.
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "etag": "A String", # Etag of the resource.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "images": [ # Display image for the Post.
      {
        "url": "A String",
      },
    ],
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

<div class="method">
    <code class="details" id="search">search(blogId, q, orderBy=None, fetchBodies=None)</code>
  <pre>Search for a post.

Args:
  blogId: string, ID of the blog to fetch the post from. (required)
  q: string, Query terms to search this blog for matching posts. (required)
  orderBy: string, Sort search results
    Allowed values
      published - Order by the date the post was published
      updated - Order by the date the post was last updated
  fetchBodies: boolean, Whether the body content of posts is included (default: true). This should be set to false when the post bodies are not required, to help minimize traffic.

Returns:
  An object of the form:

    {
    "nextPageToken": "A String", # Pagination token to fetch the next page, if one exists.
    "items": [ # The list of Posts for this Blog.
      {
        "status": "A String", # Status of the post. Only set for admin-level requests
        "content": "A String", # The content of the Post. May contain HTML markup.
        "kind": "blogger#post", # The kind of this entity. Always blogger#post
        "titleLink": "A String", # The title link URL, similar to atom's related link.
        "author": { # The author of this Post.
          "url": "A String", # The URL of the Post creator's Profile page.
          "image": { # The Post author's avatar.
            "url": "A String", # The Post author's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Post creator.
        },
        "replies": { # The container of comments on this Post.
          "totalItems": "A String", # The count of comments on this post.
          "items": [ # The List of Comments for this Post.
            {
              "status": "A String", # The status of the comment (only populated for admin users)
              "content": "A String", # The actual content of the comment. May include HTML markup.
              "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
              "inReplyTo": { # Data about the comment this is in reply to.
                "id": "A String", # The identified of the parent of this comment.
              },
              "author": { # The author of this Comment.
                "url": "A String", # The URL of the Comment creator's Profile page.
                "image": { # The comment creator's avatar.
                  "url": "A String", # The comment creator's avatar URL.
                },
                "displayName": "A String", # The display name.
                "id": "A String", # The identifier of the Comment creator.
              },
              "updated": "A String", # RFC 3339 date-time when this comment was last updated.
              "blog": { # Data about the blog containing this comment.
                "id": "A String", # The identifier of the blog containing this comment.
              },
              "published": "A String", # RFC 3339 date-time when this comment was published.
              "post": { # Data about the post containing this comment.
                "id": "A String", # The identifier of the post containing this comment.
              },
              "id": "A String", # The identifier for this resource.
              "selfLink": "A String", # The API REST URL to fetch this resource from.
            },
          ],
          "selfLink": "A String", # The URL of the comments on this post.
        },
        "readerComments": "A String", # Comment control and display setting for readers of this post.
        "labels": [ # The list of labels this Post was tagged with.
          "A String",
        ],
        "customMetaData": "A String", # The JSON meta-data for the Post.
        "updated": "A String", # RFC 3339 date-time when this Post was last updated.
        "blog": { # Data about the blog containing this Post.
          "id": "A String", # The identifier of the Blog that contains this Post.
        },
        "url": "A String", # The URL where this Post is displayed.
        "etag": "A String", # Etag of the resource.
        "location": { # The location for geotagged posts.
          "lat": 3.14, # Location's latitude.
          "lng": 3.14, # Location's longitude.
          "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
          "name": "A String", # Location name.
        },
        "published": "A String", # RFC 3339 date-time when this Post was published.
        "images": [ # Display image for the Post.
          {
            "url": "A String",
          },
        ],
        "title": "A String", # The title of the Post.
        "id": "A String", # The identifier of this Post.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "kind": "blogger#postList", # The kind of this entity. Always blogger#postList
    "etag": "A String", # Etag of the response.
  }</pre>
</div>

<div class="method">
    <code class="details" id="update">update(blogId, postId, body, maxComments=None, revert=None, publish=None, fetchImages=None, fetchBody=None)</code>
  <pre>Update a post.

Args:
  blogId: string, The ID of the Blog. (required)
  postId: string, The ID of the Post. (required)
  body: object, The request body. (required)
    The object takes the form of:

{
  "status": "A String", # Status of the post. Only set for admin-level requests
  "content": "A String", # The content of the Post. May contain HTML markup.
  "kind": "blogger#post", # The kind of this entity. Always blogger#post
  "titleLink": "A String", # The title link URL, similar to atom's related link.
  "author": { # The author of this Post.
    "url": "A String", # The URL of the Post creator's Profile page.
    "image": { # The Post author's avatar.
      "url": "A String", # The Post author's avatar URL.
    },
    "displayName": "A String", # The display name.
    "id": "A String", # The identifier of the Post creator.
  },
  "replies": { # The container of comments on this Post.
    "totalItems": "A String", # The count of comments on this post.
    "items": [ # The List of Comments for this Post.
      {
        "status": "A String", # The status of the comment (only populated for admin users)
        "content": "A String", # The actual content of the comment. May include HTML markup.
        "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
        "inReplyTo": { # Data about the comment this is in reply to.
          "id": "A String", # The identified of the parent of this comment.
        },
        "author": { # The author of this Comment.
          "url": "A String", # The URL of the Comment creator's Profile page.
          "image": { # The comment creator's avatar.
            "url": "A String", # The comment creator's avatar URL.
          },
          "displayName": "A String", # The display name.
          "id": "A String", # The identifier of the Comment creator.
        },
        "updated": "A String", # RFC 3339 date-time when this comment was last updated.
        "blog": { # Data about the blog containing this comment.
          "id": "A String", # The identifier of the blog containing this comment.
        },
        "published": "A String", # RFC 3339 date-time when this comment was published.
        "post": { # Data about the post containing this comment.
          "id": "A String", # The identifier of the post containing this comment.
        },
        "id": "A String", # The identifier for this resource.
        "selfLink": "A String", # The API REST URL to fetch this resource from.
      },
    ],
    "selfLink": "A String", # The URL of the comments on this post.
  },
  "readerComments": "A String", # Comment control and display setting for readers of this post.
  "labels": [ # The list of labels this Post was tagged with.
    "A String",
  ],
  "customMetaData": "A String", # The JSON meta-data for the Post.
  "updated": "A String", # RFC 3339 date-time when this Post was last updated.
  "blog": { # Data about the blog containing this Post.
    "id": "A String", # The identifier of the Blog that contains this Post.
  },
  "url": "A String", # The URL where this Post is displayed.
  "etag": "A String", # Etag of the resource.
  "location": { # The location for geotagged posts.
    "lat": 3.14, # Location's latitude.
    "lng": 3.14, # Location's longitude.
    "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
    "name": "A String", # Location name.
  },
  "published": "A String", # RFC 3339 date-time when this Post was published.
  "images": [ # Display image for the Post.
    {
      "url": "A String",
    },
  ],
  "title": "A String", # The title of the Post.
  "id": "A String", # The identifier of this Post.
  "selfLink": "A String", # The API REST URL to fetch this resource from.
}

  maxComments: integer, Maximum number of comments to retrieve with the returned post.
  revert: boolean, Whether a revert action should be performed when the post is updated (default: false).
  publish: boolean, Whether a publish action should be performed when the post is updated (default: false).
  fetchImages: boolean, Whether image URL metadata for each post is included in the returned result (default: false).
  fetchBody: boolean, Whether the body content of the post is included with the result (default: true).

Returns:
  An object of the form:

    {
    "status": "A String", # Status of the post. Only set for admin-level requests
    "content": "A String", # The content of the Post. May contain HTML markup.
    "kind": "blogger#post", # The kind of this entity. Always blogger#post
    "titleLink": "A String", # The title link URL, similar to atom's related link.
    "author": { # The author of this Post.
      "url": "A String", # The URL of the Post creator's Profile page.
      "image": { # The Post author's avatar.
        "url": "A String", # The Post author's avatar URL.
      },
      "displayName": "A String", # The display name.
      "id": "A String", # The identifier of the Post creator.
    },
    "replies": { # The container of comments on this Post.
      "totalItems": "A String", # The count of comments on this post.
      "items": [ # The List of Comments for this Post.
        {
          "status": "A String", # The status of the comment (only populated for admin users)
          "content": "A String", # The actual content of the comment. May include HTML markup.
          "kind": "blogger#comment", # The kind of this entry. Always blogger#comment
          "inReplyTo": { # Data about the comment this is in reply to.
            "id": "A String", # The identified of the parent of this comment.
          },
          "author": { # The author of this Comment.
            "url": "A String", # The URL of the Comment creator's Profile page.
            "image": { # The comment creator's avatar.
              "url": "A String", # The comment creator's avatar URL.
            },
            "displayName": "A String", # The display name.
            "id": "A String", # The identifier of the Comment creator.
          },
          "updated": "A String", # RFC 3339 date-time when this comment was last updated.
          "blog": { # Data about the blog containing this comment.
            "id": "A String", # The identifier of the blog containing this comment.
          },
          "published": "A String", # RFC 3339 date-time when this comment was published.
          "post": { # Data about the post containing this comment.
            "id": "A String", # The identifier of the post containing this comment.
          },
          "id": "A String", # The identifier for this resource.
          "selfLink": "A String", # The API REST URL to fetch this resource from.
        },
      ],
      "selfLink": "A String", # The URL of the comments on this post.
    },
    "readerComments": "A String", # Comment control and display setting for readers of this post.
    "labels": [ # The list of labels this Post was tagged with.
      "A String",
    ],
    "customMetaData": "A String", # The JSON meta-data for the Post.
    "updated": "A String", # RFC 3339 date-time when this Post was last updated.
    "blog": { # Data about the blog containing this Post.
      "id": "A String", # The identifier of the Blog that contains this Post.
    },
    "url": "A String", # The URL where this Post is displayed.
    "etag": "A String", # Etag of the resource.
    "location": { # The location for geotagged posts.
      "lat": 3.14, # Location's latitude.
      "lng": 3.14, # Location's longitude.
      "span": "A String", # Location's viewport span. Can be used when rendering a map preview.
      "name": "A String", # Location name.
    },
    "published": "A String", # RFC 3339 date-time when this Post was published.
    "images": [ # Display image for the Post.
      {
        "url": "A String",
      },
    ],
    "title": "A String", # The title of the Post.
    "id": "A String", # The identifier of this Post.
    "selfLink": "A String", # The API REST URL to fetch this resource from.
  }</pre>
</div>

</body></html>