Github APIliuguiyu.github.io ↗
Access blog posts on cybersecurity, CIAM, identity, and AI from liuguiyu.github.io. List all posts or fetch full content by slug via 2 simple endpoints.
What is the Github API?
This API provides access to the liuguiyu.github.io personal technology blog through 2 endpoints, returning structured metadata and full article content covering cybersecurity, CIAM, identity management, and AI topics. The list_posts endpoint returns the complete post catalog with titles, slugs, dates, reading times, and word counts in a single call, while get_post delivers both plain-text and HTML content for any individual article identified by its URL slug.
No input parameters required.
curl -X GET 'https://api.parse.bot/scraper/b7840955-6a09-45ac-b4a4-98a8605b9a49/list_posts' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace liuguiyu-github-io-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: Blog SDK — list posts, drill into full content."""
from parse_apis.liuguiyu_github_io_api import Blog, PostNotFound
client = Blog()
# List all post summaries with a total-items cap.
for post_summary in client.post_summaries.list(limit=5):
print(post_summary.title, "|", post_summary.date)
# Drill down from the first summary to the full post detail.
summary = client.post_summaries.list(limit=1).first()
if summary is not None:
post = summary.details()
print(post.title)
print(post.description)
print("Tags:", post.tags)
print("Published:", post.published_date)
# Refresh the same post to confirm latest content.
refreshed = post.refresh()
print("Word count:", refreshed.word_count)
# Point lookup by slug — handle missing posts gracefully.
try:
specific = client.posts.get(slug="hong-kong-sfc-passkey")
print(specific.title, "|", specific.reading_time)
except PostNotFound:
print("Post not found")
print("exercised: post_summaries.list / details / refresh / posts.get")
Lists all blog posts with summary metadata including title, slug, date, reading time, word count, and author. Returns the complete set of posts in reverse chronological order as displayed on the homepage. One round trip.
No input parameters required.
{
"type": "object",
"fields": {
"posts": "array of post summary objects",
"total": "integer count of posts returned"
},
"sample": {
"data": {
"posts": [
{
"date": "August 19, 2026",
"slug": "hong-kong-sfc-passkey",
"title": "Hong Kong SFC Moves Beyond OTP: Why Passkeys Are Becoming the New Standard for Internet Trading",
"author": "Gary",
"summary": "A Significant Change in Authentication On 9 July 2026, the Hong Kong Securities and Futures Commission (SFC) issued a new circular...",
"permalink": "https://liuguiyu.github.io/posts/hong-kong-sfc-passkey/",
"word_count": "222 words",
"reading_time": "2 min"
}
],
"total": 2
},
"status": "success"
}
}About the Github API
Endpoints Overview
The API exposes two endpoints. list_posts requires no inputs and returns an array of post summary objects alongside a total integer — each summary includes the post title, slug, date, reading time, word count, and author. Posts are returned in reverse chronological order matching the blog homepage. This makes it straightforward to build a full index of available content in one call.
Fetching Full Post Content
To retrieve a complete article, pass a slug string to get_post — slugs are obtained directly from list_posts results. The response includes title, author, description, section, permalink, tags (as an array), word_count, published and modified dates in ISO 8601 format, and the full article body in both content (plain text) and content_html (HTML markup). This dual-format response lets consumers choose between clean text for NLP tasks and structured HTML for rendering.
Content Coverage
The blog covers topics including cybersecurity regulations, passkey and FIDO2 authentication, Customer Identity and Access Management (CIAM), digital identity standards, and AI in security contexts. Tags and sections are returned per post, enabling downstream filtering by topic area. The section field currently reflects posts as the primary content type.
The Github API is a managed, monitored endpoint for liuguiyu.github.io — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when liuguiyu.github.io changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official liuguiyu.github.io API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a topic index of CIAM and identity management articles using
tagsandtitlefields fromlist_posts. - Feed article
contentplain text into an NLP pipeline for keyword extraction or summarization. - Render a mirrored reading interface using
content_htmlandpermalinkreturned byget_post. - Track publish cadence and topic evolution using
dateandword_countfields across the full post list. - Aggregate cybersecurity blog content alongside other sources using structured
descriptionandtagsfields. - Power a search index by ingesting
title,description, andcontentfor each post returned byget_post.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 req/min |
Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does liuguiyu.github.io have an official developer API?+
What does `get_post` return that `list_posts` does not?+
list_posts returns summary-level metadata: title, slug, date, reading time, word count, and author. get_post adds the full article body in both plain text (content) and HTML (content_html), plus tags, description, section, permalink, and ISO 8601 published/modified timestamps. You need the slug from list_posts to call get_post.Can I filter posts by tag, date range, or section?+
list_posts returns all posts in one response without server-side filtering. Tag, date, and section values are present in each post object, so filtering must be applied client-side after receiving the full array. You can fork this API on Parse and revise it to add a filtered endpoint.Are comments, author profiles, or social engagement metrics available?+
How fresh is the post data?+
date and ISO 8601 modified fields returned by get_post indicate when each article was last updated by the author.