njportal APInjportal.com ↗
Search New Jersey Division of Revenue business records by name or entity ID. Returns entity type, city, incorporation date, and registration status.
What is the njportal API?
The njportal.com API provides 2 endpoints for querying New Jersey Division of Revenue and Enterprise Services business entity records. The search_by_name endpoint accepts a partial business name (minimum 2 characters) and returns all matching entities at once, while search_by_entity_id performs an exact lookup by the 10-digit NJ entity ID. Each result includes entity identification, type, city, and incorporation date.
curl -X GET 'https://api.parse.bot/scraper/164fd953-fc56-4eb0-895d-70627b4d4e52/search_by_name?business_name=Acme' \ -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 njportal-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: NJ business entity search — search by name, then look up by ID."""
from parse_apis.njportal_com_api import NJPortal, InputFormatInvalid
client = NJPortal()
# Search for businesses matching a name prefix; cap total items fetched.
for biz in client.businesses.search(business_name="Acme", limit=5):
print(biz.business_name, biz.city, biz.business_type)
# Drill into the first result and look it up by its entity ID.
hit = client.businesses.search(business_name="Acme", limit=1).first()
if hit is not None:
try:
detail = client.businesses.lookup(entity_id=hit.entity_id, limit=1).first()
except InputFormatInvalid as e:
print("Invalid entity ID format:", e.message)
else:
if detail is not None:
print(detail.entity_id, detail.business_name, detail.incorporated_date)
print("exercised: businesses.search / businesses.lookup")
Search NJ business records by business name using partial match. A wildcard is automatically appended to the search term by the upstream system. Returns all matching entities in a single response with no server-side pagination — all results are returned at once. The search requires at least 2 characters. Use '%' within the name as an explicit wildcard. Typical queries return tens to hundreds of results; very broad searches can return several hundred.
| Param | Type | Description |
|---|---|---|
| business_namerequired | string | Business name to search for (partial match, minimum 2 characters). A wildcard is automatically appended. Use '%' as an explicit wildcard within the name. |
{
"type": "object",
"fields": {
"query": "The business name search term that was submitted",
"total": "Total number of matching business entities",
"results": "Array of matching business entity records"
},
"sample": {
"data": {
"query": "Acme",
"total": 464,
"results": [
{
"city": "PATERSON",
"entity_id": "0100449680",
"business_name": "ACME & DORF DOOR CORP.",
"business_type": "Domestic Profit Corporation",
"incorporated_date": "4/25/1990",
"business_type_code": "DP"
},
{
"city": null,
"entity_id": "0100185096",
"business_name": "ACME & DORF METAL DOOR CORP. OF N.J., INC.",
"business_type": "Domestic Profit Corporation",
"incorporated_date": "1/3/1983",
"business_type_code": "DP"
},
{
"city": "PATERSON",
"entity_id": "0450281815",
"business_name": "ACME & DORF METAL DOORS LLC",
"business_type": "Domestic Limited Liability Company",
"incorporated_date": "6/21/2018",
"business_type_code": "LLC"
}
]
},
"status": "success"
}
}About the njportal API
Endpoints and Parameters
The search_by_name endpoint takes a business_name parameter (minimum 2 characters) and queries the NJ Division of Revenue business name index with a wildcard automatically appended to the search term. The response includes a query field echoing the submitted term, a total count of matched records, and a results array containing all matching business entity records. There is no server-side pagination — every match is returned in a single response, which means broad search terms may return large result sets.
The search_by_entity_id endpoint accepts an entity_id parameter, which must be the full 10-digit numeric identifier assigned by the NJ Division of Revenue. Leading zeros are significant and must be preserved (for example, 0100449680). This endpoint returns either zero or one matching entity, along with the searched entity_id and a total field indicating whether a match was found.
Response Fields
Both endpoints return business entity records inside a results array. Each record includes the entity's identification details, its legal entity type (such as corporation or LLC), the city of record, and the incorporation or registration date. These fields reflect the data held in the NJ Division of Revenue's public business registry.
Coverage and Scope
Coverage is limited to entities registered with the New Jersey Division of Revenue and Enterprise Services. The data reflects the publicly searchable business name registry maintained at njportal.com. Only registered NJ entities appear; businesses from other states or unregistered entities are not included.
The njportal API is a managed, monitored endpoint for njportal.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when njportal.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 njportal.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.
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 that a business name is already registered in New Jersey before filing a new entity
- Look up the incorporation date and entity type of a known NJ business by partial name
- Retrieve the official entity ID for a New Jersey business to use in downstream compliance checks
- Cross-reference a 10-digit NJ entity ID against public registration records for due diligence
- Enumerate all entities sharing a common name prefix to identify related or similarly named companies
- Build an internal directory of NJ-registered vendors filtered by city or entity type
| 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 NJ Division of Revenue offer an official developer API for business entity data?+
What does search_by_name return when there are many matches?+
total field gives the count and results holds every matched entity. Very short or common search terms can produce large result sets since all matches are delivered at once.