Grindr APIgrindr.com ↗
Access Grindr's public blog via API. List posts with pagination and category filters, or fetch full article text, author info, and metadata by slug.
What is the Grindr API?
The Grindr Blog API provides 2 endpoints for retrieving content from Grindr's official blog. Use list_blog_posts to browse paginated post summaries — including title, category, author, excerpt, thumbnail URL, and read time — or call get_blog_post with a slug to retrieve the full article body alongside publication metadata. Posts span categories like Interviews, Travel, Grindr For Equality, and Company Updates.
curl -X GET 'https://api.parse.bot/scraper/3fbae642-0374-4ca5-ad78-c5fddcb1440e/list_blog_posts?page=1&category=Travel' \ -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 grindr-com-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: Grindr Blog SDK — browse posts, drill into full article."""
from parse_apis.grindr_com_api import GrindrBlog, PostNotFound
client = GrindrBlog()
# List recent blog posts, capped at 5 total items.
for summary in client.post_summaries.list(limit=5):
print(summary.title, "|", summary.category)
# Drill into the first post's full content via summary -> detail navigation.
first = client.post_summaries.list(limit=1).first()
if first is not None:
post = first.details()
print(post.title)
print(post.author, "-", post.author_role)
print(post.body_text[:200])
# Point lookup by slug discovered from a prior listing.
if first is not None:
try:
detail = client.posts.get(slug=first.slug)
print(detail.title, "|", detail.read_time_minutes, "min read")
except PostNotFound:
print("Post no longer available")
print("exercised: post_summaries.list / PostSummary.details / posts.get")
List blog posts from the Grindr blog with pagination. Page 1 returns featured and sidebar posts (up to 18 items); subsequent pages return 12 grid items each. An optional category filter narrows results to posts matching a given category name. Posts are ordered by recency (newest first).
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. Page 1 includes featured/hero posts; pages 2+ contain 12 posts each from the blog grid. |
| category | string | Optional category name to filter posts (e.g. 'Interviews', 'Travel', 'Grindr For Equality', 'Company Updates', 'Pop Culture', 'Lifestyle', 'Engineering', 'Music', 'News', 'Quizzes', 'Sex & Dating'). Case-insensitive match. When omitted, all categories are returned. |
{
"type": "object",
"fields": {
"page": "integer indicating the current page number",
"posts": "array of blog post summary objects with slug, title, category, published_date, read_time_minutes, excerpt, thumbnail_url, author, and url"
},
"sample": {
"data": {
"page": 1,
"posts": [
{
"url": "https://www.grindr.com/blog/gregg-araki-wants-you-to-have-more-sex",
"slug": "gregg-araki-wants-you-to-have-more-sex",
"title": "Gregg Araki Wants You to Have More Sex",
"author": "Grindr",
"excerpt": "I Want Your Sex director Gregg Araki discusses the legacy of his queer, cult-classic filmography...",
"category": "Interviews",
"thumbnail_url": "https://cdn.prod.website-files.com/641dc6058ca7b7b65422b5bd/6a6d12e0ceedc525e1a94e12_Blog_Header_Compressed.jpg",
"published_date": "August 2, 2026",
"read_time_minutes": 8
}
]
},
"status": "success"
}
}About the Grindr API
Endpoints Overview
The API exposes two endpoints. list_blog_posts returns paginated summaries of blog posts ordered by recency. Page 1 delivers up to 18 items, including featured and sidebar posts; pages 2 and beyond return 12 grid posts each. The optional category parameter filters results by category name — valid values include Interviews, Travel, Grindr For Equality, and Company Updates, among others. Each summary object includes slug, title, category, published_date, read_time_minutes, excerpt, thumbnail_url, and author.
Full Article Retrieval
get_blog_post accepts a slug string — obtainable directly from list_blog_posts response objects — and returns the complete article. Response fields include title, author, author_role, category, category_slug, excerpt, thumbnail_url, body_text (full plain-text article content), url, and slug. This makes it straightforward to build a full read pipeline: paginate posts to collect slugs, then fetch each article's body on demand.
Pagination and Filtering Behavior
The page parameter controls which segment of posts is returned. Because page 1 includes both featured and sidebar placements (up to 18 items), the item count differs from pages 2 and beyond, which each return exactly 12 posts. The category filter is applied by passing the human-readable category name as a string; no separate endpoint exists for listing available categories, so known category names must be used directly.
The Grindr API is a managed, monitored endpoint for grindr.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when grindr.com 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 grindr.com 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?+
- Aggregate Grindr's official Company Updates posts into an internal news feed using
list_blog_postswith category filter - Build a content archive by paginating through all blog posts and storing
slug,title,published_date, andthumbnail_url - Monitor new Grindr For Equality posts by checking
published_dateon freshly fetched page 1 results - Pull full
body_textfromget_blog_postto run sentiment analysis or topic modeling on Grindr editorial content - Display blog post previews in a third-party app using
excerpt,thumbnail_url, andread_time_minutesfrom list responses - Track author output by collecting
authorandauthor_rolefields across multiple article fetches
| 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 Grindr offer an official public developer API?+
What does `get_blog_post` return beyond what `list_blog_posts` provides?+
get_blog_post adds body_text (the full article as plain text), author_role, category_slug, and the canonical url — fields not present in the list endpoint's summary objects. The list endpoint covers excerpt and thumbnail_url but omits the full article body entirely.How does pagination behave across pages?+
Does the API expose user-generated content, profiles, or community posts from Grindr's main platform?+
list_blog_posts and full articles via get_blog_post. User profiles, chats, or any content from the Grindr dating platform are not included. You can fork this API on Parse and revise it to add endpoints targeting other publicly accessible Grindr web content.Is there a way to list all available blog categories?+
Interviews, Travel, Grindr For Equality, and Company Updates can be passed to the category parameter of list_blog_posts. You can fork the API on Parse and revise it to add a category-listing endpoint if you need dynamic discovery of available categories.