Yardi APIyardi.com ↗
Access Yardi's news, press releases, and content via 4 endpoints. Search articles, filter by category, and retrieve full post details including content and metadata.
What is the Yardi API?
The Yardi API provides 4 endpoints to retrieve news posts, press releases, and site content from yardi.com. Use get_posts to list articles filtered by category or search term, search to query across all content types including pages, resources, and client stories, and get_post to pull the full text and metadata of any individual article by its numeric ID.
curl -X GET 'https://api.parse.bot/scraper/0dcf99c6-1126-4770-808d-a889e3999f84/search?page=1&query=property+management&subtype=any&per_page=5' \ -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 yardi-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: Yardi Website API — search content, browse posts, drill into details."""
from parse_apis.yardi_website_api import Yardi, ContentSubtype, PostNotFound
client = Yardi()
# Search across all content types for a topic
for result in client.searchresults.search(query="property management", limit=5):
print(result.title, result.url, result.subtype)
# Filter search to only client stories
story = client.searchresults.search(query="yardi", subtype=ContentSubtype.CLIENT_STORY, limit=1).first()
if story:
print(f"Client story: {story.title} ({story.url})")
# List recent posts (press releases and news)
post = client.posts.list(limit=1).first()
if post:
# Drill into full post detail
detail = post.details()
print(detail.title, detail.date, detail.content[:120])
# Browse categories and filter posts by one
for cat in client.categories.list(limit=5):
print(cat.name, cat.count)
# Typed error handling on a missing post
try:
client.posts.list(search="nonexistent query xyz", limit=1).first()
except PostNotFound as exc:
print(f"Post not found: {exc.post_id}")
print("exercised: searchresults.search / posts.list / post.details / categories.list")
Search across all Yardi content types including posts, pages, resources, client stories, solutions, and files. Returns paginated results with title, URL, and content type information. Paginates via integer page number; total and total_pages indicate result depth. The subtype filter restricts to one content kind when set.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| queryrequired | string | Search query string. |
| subtype | string | Filter by content subtype. |
| per_page | integer | Number of results per page, between 1 and 100. |
{
"type": "object",
"fields": {
"page": "integer current page",
"total": "integer total number of matching results",
"results": "array of search result objects with id, title, url, type, and subtype",
"per_page": "integer results per page",
"total_pages": "integer total number of pages"
}
}About the Yardi API
What the API Covers
The Yardi API surfaces company-published content from yardi.com: news articles, press releases, resource pages, client stories, solutions pages, and file assets. Four endpoints cover search, post listing, individual post retrieval, and category browsing. Every post object includes fields such as id, date, modified, slug, title, excerpt, link, categories, tags, featured_media, and author.
Searching and Filtering Content
The search endpoint accepts a required query string and an optional subtype parameter to narrow results to a specific content type — valid values include post, page, and content-specific types like resour (resources). Results are paginated and each item returns id, title, url, type, and subtype. The get_posts endpoint supports separate filtering via a search string and a categories parameter accepting comma-separated category IDs (for example, 9849 for Press Releases, 9834 for News). Both endpoints support per_page (1–100) and page for pagination.
Individual Post and Category Detail
The get_post endpoint takes a numeric post_id — obtainable from search or get_posts — and returns the full content field as plain text alongside excerpt, publication date, modified date, link, slug, tags, and author ID. The get_categories endpoint lists all available categories with their id, name, slug, count (number of posts), and description, making it straightforward to discover valid category IDs before filtering posts.
The Yardi API is a managed, monitored endpoint for yardi.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when yardi.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 yardi.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?+
- Monitor Yardi press releases by polling
get_postsfiltered to category ID 9849 for new announcements. - Build a news feed of Yardi company updates using
get_postsordered by date descending withper_pageset to your display limit. - Search for client story content by querying the
searchendpoint withsubtypeset to a client story type. - Retrieve full article text for NLP or summarization pipelines using
get_postwith IDs sourced fromget_posts. - Enumerate all content categories and their post counts via
get_categoriesto understand Yardi's editorial taxonomy. - Track modifications to existing Yardi articles by comparing the
modifiedfield returned byget_postover time. - Filter Yardi news to a specific topic by passing a keyword to the
searchparameter onget_postsalongside a category ID.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Yardi have an official public developer API?+
What does `get_post` return that `get_posts` does not?+
get_post endpoint returns the full content field — the complete plain-text body of the article. The get_posts listing endpoint returns only an excerpt and omits the full body, so you need to call get_post with the numeric post_id to get the complete text.Can I filter posts by author or by tag ID?+
get_posts endpoint supports filtering by categories (comma-separated IDs) and a search string, but not by author ID or tag ID. Post objects do include author and tags fields in the response. You can fork this API on Parse and revise it to add author or tag filtering as additional query parameters.How fresh is the data — how quickly do new Yardi articles appear?+
get_posts on a schedule and compare the date field of returned posts against your last-seen timestamp.Does the API expose Yardi product documentation, pricing pages, or job listings?+
search and get_posts endpoints (such as resources and client stories). Product documentation, pricing pages, and career listings are not exposed as structured data. You can fork this API on Parse and revise it to add endpoints targeting those page types.