Directory Datasets
Agency Vista logo
Lead GenerationMarketingBusiness

Agency Vista dataset

47,000+ marketing agency profiles with services, locations, ratings, and contacts.

Records
47,000+
Pricing
$0.005/agency profile
Format
JSON · CSV · HTML

Sample data

Fields you get

FieldTypeDescription
recordIdstringStable unique identifier for the record
sourcestringSource identifier (origin platform)
sourceUrlstringPublic URL the record was sourced from
profileUrlstringDirect URL to the agency profile
agencyNamestringAgency display name
descriptionstring | nullFree-text description
websitestring | nullAgency primary website URL
emailstring | nullAgency contact email
phonestring | nullAgency contact phone number
locationobject | nullParsed location (city, region, country) plus raw string
servicesstring[]Service categories offered by the agency
industriesstring[]Industries the agency focuses on
teamSizeobject | nullParsed team size (min/max) plus raw string
ratingobject | nullAggregate rating value and review count
socialLinksobjectMap of social profile URLs (linkedin, facebook, etc.)
badgesstring[]Agency Vista verification badges
clientsstring[]Public client list
verifiedbooleanWhether Agency Vista has verified the agency
claimedbooleanWhether the agency has been claimed by its owner
searchContextobjectMetadata about the search axis used for this record
scrapedAtstringISO 8601 timestamp of when the record was extracted

How it works

Extract agency profiles, services, locations, ratings, industries, social links, and badges from Agency Vista.

What does Agency Vista Scraper do?

Visits Agency Vista's public agency directory and returns clean, structured records you can drop into a CRM, sales tool, BI dashboard, or recruiting workflow. With detail enrichment enabled (the default), each result includes the full agency name, slug, full description, website, services array, industries array, client list, location, team size, rating, social links, badges, and verification status.

Why use it?

Agency Vista has no public API. This Actor is the fastest path to clean agency-directory data for outbound, partnerships, recruiting, and competitive intelligence.

Example use cases

  • Martech sales teams building outbound lists of digital agencies.
  • White-label SaaS vendors looking for agency partners.
  • Recruiters sourcing marketing firms by service or location.
  • Competitive intelligence teams tracking agency positioning.
  • Freelancers researching agencies by niche.

How does it work?

Agency Vista is a Next.js application that embeds full agency data as JSON in two page types:

  1. Search/list pages (e.g. /agency/all/all) embed up to 50 list-stub agencies with id, name, slug, description preview, city, social profiles, badges, and rating.
  2. Detail pages (/agency/{slug}/summary) embed a single rich agency object with services breakdown, industry focus, full client list, full description, verification, and more.

By default, the Actor follows the list → detail flow: visit a list URL, then for each list-stub fetch its /summary detail page and merge the two into the final record. Set includeProfileDetails: false for the cheaper list-only mode.

You can drive the scrape three ways:

  1. Default: defaults to /agency/all/all (Agency Vista's public top-50 list) and enriches each profile.
  2. Filter axes: supply searchTerms, services, locations, industries — these stamp searchContext metadata on each record. Note: Agency Vista's public SSR doesn't actually filter by service/search-term/industry via URL, so these axes are metadata-only. locations slightly varies the URL path; searchTerms/services/industries do not. To extract more than 50 distinct agencies, supply startUrls.
  3. Direct startUrls: paste specific Agency Vista URLs:
    • List URLs (e.g. https://agencyvista.com/agency/all/all) — yields up to 50 stubs.
    • Detail URLs (e.g. https://agencyvista.com/agency/aj-marketing/marketing-agency-singapore-sg/summary) — single record. Pair with the Agency Vista sitemap (47K+ URLs) to enumerate the full directory.

Input

{
  "startUrls": [],
  "searchTerms": [],
  "services": [],
  "locations": ["United States"],
  "industries": [],
  "minRating": 0,
  "includeProfileDetails": true,
  "includeSocialLinks": true,
  "includeContactFields": true,
  "maxItems": 1000,
  "maxConcurrency": 3,
  "proxyConfiguration": { "useApifyProxy": true },
  "debugMode": false
}

Output (one item per agency)

{
  "recordId": "agency_vista_38595",
  "source": "agency_vista",
  "sourceUrl": "https://agencyvista.com/agency/all/all",
  "profileUrl": "https://agencyvista.com/agency/page-1-media/marketing-agency-boca-raton-florida-us",
  "agencyName": "Page 1 Media",
  "description": "The team at Page 1 Media come from the Automotive, Law, E-commerce, Beauty...",
  "website": "https://page1.media/",
  "email": null,
  "phone": null,
  "location": { "raw": "Boca Raton, Florida, US", "city": "Boca Raton", "region": "Florida", "country": "US" },
  "services": ["Search Engine Optimization", "Reputation Management", "Growth Strategies"],
  "industries": ["Accounting", "Real Estate", "Health, Wellness & Fitness"],
  "teamSize": { "raw": "5", "min": 5, "max": 5 },
  "rating": { "value": 5, "count": 41 },
  "socialLinks": { "linkedin": null, "facebook": null, "instagram": null, "twitter": null },
  "badges": [],
  "clients": ["Your Choice Caregivers", "Other Client Inc."],
  "verified": true,
  "claimed": true,
  "searchContext": { "sourceUrl": "https://agencyvista.com/agency/all/all" },
  "scrapedAt": "2026-04-29T00:00:00.000Z"
}

Sample output

A real 25-record sample run is pinned for reference (agency-vista-sample-2026-04-30):

  • HTML preview (rendered table, no login): https://api.apify.com/v2/datasets/sJNdjQE9RhKLtceU8/items?signature=MC4xNzc4NzM1MTIxNDQzLjE3UTdMeE90c3VreloyNFJKYTdMWg&format=html&clean=true
  • JSON (clean): https://api.apify.com/v2/datasets/sJNdjQE9RhKLtceU8/items?signature=MC4xNzc4NzM1MDc1MzI4LjFHMDZmSkpQNVBpem1OVGhxQkJhdA&format=json&clean=true
  • CSV: https://api.apify.com/v2/datasets/sJNdjQE9RhKLtceU8/items?signature=MC4xNzc4NzM1MDc1MzI4LjFHMDZmSkpQNVBpem1OVGhxQkJhdA&format=csv&clean=true
  • Console preview (logged-in): https://console.apify.com/storage/datasets/sJNdjQE9RhKLtceU8

Run input: {"searchTerms":["seo"],"locations":["United States"],"maxItems":25,"maxConcurrency":2}. Every record has populated teamSize, services, industries, rating, and verified: true.

Pricing

$0.005 per agency result. You only pay for valid records actually written to the dataset; duplicates and validation failures are free.

Limits and notes

  • A single Agency Vista list URL returns up to 50 list-stubs. To extract more than 50 distinct agencies, supply startUrls populated from the Agency Vista sitemap (~47K profile URLs).
  • Email addresses and phone numbers are not exposed by Agency Vista's public payload. The corresponding fields are returned as null.
  • Detail enrichment makes a second HTTP request per profile. Set includeProfileDetails: false for fast list-only extraction (no services/industries/clients).
  • This Actor only scrapes publicly available data. It does not bypass authentication or scrape login-gated content.

FAQ

Why does my run only return ~50 results when I have maxItems: 1000? A single list URL returns at most 50 stubs. Supply additional startUrls (e.g. profile URLs from the sitemap) to extract more.

Why does the result count drop slightly when includeProfileDetails: true? A small fraction of detail pages return unexpected shapes (e.g. unclaimed/disabled agencies). The Actor degrades gracefully — those records are skipped, never written with corrupt data.

Are there filters I can apply per record? minRating is enforced at extraction time using the list-stub's reviewsScore. Other filters happen post-hoc on the dataset.

Support

Issues, feature requests, or buyer questions: open a support ticket in the Apify Console.

Changelog

  • 0.1.5 — Fix: teamSize was null for every record because the list-page JSON shape changed to {total: N} and the spread-merge clobbered it with the detail page's empty employees array. Both code paths handled now.
  • 0.1.3 — Tighter run defaults (1024MB / 1h timeout) and includeContactFields defaults to false (always null in v1).
  • 0.1 — Initial release. Two-stage __NEXT_DATA__ extraction (list → detail). Detail enrichment is on by default. Sitemap-based full-directory crawl supported via startUrls.

Need a custom format or one-off pull?

Submit a request — pre-built scrapers cover the common cases, but custom output formats, filtered subsets, or one-off historical pulls are usually quick to deliver.

Request a custom dataset