# TopDevelopers.co Scraper (`crawlerbros/topdevelopers-scraper`) Actor

Scrape B2B service-agency listings from TopDevelopers.co -- app development, software development, web design, digital marketing, and 80+ other agency categories. Get ratings, review counts, hourly rates, minimum project sizes, company size, and office locations.

- **URL**: https://apify.com/crawlerbros/topdevelopers-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Automation, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js/docs.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## TopDevelopers.co Scraper

Scrape **TopDevelopers.co** — a B2B directory and review platform for hiring service agencies: app development, software development, web design, digital marketing, and 80+ other agency categories. Browse any category, pull a specific listing or location page, or look up a single agency's profile by URL. Get ratings, review counts, hourly rate bands, minimum project sizes, company size, and office locations. No login, no API key, no proxy required.

### What this actor does

- **Three modes:** `byCategory` (browse a taxonomy of 85+ agency categories), `byUrl` (scrape any TopDevelopers.co listing URL, including location- or technology-filtered variants), `byProfile` (look up specific agencies by profile URL)
- **Full agency taxonomy:** app & software development, web design, UI/UX, SEO & digital marketing, mobile app development (iOS/Android/cross-platform), ecommerce, AI/ML, cybersecurity, QA testing, BPO, and more
- **Filters:** minimum rating, minimum review count, company size, hourly rate band, minimum project size, and country
- **Global coverage:** agencies from the USA, UK, India, Canada, Australia, and 40+ other countries
- **Deep agency profiles:** looking up an agency by profile URL (mode=`byProfile`) returns founding year, every office location, social channels, service/industry focus breakdown, key clients, and certifications, in addition to the core listing fields
- **Empty fields are omitted** — a field only appears on a record when the agency actually published that data

### Output per agency (`recordType: "agency"`)

- `name` — agency name
- `slug` — TopDevelopers.co profile slug
- `profileUrl` — TopDevelopers.co profile page URL
- `websiteUrl` — the agency's own website
- `tagline` — short one-line pitch, when published
- `description` — agency description
- `rating` — average rating out of 5
- `reviewCount` — number of published reviews
- `employeeSize` — company-size band (e.g. `11 to 50`)
- `hourlyRate` — hourly rate band (e.g. `$51 - $100`), included only when the agency discloses it
- `minProjectSize` — minimum project budget band (e.g. `$5001 - $10000`), included only when disclosed
- `location` — raw office-location text (e.g. `USA, India`)
- `countries[]` — office countries, split out individually
- `logoUrl` — agency logo image
- `recentReviewQuote`, `recentReviewAuthor` — the most recent published client review snippet, when available
- `category` — the category browsed (mode=`byCategory` only)
- `sourceUrl` — same as `profileUrl`
- `recordType: "agency"`, `scrapedAt`

### Output per agency profile (`recordType: "agencyProfile"`, mode=`byProfile`)

- `name`, `slug`, `profileUrl`, `sourceUrl`
- `websiteUrl`
- `description`
- `rating`, `reviewCount`
- `logoUrl`
- `foundedYear` — the year the agency was founded, when published
- `employeeSize`, `hourlyRate`, `minProjectSize` — the same fixed bands as the listing view, when disclosed
- `facebookUrl`, `linkedinUrl`, `twitterUrl` — the agency's own social channels (not TopDevelopers.co's)
- `locations[]` — every office listed on the profile (`streetAddress`, `city`, `region`, `country`, `phone`), each field included only when published
- `countries[]` — office countries, deduplicated from `locations[]`
- `services[]`, `industryFocus[]`, `clientFocus[]` — the agency's self-reported service/industry/client-revenue-tier focus breakdown, each entry `{ "name", "percentage" }`
- `keyClients[]`, `certifications[]` — named clients and awards/certifications, when the agency has published them
- `recordType: "agencyProfile"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `byCategory` | `byCategory` / `byUrl` / `byProfile` |
| `category` | string | `directory/web-designers` | Agency category to browse (mode=byCategory) |
| `startUrls` | array | – | Direct TopDevelopers.co listing URLs, including location/technology variants (mode=byUrl) |
| `profileUrls` | array | – | Direct agency profile URLs to look up (mode=byProfile) |
| `minRating` | number | `0` | Only agencies rated at or above this value (0–5). `0` = no filter |
| `minReviews` | integer | `0` | Only agencies with at least this many reviews. `0` = no filter |
| `employeeSize` | string | – | Filter by company-size band |
| `hourlyRate` | string | – | Filter by hourly-rate band |
| `minProjectSize` | string | – | Filter by minimum-project-size band |
| `country` | string | – | Only agencies with an office in this country |
| `sortBy` | string | – | Listing page sort order (mode=byCategory/byUrl): default Rank, by number of employees, or by cost per hour |
| `maxItems` | integer | `30` | Hard cap on records returned (1–2000) |
| `proxyConfiguration` | object | AUTO | Apify proxy, used only as an automatic fallback if the site starts rate-limiting the run |

#### Example: browse a category

```json
{
  "mode": "byCategory",
  "category": "directory/digital-marketing-agencies",
  "minRating": 4.5,
  "maxItems": 50
}
````

#### Example: filter by company size and hourly rate

```json
{
  "mode": "byCategory",
  "category": "directory/web-development-companies",
  "employeeSize": "51 to 250",
  "hourlyRate": "$51 - $100",
  "country": "USA",
  "maxItems": 100
}
```

#### Example: scrape a location-filtered listing URL

```json
{
  "mode": "byUrl",
  "startUrls": [
    { "url": "https://www.topdevelopers.co/directory/ui-ux-designers/india" }
  ],
  "maxItems": 40
}
```

#### Example: look up specific agencies

```json
{
  "mode": "byProfile",
  "profileUrls": [
    { "url": "https://www.topdevelopers.co/profile/chopdawg" },
    { "url": "https://www.topdevelopers.co/profile/toptal" }
  ]
}
```

### Use cases

- **Agency sourcing** — build a shortlist of vetted development or marketing agencies by category, budget, and location
- **Market research** — analyze pricing bands and company-size distribution across a service category
- **Competitor tracking** — monitor a competing agency's rating and review count over time
- **Lead generation** — build outreach lists of agencies serving a specific industry or country
- **Procurement** — compare agencies against minimum project size and hourly rate requirements before an RFP

### FAQ

**Is this affiliated with TopDevelopers.co?**
No. This is an independent, third-party actor that reads TopDevelopers.co's publicly accessible pages. It is not endorsed by or affiliated with TopDevelopers.co.

**Why do some agencies not have an `hourlyRate` or `minProjectSize` field?**
TopDevelopers.co only shows these bands when an agency has chosen to disclose them ("Not Disclosed" listings are simply omitted rather than shown as a placeholder value). The same applies to `tagline`, `rating`, `reviewCount`, and the recent-review fields — they only appear when the agency has that data published.

**What are the company-size, hourly-rate, and project-size bands?**
These are TopDevelopers.co's own fixed bands: company size ranges from `Freelancer` up to `1000+` employees; hourly rate ranges from `Up to $25` to `$300+`; minimum project size ranges from `Less than - $5000` up to `$50001 - $100000`. Pick the exact band text from the input dropdowns to filter. (Agencies that leave a band as "Not Disclosed" on the site simply omit that field rather than exposing it as a filterable value, per the previous FAQ answer.)

**Can I sort results?**
Yes — set `sortBy` to `num_of_emp` (by number of employees) or `cost_per_hour` (by cost per hour) to match TopDevelopers.co's own "Sort By" control on category/listing pages (mode=`byCategory` or `byUrl`). Leave it blank for the site's default Rank order.

**Does the `country` filter guarantee every result has an office there?**
It guarantees every result *with a published location* includes that country. A minority of agencies on TopDevelopers.co don't disclose an office location at all — those records pass the filter too, the same way a `minRating` filter doesn't exclude an unrated agency it has no rating to compare against. Check the `countries[]` field on each record if you need location-confirmed results only.

**Can I scrape a specific country or city page?**
Yes — use mode=`byUrl` with the exact listing URL from TopDevelopers.co (for example a category page filtered to a country, city, or technology, such as `/directory/web-development-companies/uk`). The site's location/technology sub-pages aren't uniform across every category, so pasting the exact URL you want is the most reliable way to target one.

**How many agencies are returned per run?**
Set `maxItems` to control the cap. The actor paginates through the category or listing page automatically until it reaches `maxItems` or runs out of results.

**How fresh is the data?**
Every run reads the live TopDevelopers.co pages at request time — there is no cached or stale data.

**Does this require a login or API key?**
No. TopDevelopers.co's category, directory, and profile pages are all publicly accessible without an account.

# Actor input Schema

## `mode` (type: `string`):

What to fetch.

## `category` (type: `string`):

Agency/service category to browse (mode=byCategory). Full taxonomy fetched from TopDevelopers.co.

## `startUrls` (type: `array`):

Direct TopDevelopers.co category, location, or technology listing URLs to scrape (mode=byUrl). Supports any real listing page copied from the site, including location- or tech-filtered variants such as `https://www.topdevelopers.co/directory/web-development-companies/uk`.

## `profileUrls` (type: `array`):

Specific TopDevelopers.co agency profile URLs to look up (mode=byProfile), e.g. `https://www.topdevelopers.co/profile/chopdawg`.

## `minRating` (type: `number`):

Only include agencies with an average rating (out of 5) at or above this value. 0 = no filter.

## `minReviews` (type: `integer`):

Only include agencies with at least this many published reviews. 0 = no filter.

## `employeeSize` (type: `string`):

Filter by employee-count band. Leave blank for no filter.

## `hourlyRate` (type: `string`):

Filter by hourly-rate band. Leave blank for no filter.

## `minProjectSize` (type: `string`):

Filter by the agency's stated minimum project budget band. Leave blank for no filter.

## `country` (type: `string`):

Only include agencies with an office in this country. Leave blank for no filter.

## `sortBy` (type: `string`):

Sort order for a browsed listing page (mode=byCategory / byUrl), matching TopDevelopers.co's own "Sort By" control. Leave as Rank for the site's default ordering.

## `maxItems` (type: `integer`):

Maximum number of agency records to return.

## `proxyConfiguration` (type: `object`):

Apify proxy used only as an automatic fallback if TopDevelopers.co starts rate-limiting the run. The free AUTO (datacenter) group is used; the actor also works with proxy disabled.

## Actor input object example

```json
{
  "mode": "byCategory",
  "category": "directory/web-designers",
  "startUrls": [],
  "profileUrls": [],
  "minRating": 0,
  "minReviews": 0,
  "employeeSize": "",
  "hourlyRate": "",
  "minProjectSize": "",
  "country": "",
  "sortBy": "",
  "maxItems": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# Actor output Schema

## `agencies` (type: `string`):

Dataset containing all scraped agency listings and profiles.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "byCategory",
    "category": "directory/web-designers",
    "startUrls": [],
    "profileUrls": [],
    "minRating": 0,
    "minReviews": 0,
    "employeeSize": "",
    "hourlyRate": "",
    "minProjectSize": "",
    "country": "",
    "sortBy": "",
    "maxItems": 30,
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/topdevelopers-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "byCategory",
    "category": "directory/web-designers",
    "startUrls": [],
    "profileUrls": [],
    "minRating": 0,
    "minReviews": 0,
    "employeeSize": "",
    "hourlyRate": "",
    "minProjectSize": "",
    "country": "",
    "sortBy": "",
    "maxItems": 30,
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/topdevelopers-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "byCategory",
  "category": "directory/web-designers",
  "startUrls": [],
  "profileUrls": [],
  "minRating": 0,
  "minReviews": 0,
  "employeeSize": "",
  "hourlyRate": "",
  "minProjectSize": "",
  "country": "",
  "sortBy": "",
  "maxItems": 30,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call crawlerbros/topdevelopers-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=crawlerbros/topdevelopers-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "TopDevelopers.co Scraper",
        "description": "Scrape B2B service-agency listings from TopDevelopers.co -- app development, software development, web design, digital marketing, and 80+ other agency categories. Get ratings, review counts, hourly rates, minimum project sizes, company size, and office locations.",
        "version": "1.0",
        "x-build-id": "Dmryr5Z7RuSGy6tQo"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/crawlerbros~topdevelopers-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-crawlerbros-topdevelopers-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/crawlerbros~topdevelopers-scraper/runs": {
            "post": {
                "operationId": "runs-sync-crawlerbros-topdevelopers-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/crawlerbros~topdevelopers-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-crawlerbros-topdevelopers-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "mode"
                ],
                "properties": {
                    "mode": {
                        "title": "Mode",
                        "enum": [
                            "byCategory",
                            "byUrl",
                            "byProfile"
                        ],
                        "type": "string",
                        "description": "What to fetch.",
                        "default": "byCategory"
                    },
                    "category": {
                        "title": "Category",
                        "enum": [
                            "companies/app-development",
                            "companies/software-development",
                            "directory/web-designers",
                            "directory/web-development-companies",
                            "directory/ui-ux-designers",
                            "directory/graphic-designers",
                            "directory/logo-design-companies",
                            "directory/product-design-companies",
                            "directory/dashboard-designers",
                            "directory/interactive-designers",
                            "directory/packaging-design-companies",
                            "directory/digital-marketing-agencies",
                            "directory/seo-companies",
                            "directory/ppc-companies",
                            "directory/social-media-marketing-agencies",
                            "directory/content-marketing-agencies",
                            "directory/email-marketing-agencies",
                            "directory/search-engine-marketing-companies",
                            "directory/video-marketing-agencies",
                            "directory/influencer-marketers",
                            "directory/facebook-advertising-agencies",
                            "directory/amazon-marketing",
                            "directory/ecommerce-marketing-agencies",
                            "directory/startup-marketing-agencies",
                            "directory/dtc-marketing-agencies",
                            "directory/healthcare-marketing-agencies",
                            "directory/dental-marketing-agencies",
                            "directory/financial-marketing-agencies",
                            "directory/beauty-marketing-companies",
                            "directory/restaurant-marketing-agencies",
                            "directory/entertainment-marketing-agencies",
                            "directory/higher-education-marketing-agencies",
                            "directory/automotive-advertising-agencies",
                            "directory/advertising-agencies",
                            "directory/lead-generation-companies",
                            "directory/appointment-setting-companies",
                            "directory/android-app-development-companies",
                            "directory/iphone-app-development-companies",
                            "directory/ipad-app-development-companies",
                            "directory/cross-platform-app-development-companies",
                            "directory/react-native-app-development-companies",
                            "directory/mobile-game-development-companies",
                            "directory/wearable-app-developers",
                            "directory/augmented-reality-app-development-companies",
                            "directory/virtual-reality-app-development-companies",
                            "directory/iot-app-development-companies",
                            "directory/healthcare-app-developers",
                            "directory/fintech-app-development-companies",
                            "directory/education-app-development-companies",
                            "directory/real-estate-app-development-companies",
                            "directory/retail-app-development-companies",
                            "directory/travel-app-development-companies",
                            "directory/logistics-app-development-companies",
                            "directory/entertainment-app-developers",
                            "directory/manufacturing-app-developers",
                            "directory/automotive-app-developers",
                            "directory/ecommerce-developers",
                            "directory/ecommerce-consultants",
                            "directory/shopify-developers",
                            "directory/shopify-setup-experts",
                            "directory/java-developers",
                            "directory/javascript-developers",
                            "directory/reactjs-developers",
                            "directory/flutter-developers",
                            "directory/blockchain-developers",
                            "directory/chatbot-developers",
                            "directory/chatgpt-developers",
                            "directory/sql-developers",
                            "directory/xml-developers",
                            "directory/asp-net-developers",
                            "directory/ai-companies",
                            "directory/machine-learning-companies",
                            "directory/generative-ai-development-companies",
                            "directory/deep-learning-companies",
                            "directory/big-data-analytics-companies",
                            "directory/cloud-computing-service-providers",
                            "directory/devops-companies",
                            "directory/cybersecurity-companies",
                            "directory/penetration-testing-companies",
                            "directory/qa-testing-companies",
                            "directory/software-testing-companies",
                            "directory/business-services-companies",
                            "directory/bpo-companies",
                            "directory/customer-support-outsourcing-companies",
                            "directory/data-entry-services-companies",
                            "directory/nft-companies",
                            "directory/robotics-companies"
                        ],
                        "type": "string",
                        "description": "Agency/service category to browse (mode=byCategory). Full taxonomy fetched from TopDevelopers.co.",
                        "default": "directory/web-designers"
                    },
                    "startUrls": {
                        "title": "Listing URLs",
                        "type": "array",
                        "description": "Direct TopDevelopers.co category, location, or technology listing URLs to scrape (mode=byUrl). Supports any real listing page copied from the site, including location- or tech-filtered variants such as `https://www.topdevelopers.co/directory/web-development-companies/uk`.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL",
                                    "description": "A page URL."
                                }
                            }
                        },
                        "default": []
                    },
                    "profileUrls": {
                        "title": "Agency profile URLs",
                        "type": "array",
                        "description": "Specific TopDevelopers.co agency profile URLs to look up (mode=byProfile), e.g. `https://www.topdevelopers.co/profile/chopdawg`.",
                        "items": {
                            "type": "object",
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL",
                                    "description": "A page URL."
                                }
                            }
                        },
                        "default": []
                    },
                    "minRating": {
                        "title": "Minimum rating",
                        "minimum": 0,
                        "maximum": 5,
                        "type": "number",
                        "description": "Only include agencies with an average rating (out of 5) at or above this value. 0 = no filter.",
                        "default": 0
                    },
                    "minReviews": {
                        "title": "Minimum review count",
                        "minimum": 0,
                        "maximum": 100000,
                        "type": "integer",
                        "description": "Only include agencies with at least this many published reviews. 0 = no filter.",
                        "default": 0
                    },
                    "employeeSize": {
                        "title": "Company size",
                        "enum": [
                            "",
                            "Freelancer",
                            "2 to 10",
                            "11 to 50",
                            "51 to 250",
                            "251 to 1000",
                            "1000+"
                        ],
                        "type": "string",
                        "description": "Filter by employee-count band. Leave blank for no filter.",
                        "default": ""
                    },
                    "hourlyRate": {
                        "title": "Hourly rate",
                        "enum": [
                            "",
                            "Up to $25",
                            "$26 - $50",
                            "$51 - $100",
                            "$101 - $150",
                            "$151 - $200",
                            "$201 - $300",
                            "$300+"
                        ],
                        "type": "string",
                        "description": "Filter by hourly-rate band. Leave blank for no filter.",
                        "default": ""
                    },
                    "minProjectSize": {
                        "title": "Minimum project size",
                        "enum": [
                            "",
                            "Less than - $5000",
                            "$5001 - $10000",
                            "$10001 - $25000",
                            "$25001 - $50000",
                            "$50001 - $100000"
                        ],
                        "type": "string",
                        "description": "Filter by the agency's stated minimum project budget band. Leave blank for no filter.",
                        "default": ""
                    },
                    "country": {
                        "title": "Country",
                        "enum": [
                            "",
                            "USA",
                            "UK",
                            "Canada",
                            "Australia",
                            "India",
                            "Germany",
                            "France",
                            "Spain",
                            "Italy",
                            "Netherlands",
                            "Poland",
                            "Ukraine",
                            "Romania",
                            "Lithuania",
                            "Estonia",
                            "Croatia",
                            "Ireland",
                            "Portugal",
                            "Belgium",
                            "Austria",
                            "Denmark",
                            "Norway",
                            "Sweden",
                            "Finland",
                            "Switzerland",
                            "UAE",
                            "Saudi Arabia",
                            "Israel",
                            "Turkey",
                            "Pakistan",
                            "Bangladesh",
                            "Singapore",
                            "Philippines",
                            "Vietnam",
                            "Indonesia",
                            "Malaysia",
                            "China",
                            "Japan",
                            "South Korea",
                            "New Zealand",
                            "South Africa",
                            "Nigeria",
                            "Kenya",
                            "Egypt",
                            "Brazil",
                            "Mexico",
                            "Argentina",
                            "Colombia",
                            "Chile"
                        ],
                        "type": "string",
                        "description": "Only include agencies with an office in this country. Leave blank for no filter.",
                        "default": ""
                    },
                    "sortBy": {
                        "title": "Sort by",
                        "enum": [
                            "",
                            "num_of_emp",
                            "cost_per_hour"
                        ],
                        "type": "string",
                        "description": "Sort order for a browsed listing page (mode=byCategory / byUrl), matching TopDevelopers.co's own \"Sort By\" control. Leave as Rank for the site's default ordering.",
                        "default": ""
                    },
                    "maxItems": {
                        "title": "Max results",
                        "minimum": 1,
                        "maximum": 2000,
                        "type": "integer",
                        "description": "Maximum number of agency records to return.",
                        "default": 30
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Apify proxy used only as an automatic fallback if TopDevelopers.co starts rate-limiting the run. The free AUTO (datacenter) group is used; the actor also works with proxy disabled.",
                        "default": {
                            "useApifyProxy": true
                        }
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
