Discover/Mn API
live

Mn APIpha.hlb.state.mn.us

Search and retrieve Minnesota pharmacy license data — pharmacists, techs, interns, facilities — via the pha.hlb.state.mn.us API.

This API takes change requests — .
Endpoint health
verified 1h ago
search_licenses
1/1 passing latest checkself-healing
Endpoints
1
Updated
2h ago

What is the Mn API?

The Minnesota Board of Pharmacy License API exposes 1 endpoint, search_licenses, that returns full licensee records for pharmacists, pharmacy technicians, interns, preceptors, and regulated facilities in Minnesota. Each result includes license number, type, current status, issue date, and expiration date, covering every license or registration currently held by the matched entity. Wildcard name matching lets callers retrieve broad or narrow result sets in a single request.

This call costs10 credits / call— charged only on success
Try it
Last name or organization name to search for. Supports wildcard (%) for partial matching (e.g. '%John%' matches any name containing John). At least one of last_name or first_name must be provided.
First name to search for. Supports wildcard (%) for partial matching. At least one of last_name or first_name must be provided.
Filter results by license/registration type. When omitted, all license types are returned.
api.parse.bot/scraper/1f44388a-3298-436c-bccb-9e02ddeefa50/<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/1f44388a-3298-436c-bccb-9e02ddeefa50/search_licenses?last_name=Smith&first_name=John&license_type=Pharmacist' \
  -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 pha-hlb-state-mn-us-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: Minnesota Board of Pharmacy license search — bounded, re-runnable."""
from parse_apis.pha_hlb_state_mn_us_api import MNPharmacy, LicenseType, InputFormatInvalid

client = MNPharmacy()

# Search for pharmacists by last name, capped at 5 total results.
for licensee in client.licensees.search(last_name="Smith", license_type=LicenseType.PHARMACIST, limit=5):
    print(licensee.first_name, licensee.last_name, "-", licensee.address)
    for lic in licensee.licenses:
        print(f"  {lic.license_type} #{lic.license_number} — {lic.status}, expires {lic.expire_date}")

# Drill-down: find one specific person by first+last name.
result = client.licensees.search(last_name="Johnson", first_name="Mary", limit=1).first()
if result is not None:
    print(f"\n{result.first_name} {result.middle_name} {result.last_name} (entity {result.entity_id})")
    print(f"  Address: {result.address}")
    if result.licenses:
        earliest = min(result.licenses, key=lambda l: l.issue_date)
        print(f"  Earliest license issued: {earliest.issue_date}")

# Demonstrate error handling for invalid input.
try:
    client.licensees.search(limit=1).first()
except InputFormatInvalid as e:
    print(f"Expected validation error: {e.message}")

print("\nexercised: licensees.search / License fields / InputFormatInvalid")
All endpoints · 1 totalmissing one? ·

Search for licensees by last name and/or first name, optionally filtered by license type. Returns matching results with full license details including license number, type, status, issue date, and expiration date. Each result includes all licenses and registrations held by that entity. Makes one API call per result to fetch details (capped at 50 results). A homepage warmup request is made to establish session cookies before the search.

Input
ParamTypeDescription
last_namestringLast name or organization name to search for. Supports wildcard (%) for partial matching (e.g. '%John%' matches any name containing John). At least one of last_name or first_name must be provided.
first_namestringFirst name to search for. Supports wildcard (%) for partial matching. At least one of last_name or first_name must be provided.
license_typestringFilter results by license/registration type. When omitted, all license types are returned.
Response
{
  "type": "object",
  "fields": {
    "results": "array of result objects with license details for each matched entity",
    "total_results": "integer — total number of matching results from the search"
  },
  "sample": {
    "data": {
      "results": [
        {
          "suffix": null,
          "address": "Falcon Heights, MN 55108",
          "licenses": [
            {
              "status": "Expired",
              "issue_date": "1966-06-24T00:00:00",
              "expire_date": "2012-02-29T00:00:00",
              "license_type": "Pharmacist",
              "license_number": 110920,
              "license_card_type": "License",
              "license_type_code": "RP"
            }
          ],
          "entity_id": 1072368,
          "last_name": "Smith",
          "first_name": "John",
          "middle_name": "H",
          "certifications": []
        },
        {
          "suffix": null,
          "address": "Woodbury, MN 55125",
          "licenses": [
            {
              "status": "Expired",
              "issue_date": "2002-07-24T00:00:00",
              "expire_date": "2002-12-31T00:00:00",
              "license_type": "Pharmacy Technician",
              "license_number": 708540,
              "license_card_type": "Registration",
              "license_type_code": "PT"
            }
          ],
          "entity_id": 1087199,
          "last_name": "Smith",
          "first_name": "John",
          "middle_name": "Robert",
          "certifications": []
        }
      ],
      "total_results": 2
    },
    "status": "success"
  }
}

About the Mn API

What the API Returns

The search_licenses endpoint queries the Minnesota Board of Pharmacy's public licensee database and returns an array of result objects alongside a total_results integer. Each object in the results array contains the full set of licenses and registrations held by the matched entity — license number, license type, status, issue date, and expiration date — for individual practitioners and regulated facilities alike.

Inputs and Filtering

Searches accept last_name and/or first_name as string inputs, both of which support the % wildcard for partial matching (e.g., %son matches any name ending in "son"). At least one of the two name fields must be provided. The optional license_type parameter narrows results to a specific category such as pharmacist, pharmacy technician, intern, or preceptor. Omitting license_type returns all matching license types across the full board registry.

Coverage and Scope

The data covers professionals and facilities regulated specifically by the Minnesota Board of Pharmacy. This includes licensed pharmacists, registered pharmacy technicians, pharmacy interns, preceptors, and licensed pharmacy facilities operating within Minnesota. The status field reflects current standing, making the endpoint useful for credential verification workflows where expiration or active/inactive status matters.

Limitations

Because the underlying registry covers only Minnesota, practitioners licensed in other states will not appear in results. Searches returning large wildcard matches still report total_results as a count, but result pagination behavior should be tested for high-volume queries. Disciplinary action details, complaint history, or CE (continuing education) records are not part of the response schema.

Reliability & maintenanceVerified

The Mn API is a managed, monitored endpoint for pha.hlb.state.mn.us — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pha.hlb.state.mn.us 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 pha.hlb.state.mn.us 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
1h ago
Latest check
1/1 endpoint 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
  • Verify a Minnesota pharmacist's license status and expiration date before onboarding them as a contractor
  • Check whether a pharmacy facility's registration is active prior to a procurement or partnership decision
  • Build a credential monitoring service that alerts when a pharmacy technician's license is approaching expiration
  • Validate pharmacy intern or preceptor registration for a clinical rotation program
  • Populate a staff directory with current license numbers and types for compliance documentation
  • Audit a batch of employee records by querying each name and confirming active licensure status
  • Support background-check workflows by confirming license type and issue date for regulated pharmacy roles
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does the Minnesota Board of Pharmacy provide an official public developer API?+
The Minnesota Board of Pharmacy publishes an online entity search tool at pha.hlb.state.mn.us but does not offer a documented developer API with structured endpoints, versioning, or API keys.
What does the `search_licenses` endpoint return for a single matched individual?+
It returns all licenses and registrations held by that entity as objects within the results array. Each object includes the license number, license type, status, issue date, and expiration date. If a pharmacist also holds a preceptor registration, both appear in the same result set.
Does the API return disciplinary history or complaint records for a licensee?+
Not currently. The API returns license number, type, status, issue date, and expiration date — it does not include disciplinary actions, complaint history, or sanctions. You can fork this API on Parse and revise it to add an endpoint targeting that data if it becomes available from the source.
Does the API cover pharmacy licenses from states other than Minnesota?+
No — coverage is limited to licensees and facilities regulated by the Minnesota Board of Pharmacy. Practitioners licensed only in other states will not appear in results. You can fork this API on Parse and revise it to point at another state board's registry if you need multi-state coverage.
How does wildcard matching work in the `last_name` and `first_name` parameters?+
Both fields accept the % character as a wildcard. Placing % before a string (e.g., %berg) matches any name ending with that substring; surrounding a string with % on both sides matches names containing it anywhere. At least one of last_name or first_name must be supplied for the query to execute.
Page content last updated . Spec covers 1 endpoint from pha.hlb.state.mn.us.
Related APIs in Government PublicSee all →
roster.aelslagid.state.mn.us API
Search for Minnesota civil engineer and professional licenses to verify credentials and find contact information for licensed professionals registered with the state board. Look up current licensure status, specializations, and registration details for architects, engineers, surveyors, landscape architects, and other design professionals in Minnesota.
myfloridalicense.com API
Search and verify Florida veterinary licenses issued by the Department of Business & Professional Regulation, retrieving detailed practitioner information, license status, and credentials. Look up veterinarians by name or license number to confirm their professional standing and qualifications.
verification.fda.gov.ph API
Search and verify registered pharmaceutical products, establishments, and licenses directly from the Philippine FDA verification portal. Quickly confirm product registrations and establishment credentials to ensure compliance with FDA regulations.
pharmdata.co.uk API
Search UK pharmacies, access NHS service statistics, and retrieve pharmacy dispensing data to compare performance across regions. Monitor MHRA drug safety alerts and view LPC rankings to make informed decisions about pharmacy services and medications.
nursys.com API
Search nurse licensure records across multiple state boards and verify nursing credentials in real-time through Nursys QuickConfirm. Get detailed information about participating jurisdictions and their specific licensure requirements.
idoi.illinois.gov API
Search for licensed insurance producers, agents, agencies, and public adjusters in Illinois while accessing their professional credentials and contact information. Quickly verify agent licensing status and retrieve detailed practitioner details through comprehensive site-wide search capabilities.
www2.dre.ca.gov API
Search and look up California real estate agent licenses to instantly verify license status, expiration dates, broker information, and disciplinary history. Get comprehensive details including agent names, mailing addresses, license types, and issue dates for any California DRE licensee.
npidb.org API
Search for healthcare providers and organizations by name to instantly retrieve their credentials, contact information, and specialty taxonomy codes from the National Provider Identifier database. Look up detailed provider profiles to verify qualifications and find the right medical professionals for your needs.