Texas APIpharmacy.texas.gov ↗
Look up Texas pharmacist license status, expiration, education, employment, and disciplinary history via the Texas State Board of Pharmacy database.
What is the Texas API?
The Texas Pharmacist License API exposes 1 endpoint and 10 response fields drawn from the Texas State Board of Pharmacy's license verification database. Using the lookup_license endpoint, you can retrieve a pharmacist's license status, degree at licensure, employment records, preceptor designation, and more by passing a single numeric license number.
curl -X GET 'https://api.parse.bot/scraper/17894b26-710b-4996-aa19-70d87277aa0c/lookup_license?license_number=38041' \ -H 'X-API-Key: $PARSE_API_KEY'
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 pharmacy-texas-gov-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: Texas Pharmacist License Lookup — fetch and inspect a license."""
from parse_apis.pharmacy_texas_gov_api import PharmacyTexasGov, LicenseNotFound
client = PharmacyTexasGov()
# Look up a pharmacist license by number.
try:
license = client.licenses.get(license_number="38041")
except LicenseNotFound:
print("License not found in the Texas Board of Pharmacy database.")
raise
# Display core license details.
print(f"{license.first_name} {license.last_name} — {license.degree}")
print(f"Status: {license.license_status}, Expires: {license.expiration_date}")
print(f"School: {license.school_graduated} ({license.graduation_year})")
# Walk current employment records.
for emp in license.employment:
print(f" Employed at {emp.pharmacy_name} (#{emp.pharmacy_license_number}) as {emp.employment_status}")
print("exercised: licenses.get")
Look up a Texas pharmacist license by its license number. Returns comprehensive license details including status, expiration, pharmacist education, names, specialty certification, disciplinary history, and current employment information. Each call makes two requests to the site (one for the license detail page, one for employment data). Returns stale_input when the license number does not exist in the database.
| Param | Type | Description |
|---|---|---|
| license_numberrequired | string | Texas pharmacist license number (numeric, at least 2 digits, e.g. '38041'). |
{
"type": "object",
"fields": {
"degree": "Degree at time of licensure (e.g. Pharm D, BS)",
"last_name": "Pharmacist last name",
"preceptor": "Whether the pharmacist is a preceptor (Yes/No)",
"employment": "Array of current employment records with pharmacy_name, pharmacy_license_number, and employment_status",
"first_name": "Pharmacist first name",
"other_name": "Other name on record",
"middle_name": "Pharmacist middle name",
"license_method": "Method of licensure (e.g. Exam, Reciprocity)",
"license_number": "The license number",
"license_status": "License status (e.g. Active, Inactive, Expired)",
"remedial_plans": "Array of any remedial plans on record",
"expiration_date": "License expiration date in MM/DD/YYYY format",
"graduation_year": "Year of graduation",
"certificate_name": "Full certificate name",
"school_graduated": "Name of the pharmacy school graduated from",
"date_license_issued": "Date the license was originally issued in MM/DD/YYYY format",
"prior_disciplinary_orders": "Whether there are prior disciplinary orders (Yes/No)",
"specialty_board_certification": "Specialty board certification status"
},
"sample": {
"data": {
"degree": "Pharm D",
"last_name": "CORTINAS",
"preceptor": "No",
"employment": [
{
"pharmacy_name": "AMERITA INC",
"employment_status": "Staff",
"pharmacy_license_number": "25212"
}
],
"first_name": "LAURENCIO",
"other_name": "",
"middle_name": "GONZALO",
"license_method": "Exam",
"license_number": "38041",
"license_status": "Active",
"remedial_plans": [],
"expiration_date": "03/31/2027",
"graduation_year": "1998",
"certificate_name": "CORTINAS, LAURENCIO GONZALO",
"school_graduated": "UNIVERSITY OF TEXAS AT AUSTIN",
"date_license_issued": "08/08/1998",
"prior_disciplinary_orders": "No",
"specialty_board_certification": "Unknown"
},
"status": "success"
}
}About the Texas API
What the API Returns
The lookup_license endpoint accepts a license_number (a numeric string of at least two digits, e.g. 38041) and returns a structured record for the matching Texas pharmacist. Core identity fields include first_name, middle_name, last_name, and other_name. Credential fields cover license_number, license_status (Active, Inactive, Expired, etc.), license_method (Exam, Reciprocity, etc.), and degree (e.g. Pharm D, BS).
Employment and Preceptor Data
The response includes an employment array, where each entry contains pharmacy_name, pharmacy_license_number, and employment_status — useful for mapping a pharmacist to their current practice site. A separate preceptor field (Yes/No) indicates whether the pharmacist holds preceptor status with the Texas State Board of Pharmacy.
Coverage and Freshness
Data reflects the Texas State Board of Pharmacy's public license verification database. Results represent whatever is currently on record at the Board, including disciplinary history where present. There is no batch endpoint — each call queries a single license number. License numbers are numeric; non-numeric or too-short inputs are rejected before a request is made.
The Texas API is a managed, monitored endpoint for pharmacy.texas.gov — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when pharmacy.texas.gov 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 pharmacy.texas.gov 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.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Verify a Texas pharmacist's license status before hiring or credentialing
- Check the degree and licensure method for a pharmacist applicant
- Identify current pharmacy employment sites linked to a specific license number
- Confirm whether a pharmacist holds active preceptor designation
- Screen for disciplinary history as part of a background review workflow
- Build a credentialing pipeline that flags expired or inactive Texas pharmacy licenses
- Cross-reference pharmacy license numbers from the employment array against pharmacy records
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 200 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
| Team | $300/mo | 20,000 | 300 req/min |
| Company | $1,000/mo | 100,000 | 500 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.
Does the Texas State Board of Pharmacy provide an official developer API?+
What does the employment field in the response actually contain?+
employment field is an array of records, each with three values: pharmacy_name (the name of the practice site), pharmacy_license_number (the Board-assigned number for that pharmacy), and employment_status. A pharmacist may appear at multiple locations if the Board has multiple employment records on file.Can I look up multiple license numbers in a single API call?+
lookup_license endpoint accepts one license_number per call. For batch lookups, you would need to call the endpoint once per license number. You can fork this API on Parse and revise it to add a batch input parameter that iterates over a list of numbers.