Revenue Growth Guide APIrevenuegrowthguide.com ↗
Search and retrieve B2B growth experiments from Revenue Growth Guide. Access experiment details, FAQs, tags, time-to-implement, and related experiments via 2 endpoints.
What is the Revenue Growth Guide API?
The Revenue Growth Guide API provides access to a library of B2B growth experiments across categories like website, digital ads, content, and social media through 2 endpoints. search_experiments returns filterable listings with titles, descriptions, tags, and time-to-implement values, while get_experiment_detail delivers full experiment records including FAQs, related experiments, and category metadata.
curl -X GET 'https://api.parse.bot/scraper/10f2766e-8119-4c24-9b72-759666227915/search_experiments' \ -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 revenuegrowthguide-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.
"""
Revenue Growth Guide API Client
Search and retrieve B2B growth experiments from the Revenue Growth Guide library.
Get your API key from: https://parse.bot/settings
"""
import os
import requests
from typing import Optional, Any
class ParseClient:
"""Client for interacting with the Revenue Growth Guide API via Parse."""
def __init__(self, api_key: Optional[str] = None):
"""Initialize the ParseClient with API credentials."""
self.base_url = "https://api.parse.bot"
self.scraper_id = "10f2766e-8119-4c24-9b72-759666227915"
self.api_key = api_key or os.getenv("PARSE_API_KEY")
if not self.api_key:
raise ValueError("API key not provided and PARSE_API_KEY environment variable not set")
def _call(self, endpoint: str, method: str = "POST", **params) -> dict[str, Any]:
"""Make an API call to the Parse endpoint."""
url = f"{self.base_url}/scraper/{self.scraper_id}/{endpoint}"
headers = {
"X-API-Key": self.api_key,
"Content-Type": "application/json"
}
if method == "GET":
response = requests.get(url, headers=headers, params=params)
elif method == "POST":
response = requests.post(url, headers=headers, json=params)
else:
raise ValueError(f"Unsupported HTTP method: {method}")
response.raise_for_status()
return response.json()
def search_experiments(
self,
category: str = "website",
query: Optional[str] = None
) -> dict[str, Any]:
"""
Search experiments by category with optional text query filtering.
Args:
category: Category to filter experiments. Accepts: website, digital_ads,
content, social_media, events, sponsorships, email, pr_influencers
query: Text search query to filter experiments within the category
Returns:
Dictionary containing search results with experiments list
"""
params = {"category": category}
if query:
params["query"] = query
return self._call("search_experiments", method="GET", **params)
def get_experiment_detail(self, page_slug: str) -> dict[str, Any]:
"""
Get full experiment details by page_slug.
Args:
page_slug: The page_slug identifier for the experiment
Returns:
Dictionary containing full experiment details, FAQs, and related experiments
"""
return self._call("get_experiment_detail", method="GET", page_slug=page_slug)
def main():
"""Demonstrate a practical workflow with the Revenue Growth Guide API."""
# Initialize the client
client = ParseClient()
print("=" * 80)
print("Revenue Growth Guide API - Practical Usage Example")
print("=" * 80)
print()
# Step 1: Search for experiments in the website category with a specific query
print("Step 1: Searching for 'conversion' experiments in website category...")
print("-" * 80)
search_results = client.search_experiments(category="website", query="conversion")
print(f"Found {search_results['total']} experiments matching 'conversion' in website category")
print()
# Step 2: Display search results and select experiments to get details
if search_results["experiments"]:
print("Search Results:")
for exp in search_results["experiments"][:3]: # Show first 3 results
print(f" • {exp['title']}")
print(f" Slug: {exp['slug']}")
print(f" Time to Implement: {exp['tti']}")
print(f" Tags: {', '.join(exp['tags'])}")
print(f" Description: {exp['description'][:100]}...")
print()
# Step 3: Get detailed information for the first experiment
if search_results["experiments"]:
first_exp = search_results["experiments"][0]
page_slug = first_exp["page_slug"]
print(f"Step 2: Getting detailed information for '{first_exp['title']}'...")
print("-" * 80)
detail = client.get_experiment_detail(page_slug)
print(f"Experiment: {detail['name']}")
print(f"Category: {detail['category_label']}")
print(f"Time to Implement: {detail['tti']}")
print(f"Tags: {', '.join(detail['tags'])}")
print()
print("Meta Description:")
print(f" {detail['meta_description']}")
print()
print("Overview:")
print(f" {detail['public_description'][:300]}...")
print()
# Step 4: Show FAQs if available
if detail.get("faq"):
print("Frequently Asked Questions:")
for i, faq_item in enumerate(detail["faq"][:2], 1): # Show first 2 FAQs
print(f" Q{i}: {faq_item['q']}")
print(f" A{i}: {faq_item['a'][:150]}...")
print()
# Step 5: Show related experiments
if detail.get("related"):
print("Related Experiments:")
for related in detail["related"][:3]: # Show first 3 related
print(f" • {related['name']}")
print(f" Category: {related['category_label']}")
print()
# Step 6: Search in a different category
print("Step 3: Searching for experiments in the 'email' category...")
print("-" * 80)
email_results = client.search_experiments(category="email")
print(f"Found {email_results['total']} experiments in email category")
if email_results["experiments"]:
print("First few email experiments:")
for exp in email_results["experiments"][:2]:
print(f" • {exp['title']}")
print()
print("=" * 80)
print("Workflow complete!")
print("=" * 80)
if __name__ == "__main__":
main()Search experiments by category with optional text query filtering. Returns experiment listings with title, description, tags, and time-to-implement. Text query filters results by matching against title, description, and tags.
| Param | Type | Description |
|---|---|---|
| query | string | Text search query to filter experiments within the category. Matches against title, description, and tags (case-insensitive). Omitted returns all experiments in category. |
| category | string | Category to filter experiments. Accepts exactly one of: website, digital_ads, content, social_media, events, sponsorships, email, pr_influencers. |
{
"type": "object",
"fields": {
"query": "string",
"total": "integer",
"category": "string",
"experiments": "array of experiment summaries with number, slug, page_slug, title, tags, tti, description"
},
"sample": {
"query": "hero",
"total": 3,
"category": "website",
"experiments": [
{
"tti": "medium",
"slug": "homepage-hero-ab-test",
"tags": [
"CRO",
"hero",
"A/B test",
"Inbound",
"MOFU"
],
"title": "Homepage Hero A/B Test: Video, Copy, and CTA Variants",
"number": 1,
"page_slug": "homepage-hero-ab-test-video-copy-and-cta-variants",
"description": "Your homepage hero is the first thing every visitor sees..."
}
]
}
}About the Revenue Growth Guide API
What the API Returns
The search_experiments endpoint accepts an optional category parameter — one of website, digital_ads, content, social_media, events, and others — and an optional query string that filters results by matching against experiment titles, descriptions, and tags. Each result in the experiments array includes a number, slug, page_slug, title, tags, tti (time-to-implement), and a short description. The response also surfaces the total count of matched experiments and echoes back the active category and query.
Experiment Detail Records
get_experiment_detail takes a page_slug from search results and returns the full experiment record. The response includes the experiment name, category, category_label, tags, tti, slug, number, and page_slug. It also returns a faq array of question-and-answer objects specific to that experiment, and a related array listing adjacent experiments with their own name, category, category_label, and page_slug values — useful for building recommendation flows or content graphs.
Filtering and Navigation
The two endpoints are designed to work together: use search_experiments to discover experiments by category or keyword, then pass the returned page_slug into get_experiment_detail to fetch the complete record. The query parameter in search performs case-insensitive matching across title, description, and tags, so you can narrow results to specific tactics like A/B testing, onboarding, or retargeting without knowing exact experiment names in advance.
The Revenue Growth Guide API is a managed, monitored endpoint for revenuegrowthguide.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when revenuegrowthguide.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 revenuegrowthguide.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?+
- Build a B2B growth tactic browser filtered by channel category and keyword
- Populate a growth experiment recommendation engine using the
relatedarray from detail records - Generate experiment briefs by pulling
faqandttifields for a givenpage_slug - Tag and index experiments by
tagsarrays to power internal search or taxonomy tools - Track time-to-implement (
tti) across categories to prioritize quick-win experiments - Feed experiment metadata into a CMS or knowledge base for sales and marketing teams
- Map experiment coverage gaps by querying each category and counting
totalresults
| 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 Revenue Growth Guide offer an official developer API?+
What does `search_experiments` return when no category or query is provided?+
search_experiments returns experiment listings from across the full library. The response includes each experiment's title, tags, tti, description, slug, and page_slug, along with a total count of matched records.Does the `get_experiment_detail` endpoint return the full experiment methodology or step-by-step instructions?+
name, category, tags, tti, faq question-and-answer pairs, and a related experiments array. Extended how-to methodology text beyond what appears in the faq field is not currently exposed as a distinct field. You can fork this API on Parse and revise it to add an endpoint that surfaces additional body content if the source page includes it.Can I retrieve a list of all available categories through the API?+
category values for search_experiments are fixed: website, digital_ads, content, social_media, events, seo, and similar slugs documented in the parameter spec. You can fork this API on Parse and revise it to add a categories endpoint that returns the full list dynamically.Does the API support pagination for `search_experiments` results?+
search_experiments response returns a total integer and an experiments array, but the endpoint does not currently expose pagination parameters such as page number or offset. If the library grows and you need paginated access, you can fork this API on Parse and revise it to add those parameters.