Soccer API APIsoccer-api.com ↗
Access blog posts, documentation pages, and tags from soccer-api.com via 5 endpoints. Retrieve full content, excerpts, slugs, and tag-filtered post listings.
What is the Soccer API API?
This API exposes 5 endpoints covering the blog posts, static pages, and taxonomy tags published on soccer-api.com. Use list_posts to retrieve paginated post summaries with titles, slugs, excerpts, and category IDs, or call get_post to pull the complete article content for a specific numeric post ID. Pages covering documentation, features, and product guides are accessible through list_pages and get_page, returning both raw HTML and plain-text renditions.
curl -X GET 'https://api.parse.bot/scraper/bf4cd794-a95b-41ea-b154-93e331daa23b/list_posts?search=soccer' \ -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 soccer-api-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: Soccer API website SDK — bounded, re-runnable."""
from parse_apis.soccer_api_com_api import SoccerApi, InputFormatInvalid
client = SoccerApi()
# Browse tags to find one we can use for filtering posts.
tag = client.tags.list(limit=3).first()
if tag is not None:
print(f"Tag: {tag.name} (id={tag.id}, posts={tag.count})")
# Filter posts by that tag.
for post in client.posts.list(tag_id=str(tag.id), limit=3):
print(f" [{post.id}] {post.title}")
# Grab the newest post and drill into its full content.
post = client.posts.list(limit=1).first()
if post is not None:
try:
detail = client.posts.get(id=str(post.id))
print(f"\nFull post: {detail.title}")
print(f" Published: {detail.date} Modified: {detail.modified}")
print(f" Excerpt: {detail.excerpt[:120]}")
print(f" Tags: {detail.tags} Categories: {detail.categories}")
except InputFormatInvalid as e:
print(f"Could not fetch post: {e.message}")
# List site pages (documentation, pricing, features).
for page in client.pages.list(limit=5):
print(f"Page: {page.title} — {page.link}")
print("\nexercised: tags.list / posts.list / posts.get / pages.list")
List blog posts from the Soccer API website, optionally filtered by search query or tag ID. Returns paginated summaries sorted by date descending. Each post includes tag and category IDs that can be resolved via list_tags.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| search | string | Free-text search query to filter posts by title and content. |
| tag_id | string | Numeric tag ID to filter posts. Obtain tag IDs from the list_tags endpoint. |
| per_page | integer | Number of posts per page (1–100). |
{
"type": "object",
"fields": {
"page": "current page number",
"count": "number of posts returned on this page",
"posts": "array of post summary objects with id, title, slug, date, modified, link, excerpt, author_id, featured_media_id, categories, and tags",
"per_page": "items per page"
},
"sample": {
"data": {
"page": 1,
"count": 6,
"posts": [
{
"id": 1462,
"date": "2026-08-06T08:53:06",
"link": "https://soccer-api.com/soccer-api-tutorials/how-to-choose-right-soccer-api-for-your-project/",
"slug": "how-to-choose-right-soccer-api-for-your-project",
"tags": [
194,
195,
229,
227,
221,
228,
193,
230
],
"title": "How to Choose the Right Soccer API for Your Project",
"excerpt": "Soccer API, Soccer Data Provider, Soccer API Provider, Football API, Live Soccer API, Soccer WebSocket API, Soccer Data API, Sports API Comparison, Soccer API Pricing",
"modified": "2026-08-06T08:53:08",
"author_id": 1,
"categories": [
1
],
"featured_media_id": 1463
}
],
"per_page": 10
},
"status": "success"
}
}About the Soccer API API
Blog Post Access
The list_posts endpoint returns paginated arrays of post summary objects sorted by publication date descending. Each summary includes id, title, slug, date, modified, excerpt, author_id, featured_media_id, categories, and tag IDs. You can narrow results with a search string (matched against title and content) or a tag_id obtained from list_tags. Pagination is controlled via page and per_page (1–100). To retrieve the full article text, pass the numeric id to get_post, which returns content_html and content_text alongside the same metadata fields.
Site Pages and Documentation
list_pages enumerates all static pages on the site — feature descriptions, coverage pages, pricing copy, and developer guides — as summary objects with id, title, slug, excerpt, parent_id, and menu_order. Hierarchical relationships are exposed through parent_id (0 for top-level pages) and menu_order for sorted navigation reconstruction. Full content is available through get_page, which returns both content_html and content_text for a given numeric page_id.
Tag Taxonomy
list_tags returns tag objects with id, name, slug, count (number of posts assigned), and link. An optional search parameter filters by tag name. Tag IDs returned here feed directly into the tag_id filter on list_posts, enabling tag-scoped post discovery. Tags reflect the editorial taxonomy used across the soccer-api.com blog.
The Soccer API API is a managed, monitored endpoint for soccer-api.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when soccer-api.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 soccer-api.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?+
- Index all soccer API developer tutorials by tag to build a searchable knowledge base
- Monitor the
modifiedfield on documentation pages to detect when product feature descriptions are updated - Reconstruct the site navigation tree using
parent_idandmenu_orderfromlist_pages - Filter blog posts by a specific
tag_idto gather articles covering a single feature or topic area - Extract plain-text page content via
content_textfor embedding or full-text search indexing - Enumerate all post categories and tags to analyze content coverage across the soccer API documentation
| 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 soccer-api.com have an official developer API?+
What does `get_post` return that `list_posts` does not?+
list_posts returns summary objects with fields like excerpt, author_id, and categories, but omits full article body. get_post adds content_html and content_text, giving you the complete rendered article for a specific post ID.Does the API expose author profiles, media attachments, or comment data?+
author_id and featured_media_id, and tag taxonomy — but does not resolve those IDs into full author profiles, image URLs, or comment threads. You can fork it on Parse and revise to add endpoints that resolve those related resources.Is there a way to retrieve all posts across all pages in one call?+
list_posts is paginated — you control page size with per_page (up to 100) and advance through results using the page parameter. The count field in each response tells you how many items were returned on the current page.