POST /normalize_company • Credits: 0.5 credits per call
Normalize Company cleans one raw company name. Send a POST request with the name. The response holds the normalized name, the list of legal suffixes that the endpoint removed, and two flags that report what changed. Each call costs 0.5 credits, which is $0.01.
What does Normalize Company do?
A CRM holds the same account under many spellings. Acme, Inc., ACME Inc and Acme Incorporated are three records for one company. Normalize Company reduces each spelling to the same root name, so a match key works. The endpoint strips 64 legal and structural suffixes. The endpoint also removes trailing punctuation and emojis. For an all-uppercase name or an all-lowercase name, the endpoint fixes the casing. RichAPI runs the logic inside the API. Normalize Company calls no external data provider.
Which endpoint does Normalize Company use?
Method:
POSTURL:
https://api.richapi.ai/api/v1/normalize_companyAuthentication:
x-api-keyheaderResponse: Synchronous JSON
Credits: 0.5 credits per call
How to send a Normalize Company request
Copy your API key from the RichAPI dashboard.
Set the
company_nameparameter to the raw company name.To keep the original casing, set
normalize_casetofalse.Send a
POSTrequest tohttps://api.richapi.ai/api/v1/normalize_company.Send the API key in the
x-api-keyheader.Read the
normalized_namefield from the response.
cURL
curl -X POST https://api.richapi.ai/api/v1/normalize_company
-H "x-api-key: YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"company_name": "ACME TECHNOLOGIES, INC.", "normalize_case": true}'
Python
import requests
response = requests.post(
"https://api.richapi.ai/api/v1/normalize_company",
headers={"x-api-key": "YOUR_API_KEY"},
json={"company_name": "ACME TECHNOLOGIES, INC.", "normalize_case": True},
timeout=60,
)
response.raise_for_status()
print(response.json())
Node.js
const response = await fetch("https://api.richapi.ai/api/v1/normalize_company", {
method: "POST",
headers: {
"x-api-key": "YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
company_name: "ACME TECHNOLOGIES, INC.",
normalize_case: true,
}),
});
const data = await response.json();
console.log(data);
Which parameters does Normalize Company accept?
Parameter | Type | Required | Default | Description |
| string | Yes | none | The raw company name to clean. The maximum length is 500 characters. |
| boolean | No |
| Converts an all-uppercase or an all-lowercase name to title case. If the value is |
CAUTION: Do not send a company_name longer than 500 characters. The API returns 400 and charges no credit.
What does Normalize Company return?
The following block is an example response for the request body above.
{
"original_name": "ACME TECHNOLOGIES, INC.",
"normalized_name": "Acme Technologies",
"removed_suffixes": ["Inc."],
"case_normalized": true,
"changes_applied": true
}
What does each Normalize Company response field mean?
Field | Type | Description |
| string | The company name that you sent, after leading and trailing whitespace was trimmed. |
| string | The cleaned company name. |
| array of strings | Every suffix that Normalize Company removed, in removal order. The endpoint reports the canonical spelling, for example |
| boolean | The value is |
| boolean | The value is |
What does Normalize Company return for common company names?
Each row is a real result from the endpoint with the default normalize_case value of true.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Which suffixes does Normalize Company remove?
Normalize Company matches 64 suffixes. The match ignores case. The endpoint repeats the pass up to 10 times, so it removes a stack of suffixes such as Group Ltd.
Group | Suffixes |
Long legal forms |
|
English words |
|
Abbreviations with periods |
|
Abbreviations without periods |
|
Descriptive words |
|
A suffix matches only after a comma and a space, a single space, or a hyphen. Acme-LLC and Acme, LLC both normalize to Acme.
Which suffixes stay in the name?
The 16 descriptive words in the last row are identity suffixes. When removal leaves a single word, Normalize Company keeps the identity suffix. Acme Industries stays Acme Industries, because Acme alone is one word. Acme Global Industries becomes Acme Global, because two words remain.
Pty, Pty., OYJ, ASA, S.p.A., S.A.S. and KG are not in the list. Normalize Company keeps each of them.
How does Normalize Company handle punctuation, casing and whitespace?
Rule | Behavior | Example |
Trailing punctuation | Removes every trailing comma, period, hyphen and space after the suffix pass. |
|
Inner punctuation | Keeps every comma, period, hyphen, ampersand and apostrophe inside the name. |
|
Outer whitespace | Trims leading and trailing whitespace before any other step. |
|
Inner whitespace | Keeps repeated spaces inside the name. Use the |
|
Casing | Rewrites the casing of an all-uppercase name or an all-lowercase name only. A mixed-case name keeps its casing. |
|
Acronyms | Restores 34 known acronyms during a casing rewrite: |
|
Small words | Lowercases 18 small words after the first word during a casing rewrite: |
|
Ampersand and apostrophe | Capitalizes each part around an |
|
Emojis | Removes emojis and pictographs after the suffix pass. A trailing emoji blocks suffix removal. |
|
How do I deduplicate a CRM list with Normalize Company?
One account often sits in a CRM three times. The example below sends the three spellings and groups the records by the result.
import requests
records = ["Acme, Inc.", "ACME Inc", "Acme Incorporated"]
groups = {}
for raw_name in records:
response = requests.post(
"https://api.richapi.ai/api/v1/normalize_company",
headers={"x-api-key": "YOUR_API_KEY"},
json={"company_name": raw_name},
timeout=60,
)
response.raise_for_status()
key = response.json()["normalized_name"].lower()
groups.setdefault(key, []).append(raw_name)
print(groups)
The three calls return the following results.
CRM record |
|
| Match key |
|
|
|
|
|
|
|
|
|
|
|
|
The script prints {'acme': ['Acme, Inc.', 'ACME Inc', 'Acme Incorporated']}. All three records share one match key, so you can merge them into one account.
Lowercase the normalized_name value before you compare two names. Normalize Company keeps the original casing of a mixed-case name, so AcMe and Acme differ without that step. The three calls above cost 1.5 credits in total, which is $0.03.
How much does Normalize Company cost?
Normalize Company costs 0.5 credits per call. At $0.02 a credit, the rate on the 1,000 and 5,000 credit packs, one call costs $0.01. Larger packs cost less per credit. RichAPI charges a credit only for a 2xx response. A 400, 403 or 429 response costs no credit.
Calls | Credits | Cost |
1 | 0.5 | $0.01 |
100 | 50 | $1.00 |
1,000 | 500 | $10.00 |
10,000 | 5,000 | $100.00 |
50,000 | 25,000 | $500.00 |
Which errors can Normalize Company return?
Status | Meaning | What to do |
| The request body failed validation. The | Correct the parameter that the message names, then send the request again. |
| The API key is missing, wrong or revoked. | Send a valid key in the |
| This API key has no access to this endpoint ( | Call |
| The request used a method other than | Send the request with the |
| The request rate is over the limit. | Wait for the seconds in the |
| The API failed. | Send the request again. If the failure repeats, contact support. |
Every error response holds an error field with a plain-text message.
Frequently asked questions
Does Normalize Company remove Pty from an Australian company name?
No. Pty is not in the suffix list of Normalize Company. Atlassian Pty Ltd returns Atlassian Pty, because the endpoint removes only Ltd.
Why does Normalize Company keep Industries in Acme Industries?
Industries is an identity suffix. When removal leaves a single word, Normalize Company keeps the identity suffix, because one word is rarely the real company name. Acme Global Industries returns Acme Global, because two words remain.
Why is case_normalized false for Northwind Data Ltd.?
Normalize Company rewrites the casing of an all-uppercase name or an all-lowercase name only. Northwind Data is mixed case, so the endpoint keeps that casing and returns case_normalized: false. NORTHWIND DATA LTD. returns Northwind Data with case_normalized: true.
Does Normalize Company collapse double spaces inside a name?
No. Normalize Company trims leading and trailing whitespace only. Acme Widgets Inc returns Acme Widgets. To collapse repeated spaces inside a string, send the string to the /remove_whitespace endpoint.
How many company names can one Normalize Company call cover?
One. Each call cleans one company_name value and costs 0.5 credits. To clean a list, send one call per name.
Does a failed Normalize Company call cost a credit?
No. RichAPI charges a credit only for a 2xx response. A 400 response for an empty or oversized company_name costs no credit.
Does Normalize Company verify that the company exists?
No. Normalize Company applies text rules to the string that you send. It reads no company database. To confirm a company and get firmographic data, send an Company Enrichment request.
