Agent to Brokerage Resolver
Pricing
from $4.25 / 1,000 agent resolveds
Agent to Brokerage Resolver
Look up any licensed real estate agent in 19 US states on official license registers: brokerage of record, its agent count and size band, and license status. Roster by firm or zip. No emails or phones. Each run sends its Apify run token to MMG's lookup service to verify the run, never stored.
Pricing
from $4.25 / 1,000 agent resolveds
Rating
0.0
(0)
Developer
Mamba Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 hours ago
Last modified
Categories
Share
Look up a licensed US real estate agent on the official state license register and get the brokerage of record, that brokerage's active agent count and size band, and the agent's license status and expiry. List every active agent at a brokerage, or every brokerage office in a zip code. Data comes from 19 state license registers, never from a listing portal, an MLS, or LinkedIn. No emails, phone numbers, or home addresses are returned.
Features
- Brokerage size from the register itself. The active agent count is counted from the state register, so you can tell a one person office from a 50 agent firm before you reach out. Size bands: 1, 2-15, 16-50, 51+.
- 19 states. Brokerage of record in CA, IA, MO, NV, NY, OH, OR, TX, and VT. License status and expiry in AK, CT, DE, ID, IL, ME, MI, NH, RI, and VA.
- Three modes. Look up one agent or a list (by license number or by name), list the agents at a brokerage, or list the brokerage offices in a zip code.
- Exact matches first. A license number match is exact. A name match is returned only when one register record fits, and the row says how sure the match is. A common name returns an
ambiguousrow, free, instead of a guess. - Tenure and new licensees. TX rows carry days at the current brokerage from the TREC sponsorship date. Rows from states that publish an original license date carry a newly licensed flag.
- Change history is building. History for TX, NY, CA, and OH starts on 2026-10-19, and those four registers are scheduled for a daily read. The 90 day brokerage change and status change flags switch on once 90 days of history exist.
- Clay ready. One flat row per agent, snake_case keys, every input accepted as a string.
Your run token goes to MMG's lookup service. Each run sends its own Apify run token to the Mamba Labs lookup service that holds the register index. On every request, the service uses the token to read that run from the Apify API and confirm it is a live run of this actor. It caches no result and never stores or logs the token.
Input
| Field | Mode | Description |
|---|---|---|
mode | all | lookup (default), roster_firm, or roster_zip |
state | all | Two letter licensing state, for example TX |
license_number | lookup | The agent's license number as the register prints it |
agent_name | lookup | First and last name, when you have no license number |
brokerage_name | lookup, roster_firm | Narrows a name match; names the firm in firm roster mode |
city | lookup | Narrows a name match by brokerage office city or license county |
licenses | lookup | Batch, one per line: TX 0123456 |
agents | lookup | Batch, one per line: TX | Jane Doe | Doe Realty | Austin |
brokerage_license_number | roster_firm | The brokerage's license number |
zip, zips | roster_zip | Five digit zip codes (NY, MO, OR, VT) |
include_agents | roster_zip | true to also list each office's active agents |
active_only | roster modes | Active licenses only, default true |
max_results | roster modes | Rows per brokerage or zip, 1 to 1000, default 100 |
max_charge_usd | all | Stop before the row that would pass this amount |
Example: {"mode": "lookup", "state": "TX", "license_number": "134224-SA"}
Output
One row per agent (or per brokerage office in zip roster mode). Every row carries every field; a missing value is null.
| Field | Type | Example |
|---|---|---|
row_status | string | matched, ambiguous, not_found, state_not_supported, source_unavailable, cap_reached, invalid_input |
error_reason | string or null | more than one licensee matches; add a license number, brokerage name, or city |
input_key | string | TX:134224-SA |
mode, row_type | string | lookup, agent |
match_confidence | number or null | 1 for a license number match, 0.9 to 0.97 for a name match |
candidates_count | integer or null | 1 |
state, license_number, license_type, license_status | string | TX, 134224-SA, Sales Agent, Active |
license_active | boolean | true |
license_expiration_date, original_license_date | string or null | 2028-05-31, 1987-11-16 |
full_name | string | Linda Paulette Tate |
brokerage_name, brokerage_license_number | string or null | Briggs/Freeman Resource Company, 566433-BB |
brokerage_link_kind | string | license_number, firm_name, or none |
brokerage_active_agent_count | integer or null | 33 |
brokerage_size_band | string or null | 16-50 |
brokerage_office_city, brokerage_office_zip | string or null | Buffalo, 14201 (zip in NY, MO, OR, VT) |
county | string or null | Tarrant |
agent_tenure_at_brokerage_days | integer or null | 1494 (TX) |
newly_licensed_last_90d | boolean or null | false |
brokerage_changed_last_90d, license_status_changed_last_90d | boolean or null | null while history builds |
change_flags_status, history_start_date | string or null | history_building, 2026-10-19 |
state_cold_email_status | string or null | yes_with_conditions |
roster_total_available | integer or null | 33 (roster modes) |
source, source_license, source_updated_at, index_commit | string or null | tx_trec_open_data, null, 2026-09-29, b91121c |
billable_events_json | string | {"agent-resolved":1} |
checked_at | string | 2026-10-19T08:00:00.000Z |
Pricing
Pay per event. You pay for matched rows and for a small start fee per run. Rows that are ambiguous, not_found, state_not_supported, source_unavailable, cap_reached, or invalid_input are free.
| Event | Free plan | Bronze | Silver | Gold |
|---|---|---|---|---|
agent-resolved, one matched lookup row | 0.00500 USD (5.00 per 1,000) | 0.00475 USD (4.75 per 1,000) | 0.00450 USD (4.50 per 1,000) | 0.00425 USD (4.25 per 1,000) |
roster-row, one agent or office row in a roster mode | 0.00200 USD (2.00 per 1,000) | 0.00190 USD (1.90 per 1,000) | 0.00180 USD (1.80 per 1,000) | 0.00170 USD (1.70 per 1,000) |
apify-actor-start, once per run | 0.00050 USD | 0.000475 USD | 0.00045 USD | 0.000425 USD |
Free plan users get 1.50 USD of evaluation each month, about 300 matched lookups, after which the run stops with a cap_reached row. The run also stops at the maximum cost per run you set in Apify, and before the row that would pass max_charge_usd.
Usage examples
Apify API
curl -X POST "https://api.apify.com/v2/acts/ePRRGLxOGyaVHO4dI/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"mode":"lookup","licenses":"TX 134224-SA\nNY 10301200081"}'
Firm roster: {"mode": "roster_firm", "state": "TX", "brokerage_license_number": "566433-BB", "max_results": 50}
Zip roster with agents: {"mode": "roster_zip", "zips": "14201", "include_agents": "true"}
Clay. Add an Apify column, choose this actor, and map state and license_number (or agent_name) from your table. Every input is a string, so Clay values pass as they are, and batch lists take one entry per line. One agent per row in, one row per agent out.
MCP. The Mamba Labs MCP server for this actor exposes the tool resolve_agent_brokerage, so an AI assistant can look up an agent's brokerage in a conversation.
Error handling
| Situation | What you get |
|---|---|
| License number not on the register | not_found row, free |
| Name matches more than one licensee | ambiguous row with candidates_count, free. Add a license number, brokerage, or city |
| State outside the 19, or SC, KS, AZ, CO | state_not_supported row, free |
| Roster mode for CA or IL | state_not_supported row, free. Lookup mode works in both |
| Zip roster outside NY, MO, OR, VT | state_not_supported or not_found row, free |
| Lookup service unreachable | source_unavailable row, free; the run still succeeds |
Free plan allowance, max_charge_usd, or your maximum cost per run reached | One cap_reached row, free, and the run stops |
| Malformed batch line | invalid_input row, free |
Limitations
- A brokerage is a licensed firm, not a team. The size band counts active licensees on the register linked to the firm.
- NY, NV, IA, and VT link agents to firms by exact firm name, so two offices of one firm can count separately. Those rows say
brokerage_link_kind: firm_name. - CA and IL serve lookup mode only, while two legal questions are open. IL rows carry the Open Database License attribution in
source_license. - CA and NV addresses can be home addresses, so county and office zip are not returned there.
- Change flags need 90 days of daily history. They read null with
change_flags_status: history_buildinguntil then. States that publish no daily file readnot_available. - Registers are reloaded on a schedule;
source_updated_atgives the date of the file behind each row. - The output holds license register facts only. Whether and how you contact an agent is your decision;
state_cold_email_statusis a research note, not legal advice.
Sourcing and legal. Rows come from public state license registers: CA DRE, TX TREC, NY DOS, MO DPR, OR REA, OH REPL, NV RED, IA PLB, VT OPR, IL IDFPR, and the AK, CT, DE, ID, ME, MI, NH, RI, and VA boards. No listing portal, MLS, or LinkedIn page is read. No email, phone number, or mailing address is returned.
The Mamba Labs suite
Need something custom built for your team? Talk to Mamba Labs.
Built by Mamba Labs.