Posts: list
Stay organized with collections
Save and categorize content based on your preferences.
Retrieves a list of posts.
Try it now or see an example.
Authorization is required if the posts are on a blog that is private. If the posts are on a blog that is public, then this method can be called without authorization.
Request
HTTP request
GET https://www.googleapis.com/blogger/v3/blogs/blogId/posts
Parameters
Parameter name |
Value |
Description |
Required parameters |
blogId |
string |
The ID of the blog to fetch posts from.
|
Optional parameters |
endDate |
datetime |
Latest post date to fetch, a date-time with RFC 3339 formatting.
|
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.
(Default: true )
|
fetchImages |
boolean |
Whether image URL metadata for each post is included.
|
labels |
string |
Comma-separated list of labels to search for.
|
maxResults |
unsigned integer |
Maximum number of posts to fetch.
|
orderBy |
string |
Sort order applied to results.
Acceptable values are:
- "
published ": Order by the date the post was published
- "
updated ": Order by the date the post was last updated
|
sortOption |
string |
UNAVAILABLE NOW
Sort direction applied to results.
Acceptable values are:
- "
descending ": Sort posts in descending order in time (default)
- "
ascending ": Sort posts in ascending order in time
|
pageToken |
string |
Continuation token if the request is paged.
|
startDate |
datetime |
Earliest post date to fetch, a date-time with RFC 3339 formatting.
|
status |
string |
Acceptable values are:
- "
draft ": Draft posts
- "
live ": Published posts
- "
scheduled ": Posts that are scheduled to publish in future.
|
view |
string |
Acceptable values are:
- "
ADMIN ": Admin level detail
- "
AUTHOR ": Author level detail
- "
READER ": Reader level detail
|
Request body
Do not supply a request body with this method.
Response
If successful, this method returns a response body with the following structure:
{
"kind": "blogger#postList",
"nextPageToken": string,
"items": [
posts Resource
]
}
Property name |
Value |
Description |
Notes |
kind |
string |
The kind of this entity. Always blogger#postList . |
|
nextPageToken |
string |
Pagination token to fetch the next page, if one exists. |
|
items[] |
list |
The list of posts for this blog. |
|
Examples
Note: The code examples available for this method do not represent all supported programming languages (see the client libraries page for a list of supported languages).
Java
Uses the Java client library
// The BlogId for the Blogger Buzz blog
String BUZZ_BLOG_ID = "2399953";
// Configure the Java API Client for Installed Native App
HttpTransport HTTP_TRANSPORT = new NetHttpTransport();
JsonFactory JSON_FACTORY = new JacksonFactory();
// Configure the Installed App OAuth2 flow.
Credential credential = OAuth2Native.authorize(HTTP_TRANSPORT,
JSON_FACTORY, new LocalServerReceiver(),
Arrays.asList(BloggerScopes.BLOGGER));
// Construct the Blogger API access facade object.
Blogger blogger = Blogger.builder(HTTP_TRANSPORT, JSON_FACTORY)
.setApplicationName("Blogger-PostsList-Snippet/1.0")
.setHttpRequestInitializer(credential).build();
// The request action.
List postsListAction = blogger.posts().list(BUZZ_BLOG_ID);
// Restrict the result content to just the data we need.
postsListAction.setFields("items(author/displayName,content,published,title,url),nextPageToken");
// This step sends the request to the server.
PostList posts = postsListAction.execute();
// Now we can navigate the response.
int postCount = 0;
int pageCount = 0;
while (posts.getItems() != null && !posts.getItems().isEmpty()) {
for (Post post : posts.getItems()) {
System.out.println("Post #"+ ++postCount);
System.out.println("\tTitle: "+post.getTitle());
System.out.println("\tAuthor: "+post.getAuthor().getDisplayName());
System.out.println("\tPublished: "+post.getPublished());
System.out.println("\tURL: "+post.getUrl());
System.out.println("\tContent: "+post.getContent());
}
// Pagination logic
String pageToken = posts.getNextPageToken();
if (pageToken == null || ++pageCount >= 5) {
break;
}
System.out.println("-- Next page of posts");
postsListAction.setPageToken(pageToken);
posts = postsListAction.execute();
}
Try it!
Use the APIs Explorer below to call this method on live data and see the response.
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2024-08-08 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2024-08-08 UTC."],[[["\u003cp\u003eRetrieves a list of posts from a specified blog, requiring authorization for private blogs but not for public ones.\u003c/p\u003e\n"],["\u003cp\u003eAllows filtering of posts by date, labels, status, and other criteria using optional parameters.\u003c/p\u003e\n"],["\u003cp\u003eSupports pagination to retrieve large lists of posts in manageable chunks.\u003c/p\u003e\n"],["\u003cp\u003eProvides options to control the inclusion of post bodies and image metadata for traffic optimization.\u003c/p\u003e\n"],["\u003cp\u003eReturns a response containing post details like title, author, publication date, content, and URL.\u003c/p\u003e\n"]]],[],null,["# Posts: list\n\nRetrieves a list of posts.\n[Try it now](#try-it) or [see an example](#examples).\n\n[Authorization](/blogger/docs/3.0/using#auth) is required if the posts are on a blog that is private. If the posts are on a blog that is public, then this method can be called without authorization.\n\nRequest\n-------\n\n### HTTP request\n\n```\nGET https://www.googleapis.com/blogger/v3/blogs/blogId/posts\n```\n\n### Parameters\n\n| Parameter name | Value | Description |\n|----------------|--------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **Required parameters** |||\n| `blogId` | `string` | The ID of the blog to fetch posts from. |\n| **Optional parameters** |||\n| `endDate` | `datetime` | Latest post date to fetch, a `date-time` with [RFC 3339](http://www.ietf.org/rfc/rfc3339.txt\"\") formatting. |\n| `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. (Default: `true`) |\n| `fetchImages` | `boolean` | Whether image URL metadata for each post is included. |\n| `labels` | `string` | Comma-separated list of labels to search for. |\n| `maxResults` | `unsigned integer` | Maximum number of posts to fetch. |\n| `orderBy` | `string` | Sort order applied to results. \u003cbr /\u003e \u003cbr /\u003e Acceptable values are: - \"`published`\": Order by the date the post was published - \"`updated`\": Order by the date the post was last updated |\n| `sortOption` | `string` | `UNAVAILABLE NOW` \u003cbr /\u003e \u003cbr /\u003e Sort direction applied to results. \u003cbr /\u003e \u003cbr /\u003e Acceptable values are: - \"`descending`\": Sort posts in descending order in time (default) - \"`ascending`\": Sort posts in ascending order in time |\n| `pageToken` | `string` | Continuation token if the request is paged. |\n| `startDate` | `datetime` | Earliest post date to fetch, a `date-time` with [RFC 3339](http://www.ietf.org/rfc/rfc3339.txt) formatting. |\n| `status` | `string` | Acceptable values are: - \"`draft`\": Draft posts - \"`live`\": Published posts - \"`scheduled`\": Posts that are scheduled to publish in future. |\n| `view` | `string` | Acceptable values are: - \"`ADMIN`\": Admin level detail - \"`AUTHOR`\": Author level detail - \"`READER`\": Reader level detail |\n\n### Request body\n\nDo not supply a request body with this method.\n\nResponse\n--------\n\nIf successful, this method returns a response body with the following structure:\n\n```objective-c\n{\n \"kind\": \"blogger#postList\",\n \"nextPageToken\": string,\n \"items\": [\n posts Resource\n ]\n}\n```\n\n| Property name | Value | Description | Notes |\n|-----------------|----------|---------------------------------------------------------|-------|\n| `kind` | `string` | The kind of this entity. Always `blogger#postList`. | |\n| `nextPageToken` | `string` | Pagination token to fetch the next page, if one exists. | |\n| `items[]` | `list` | The list of posts for this blog. | |\n\nExamples\n--------\n\n**Note:** The code examples available for this method do not represent all supported programming languages (see the [client libraries page](/blogger/docs/3.0/libraries) for a list of supported languages). \n\n### Java\n\nUses the [Java client library](http://code.google.com/p/google-api-java-client/) \n\n```java\n// The BlogId for the Blogger Buzz blog\nString BUZZ_BLOG_ID = \"2399953\";\n\n// Configure the Java API Client for Installed Native App\nHttpTransport HTTP_TRANSPORT = new NetHttpTransport();\nJsonFactory JSON_FACTORY = new JacksonFactory();\n\n// Configure the Installed App OAuth2 flow.\nCredential credential = OAuth2Native.authorize(HTTP_TRANSPORT,\n\tJSON_FACTORY, new LocalServerReceiver(),\n\tArrays.asList(BloggerScopes.BLOGGER));\n\n// Construct the Blogger API access facade object.\nBlogger blogger = Blogger.builder(HTTP_TRANSPORT, JSON_FACTORY)\n\t.setApplicationName(\"Blogger-PostsList-Snippet/1.0\")\n\t.setHttpRequestInitializer(credential).build();\n\n// The request action.\nList postsListAction = blogger.posts().list(BUZZ_BLOG_ID);\n\n// Restrict the result content to just the data we need.\npostsListAction.setFields(\"items(author/displayName,content,published,title,url),nextPageToken\");\n\n// This step sends the request to the server.\nPostList posts = postsListAction.execute();\n\n// Now we can navigate the response.\nint postCount = 0;\nint pageCount = 0;\nwhile (posts.getItems() != null && !posts.getItems().isEmpty()) {\n\tfor (Post post : posts.getItems()) {\n\t\tSystem.out.println(\"Post #\"+ ++postCount);\n\t\tSystem.out.println(\"\\tTitle: \"+post.getTitle());\n\t\tSystem.out.println(\"\\tAuthor: \"+post.getAuthor().getDisplayName());\n\t\tSystem.out.println(\"\\tPublished: \"+post.getPublished());\n\t\tSystem.out.println(\"\\tURL: \"+post.getUrl());\n\t\tSystem.out.println(\"\\tContent: \"+post.getContent());\n\t}\n\n\t// Pagination logic\n\tString pageToken = posts.getNextPageToken();\n\tif (pageToken == null || ++pageCount \u003e= 5) {\n\t\tbreak;\n\t}\n\tSystem.out.println(\"-- Next page of posts\");\n\tpostsListAction.setPageToken(pageToken);\n\tposts = postsListAction.execute();\n}\n```\n\nTry it!\n-------\n\n\nUse the APIs Explorer below to call this method on live data and see the response."]]