Discover/AilaLawyer API
live

AilaLawyer APIailalawyer.com

Search immigration lawyers on AilaLawyer.com by location, language, and practice area. Retrieve profiles with credentials, AILA membership year, and contact info.

Endpoint health
verified 21h ago
search_lawyers
get_lawyer_details
get_form_options
3/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the AilaLawyer API?

The AilaLawyer.com API provides 3 endpoints to search, filter, and retrieve detailed profiles of immigration attorneys listed on AilaLawyer.com. Starting with get_form_options, you can fetch valid filter values for states, countries, languages, and practice areas, then pass those IDs directly to search_lawyers to get paginated results including attorney names, firm names, locations, and profile identifiers used to pull full records.

Try it

No input parameters required.

api.parse.bot/scraper/2dc488ce-97ce-4b46-9e00-4c0dd5b95dd2/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/2dc488ce-97ce-4b46-9e00-4c0dd5b95dd2/get_form_options' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

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 ailalawyer-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: AilaLawyer SDK — search immigration lawyers and view their profiles."""
from parse_apis.ailalawyer_api import AilaLawyer, LawyerNotFound

client = AilaLawyer()

# Fetch available search filters (states, languages, countries)
filters = client.searchfilters.get()
print(f"Available states: {filters.states[0].label}, {filters.states[1].label}, ...")
print(f"Available languages: {filters.languages[0].label}, {filters.languages[1].label}, ...")

# Search for lawyers in California (state ID "5"), limited to 3 results
for summary in client.lawyersummaries.search(state="5", limit=3):
    print(summary.name, "-", summary.location, "-", summary.firm)

# Drill into the first result's full profile
summary = client.lawyersummaries.search(state="5", limit=1).first()
if summary:
    lawyer = summary.details()
    print(f"Full name: {lawyer.full_name}")
    print(f"Firm: {lawyer.firm_name}")
    print(f"Bar admissions: {lawyer.bar_admissions}")
    print(f"Practice areas: {lawyer.practice_areas}")
    print(f"Member since: {lawyer.member_since}")

# Typed error handling for a missing attorney
try:
    bad_summary = client.lawyersummaries.search(state="5", limit=1).first()
    if bad_summary:
        bad_summary.details()
except LawyerNotFound as exc:
    print(f"Lawyer not found: a={exc.a}, p={exc.p}")

print("exercised: searchfilters.get / lawyersummaries.search / summary.details / LawyerNotFound")
All endpoints · 3 totalmissing one? ·

Retrieve all available filter options for the lawyer search form: US states, Canadian provinces, countries, languages, and practice areas. Each option contains a value (ID to pass to search_lawyers) and a human-readable label. Practice areas may be empty if the site does not expose them on the homepage form.

Input

No input parameters required.

Response
{
  "type": "object",
  "fields": {
    "states": "array of objects with value and label keys representing US states and Canadian provinces",
    "countries": "array of objects with value and label keys representing countries",
    "languages": "array of objects with value and label keys representing languages",
    "practice_areas": "array of objects with value and label keys representing practice areas"
  },
  "sample": {
    "data": {
      "states": [
        {
          "label": "Alabama",
          "value": "1"
        },
        {
          "label": "Alaska",
          "value": "2"
        },
        {
          "label": "Alberta",
          "value": "57"
        }
      ],
      "countries": [
        {
          "label": "USA",
          "value": "1"
        },
        {
          "label": "Canada",
          "value": "2"
        },
        {
          "label": "Afghanistan",
          "value": "155"
        }
      ],
      "languages": [
        {
          "label": "English",
          "value": "0"
        },
        {
          "label": "Spanish",
          "value": "89"
        },
        {
          "label": "Afrikaans",
          "value": "91"
        }
      ],
      "practice_areas": []
    },
    "status": "success"
  }
}

About the AilaLawyer API

Endpoints and Data Coverage

The API exposes three endpoints that work in sequence. get_form_options returns four lookup arrays — states, countries, languages, and practice_areas — each containing value and label keys. These values are the correct IDs to pass as filter parameters in search_lawyers, ensuring searches match the directory's own taxonomy rather than free-text guesses.

Searching for Attorneys

search_lawyers accepts up to eight optional parameters including zip, city, state, country, miles (radius), language, practice, and last (last name). Results come back in pages of up to 25, with a pagination object exposing current_page, total_pages, and total_count. Each lawyer summary in the lawyers array includes name, firm, geographic location, and the a (attorney ID) and p (firm ID) fields required to fetch a full profile.

Attorney Detail Records

get_lawyer_details takes the a and p IDs from search results and returns a richer profile: full_name, first_name, last_name, firm_name, address_lines, phone, website, law_school, languages spoken, and member_since (the year the attorney joined AILA). The phone field may be empty if the attorney has not published a number, and website is only present when listed.

Filter Workflow

Because search_lawyers uses numeric IDs for state, country, language, and practice, the correct workflow is to call get_form_options first, map human-readable labels to their value fields, then pass those values as query parameters. Setting language to 0 signals any language. The miles parameter scopes results to a radius around a zip or city, useful for building proximity-based lookups.

Reliability & maintenanceVerified

The AilaLawyer API is a managed, monitored endpoint for ailalawyer.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when ailalawyer.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 ailalawyer.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.

Last verified
21h ago
Latest check
3/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Build a referral tool that surfaces immigration lawyers near a given ZIP code filtered by practice area
  • Aggregate AILA member attorney contact info including phone and website by state or province
  • Filter attorneys who speak a specific language to serve non-English-speaking clients
  • Display law school credentials and AILA membership year to compare attorney backgrounds
  • Power a CRM enrichment workflow that resolves firm names and addresses from attorney IDs
  • Compile a regional directory of immigration lawyers for a legal aid or nonprofit platform
  • Support last-name lookup to verify whether a specific attorney is listed in the AILA directory
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does AilaLawyer.com have an official developer API?+
AilaLawyer.com does not publish a public developer API or documented data access program. This Parse API provides structured access to the attorney directory data the site exposes.
What does `get_lawyer_details` return beyond what `search_lawyers` provides?+
search_lawyers returns summary fields: name, firm, location, and the a and p IDs. get_lawyer_details adds phone, website, law_school, member_since (AILA membership year), spoken languages, and full address_lines. You need both the attorney ID (a) and firm ID (p) from search results to call this endpoint.
Does `search_lawyers` return results beyond the first page?+
The endpoint always returns the first page of up to 25 results, along with pagination metadata including total_pages and total_count. Multi-page traversal is not built into the current endpoint. You can fork this API on Parse and revise it to accept a page parameter and iterate through additional pages.
Can I retrieve attorney reviews or client ratings through this API?+
Not currently. The API covers attorney credentials, contact details, languages, practice areas, law school, and AILA membership year. Review or rating data is not part of the exposed fields. You can fork this API on Parse and revise it to add an endpoint targeting any review data available on attorney profile pages.
Are Canadian attorneys included, or is this US-only?+
get_form_options returns both US states and Canadian provinces in the states array, and search_lawyers accepts a country parameter populated from the countries lookup. Coverage depends on what attorneys are listed in the AilaLawyer.com directory, which is primarily AILA members.
Page content last updated . Spec covers 3 endpoints from ailalawyer.com.
Related APIs in B2b DirectorySee all →
lawyers.com API
Search and discover lawyers and law firms with detailed profiles, client reviews, and practice area information. Find legal articles and featured firms by specialty to help you locate the right legal representation for your needs.
avvo.com API
Search for attorneys by location and specialty to find detailed professional profiles, reviews, and practice areas that match your legal needs. Browse community-driven legal Q&A to get answers to common legal questions and learn from other users' experiences.
azbar.org API
Search for Arizona lawyers by name, location, specialty, or company to find the right legal professional for your needs. View detailed lawyer profiles including their specializations, licensed jurisdictions, law school, admission history, and any disciplinary records.
iardc.org API
Search for Illinois-licensed lawyers and access their registration status, contact information, admission dates, and discipline records through the IARDC database. Find detailed information about any lawyer registered with the Illinois Attorney Registration & Disciplinary Commission to verify credentials and review their professional history.
justia.com API
Access Justia's legal database: search the lawyer directory by practice area and location, retrieve attorney profiles, browse state statutes and case law, explore legal guides, and look up law schools — all in one API.
martindale.com API
Search for attorneys and law firms on Martindale-Hubbell by location, practice area, and ratings, then access detailed profiles including contact information, reviews, and verified credentials. Build comprehensive attorney databases or connect with qualified legal professionals using real-time directory data.
bailii.org API
Search and retrieve court judgments and case law from British and Irish courts across multiple jurisdictions, with filtering by date range and location. Access complete case details including full judgment text and metadata to research legal precedents and decisions.
therapytribe.com API
Search for therapists in your area and access their credentials, specialties, pricing, and client focus areas all in one place. Find the right mental health professional by filtering through available locations and detailed therapy type information.