Rent Manager APIrentmanager.com ↗
Access Rent Manager's public content via API: blog posts, site pages, categories, and site-wide search. 5 endpoints covering property management resources.
What is the Rent Manager API?
The Rent Manager API provides 5 endpoints to access public content from rentmanager.com, including blog posts, site pages, and categories. Use get_posts to retrieve paginated articles filtered by category or keyword, get_post to fetch a full HTML post body with metadata, and search_content to query across all post and page types in a single call.
curl -X GET 'https://api.parse.bot/scraper/b3359bee-da53-41d1-b928-0624027823bb/search_content?page=1&query=property+management&per_page=10&content_type=any' \ -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 rentmanager-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: Rent Manager Public Content API — bounded, re-runnable."""
from parse_apis.Rent_Manager_Public_Content_API import RentManager, ContentType, PostNotFound
rm = RentManager()
# Search public content filtered to blog posts only
for result in rm.search_results.search(query="maintenance", content_type=ContentType.POST, limit=5):
print(result.title, result.url, result.subtype)
# List all blog categories
for category in rm.categories.list(limit=5):
print(category.name, category.slug, category.count)
# Browse post summaries and drill into full content
post_summary = rm.post_summaries.list(limit=1).first()
if post_summary:
full_post = post_summary.details()
print(full_post.title, full_post.modified, full_post.content[:100])
# Handle a not-found error for a specific post
try:
bad_post = rm.post_summaries.list(limit=1).first()
if bad_post:
detail = bad_post.details()
print(detail.title, detail.date)
except PostNotFound as exc:
print(f"Post not found: {exc.post_id}")
# Browse site pages
for page in rm.page_summaries.list(search="accounting", limit=3):
print(page.title, page.link, page.date)
print("exercised: search_results.search / categories.list / post_summaries.list / details / page_summaries.list")
Full-text search across all public content (posts and pages) on rentmanager.com. Returns matching results with title, URL, and content type. Paginates via page number. content_type filters to posts or pages only; omitting returns both.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination. |
| queryrequired | string | Search query string (e.g. 'property management', 'maintenance', 'accounting'). |
| per_page | integer | Number of results per page, max 100. |
| content_type | string | Filter by content type. |
{
"type": "object",
"fields": {
"page": "integer - current page number",
"query": "string - the search query echoed back",
"results": "array of search result objects with id, title, url, type, subtype",
"per_page": "integer - results per page"
},
"sample": {
"data": {
"page": 1,
"query": "property management",
"results": [
{
"id": 62210,
"url": "https://www.rentmanager.com/what-executive-order-means-property-management/",
"type": "post",
"title": "What the January 2026 Executive Order Means for Property Management",
"subtype": "post"
}
],
"per_page": 10
},
"status": "success"
}
}About the Rent Manager API
Blog Post Access
The get_posts endpoint returns paginated arrays of post objects, each containing id, date, slug, title, excerpt, link, categories, tags, author, and featured_media. You can narrow results by passing a category_id (obtained from list_categories) or a search keyword. The get_post endpoint accepts a numeric post_id and returns the same metadata plus a content field with the full HTML body and a modified timestamp — useful for detecting content updates.
Categories and Site Pages
list_categories returns all blog taxonomy entries with id, name, slug, description, count, and parent fields, so you can map category IDs before filtering get_posts. The get_pages endpoint surfaces non-blog content — feature descriptions, industry pages, and resource pages — as paginated objects with id, date, slug, title, excerpt, link, and parent. Filter pages by passing a search term such as accounting or maintenance.
Site-Wide Search
search_content accepts a required query string and an optional content_type filter (any, post, or page). Results include id, title, url, type, and subtype for each match. Pagination is controlled with page and per_page (max 100) parameters shared across all list endpoints.
The Rent Manager API is a managed, monitored endpoint for rentmanager.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when rentmanager.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 rentmanager.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 Rent Manager blog posts by category to build a property management knowledge base
- Monitor the
modifiedfield from get_post to detect when specific articles are updated - Use search_content with content_type=page to index all feature and product pages for competitive research
- Pull category IDs from list_categories to map editorial taxonomy for content classification models
- Filter get_posts by search keyword to collect articles on specific topics like maintenance or accounting
- Extract post excerpts and links from get_posts to populate a curated newsletter or digest feed
- Use get_pages with a search term to find all pages related to a specific property management workflow
| 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 Rent Manager have an official developer API?+
What does get_post return that get_posts does not?+
content field as HTML, plus a modified timestamp that is not present in the list endpoint. Use get_posts to enumerate IDs, then get_post to fetch full content for each.Can I retrieve author names or tag names through these endpoints?+
author ID and an array of integer tags IDs, but no endpoint resolves those IDs to display names or tag slugs. The API covers post content, category metadata via list_categories, and search results. You can fork this API on Parse and revise it to add author detail or tag resolution endpoints.Does the API return featured images or media assets?+
featured_media field per post, but the value is a media ID integer rather than a resolved image URL. No endpoint currently resolves that ID to an actual image path or attachment metadata. You can fork this API on Parse and revise it to add a media-resolution endpoint that returns the URL and alt text for a given media ID.How does pagination work across endpoints?+
page and per_page parameters. The maximum value for per_page is 100. Each response echoes back the current page and per_page values. There is no total_count or total_pages field in the response, so you must iterate pages until a result set smaller than per_page is returned to detect the last page.