API documentation

If you are interested in parsing addresses or names, try our easy to use API.

Your first 2,500 API calls are free. See our pricing for more details.

All calls require an API key.

Sign up for an API key >

A few things to know

API Endpoints

Endpoint documentation What it does
/api/usaddress/ Parse an address in the United States into tagged components
/api/bulk/usaddress/ Bulk parse a list of addresses
/api/probablepeople/ Parse a western name into tagged components
/api/bulk/probablepeople/ Bulk parse a list of names
/api/usage/ Get API usage statistics for an API key


GET /api/usaddress/

Parse an address in the United States into tagged components

usaddress can parse any unstructured address in the United States into tagged address components. It uses the usaddress Python library. Read the library documentation.

Query parameters

All query parameters are required.

Parameter Description
address Unstructured input address to parse
api_key Customer API key (GUID). To get a key, contact DataMade parserator@datamade.us

Response

Returns a JSON object with:

Parameter Description
meta
Parameter Description
status ok or error
status_code
Status code Description
Successful request
Address is not parseable or input data is missing or format is invalid
An invalid api_key was used in the call
An expired api_key was used in the call
Unexpected service error. contact us if you encounter this parserator@datamade.us
message More details if an error occurred
parser Parser used for processing (usaddress)
input_address Submitted address
type

Identified address type.

  • Street Address
  • Intersection
  • PO Box
  • Ambiguous
result

JSON object of parsed address parts (value) with an assigned tag. Below is the full list of available tags:

Tag Description
AddressNumber address number
AddressNumberPrefix a modifier before an address number, e.g. ‘Mile’, ‘#’
AddressNumberSuffix a modifier after an address number, e.g ‘B’, ‘1/2’
BuildingName the name of a building, e.g. ‘Atlanta Financial Center’
CornerOf words indicating that an address is a corner, e.g. ‘Junction’, ‘corner of’
IntersectionSeparator a conjunction connecting parts of an intersection, e.g. ‘and’, ‘&’
LandmarkName the name of a landmark, e.g. ‘Wrigley Field’, ‘Union Station’
NotAddress a non-address component that doesn’t refer to a recipient
OccupancyIdentifier the identifier of an occupancy, often a number or letter
OccupancyType a type of occupancy within a building, e.g. ‘Suite’, ‘Apt’, ‘Floor’
PlaceName city
Recipient a non-address recipient, e.g. the name of a person/organization
StateName state
StreetName street name, excluding type & direction
StreetNamePostDirectional a direction after a street name, e.g. ‘North’, ‘S’
StreetNamePostModifier a modifier after a street name, e.g. ‘Ext’
StreetNamePostType a street type that comes after a street name, e.g. ‘Avenue’, ‘Rd’
StreetNamePreDirectional a direction before a street name, e.g. ‘North’, ‘S’
StreetNamePreModifier a modifier before a street name that is not a direction, e.g. ‘Old’
StreetNamePreType a street type that comes before a street name, e.g. ‘Route’, ‘Ave’
SubaddressIdentifier the name/identifier of a subaddress component
SubaddressType a level of detail in an address that is not an occupancy within a building, e.g. ‘Building’, ‘Tower’
USPSBoxGroupID the identifier of a USPS box group, usually a number
USPSBoxGroupType a name for a group of USPS boxes, e.g. ‘RR’
USPSBoxID the identifier of a USPS box, usually a number
USPSBoxType a USPS box, e.g. ‘P.O. Box’
ZipCode zip code

Example

Let’s parse 123 main st, Chicago IL:

https://parserator.datamade.us/api/usaddress/?address=123%20main%20st,%20Chicago%20IL&api_key=<YOUR API KEY>

Response

{
   "meta":{
      "status":"ok",
      "status_code":200,
      "message":"",
      "parser":"usaddress",
      "input_address":"123 main st, Chicago IL"
   },
   "type":"Street Address",
   "result":[
      {
         "tag":"AddressNumber",
         "value":"123"
      },
      {
         "tag":"StreetName",
         "value":"main"
      },
      {
         "tag":"StreetNamePostType",
         "value":"st"
      },
      {
         "tag":"PlaceName",
         "value":"Chicago"
      },
      {
         "tag":"StateName",
         "value":"IL"
      }
   ]
}
POST api/bulk/usaddress/

Bulk parse a list of addresses

usaddress can handle bulk parsing. It's limited to batches of 500 addresses at a time.

Request body

All fields are required in your request body.

Parameter Description
object_list A list of addresses
api_key Customer API key (GUID). To get a key, contact DataMade parserator@datamade.us

Response

Returns a JSON object with:

Parameter Description
meta
Parameter Description
input_object_list the list of submitted addresses
message More details if an error occurred
number_of_failed_parses The number of failed parses
number_of_successful_parses The number of successful parses
parser Parser used for processing (usaddress)
status ok or error
status_code
Status code Description
Successful request
Address is not parseable or input data is missing or format is invalid
An invalid api_key was used in the call
An expired api_key was used in the call
Unexpected service error. contact us if you encounter this parserator@datamade.us
result

A JSON array of parsed addresses. Here is the full list of available tags.

Parameter Description
input_address Submitted address
result JSON object of parsed address parts (value) with an assigned tag.
type

Identified address type.

  • Street Address
  • Intersection
  • PO Box
  • Ambiguous

Example

Let’s parse with python:

            import requests
            addresses = ['123 N West Avenue #1 Chicago, IL 60601', 
                        '123 N West Avenue #2 Chicago, IL 60601', 
                        '123 N West Avenue #3 Chicago, IL 60601']
            
            url = 'https://parserator.datamade.us/api/bulk/usaddress/'
            body = {
                  'api_key': '<YOUR API KEY>',
                  'object_list': addresses
            }
            response = requests.post(url, body=query)
          

Response:

            {
                "meta": {
                    "status": "ok",
                    "message": "",
                    "parser": "usaddress",
                    "input_object_list": [
                        "123 N West Avenue #1 Chicago, IL 60601",
                        "123 N West Avenue #2 Chicago, IL 60601",
                        "123 N West Avenue #3 Chicago, IL 60601"
                    ],
                    "number_of_successful_parses": 3,
                    "number_of_failed_parses": 0,
                    "status_code": 200
                },
                "result": [
                    {
                        "result": [
                            {
                                "value": "123",
                                "tag": "AddressNumber"
                            },
                            {
                                "value": "N",
                                "tag": "StreetNamePreDirectional"
                            },
                            {
                                "value": "West",
                                "tag": "StreetName"
                            },
                            {
                                "value": "Avenue",
                                "tag": "StreetNamePostType"
                            },
                            {
                                "value": "# 1",
                                "tag": "OccupancyIdentifier"
                            },
                            {
                                "value": "Chicago",
                                "tag": "PlaceName"
                            },
                            {
                                "value": "IL",
                                "tag": "StateName"
                            },
                            {
                                "value": "60601",
                                "tag": "ZipCode"
                            }
                        ],
                        "type": "Street Address",
                        "input_address": "123 N West Avenue #1 Chicago, IL 60601"
                    },
                    {
                        "result": [
                            {
                                "value": "123",
                                "tag": "AddressNumber"
                            },
                            {
                                "value": "N",
                                "tag": "StreetNamePreDirectional"
                            },
                            {
                                "value": "West",
                                "tag": "StreetName"
                            },
                            {
                                "value": "Avenue",
                                "tag": "StreetNamePostType"
                            },
                            {
                                "value": "# 2",
                                "tag": "OccupancyIdentifier"
                            },
                            {
                                "value": "Chicago",
                                "tag": "PlaceName"
                            },
                            {
                                "value": "IL",
                                "tag": "StateName"
                            },
                            {
                                "value": "60601",
                                "tag": "ZipCode"
                            }
                        ],
                        "type": "Street Address",
                        "input_address": "123 N West Avenue #2 Chicago, IL 60601"
                    },
                    {
                        "result": [
                            {
                                "value": "123",
                                "tag": "AddressNumber"
                            },
                            {
                                "value": "N",
                                "tag": "StreetNamePreDirectional"
                            },
                            {
                                "value": "West",
                                "tag": "StreetName"
                            },
                            {
                                "value": "Avenue",
                                "tag": "StreetNamePostType"
                            },
                            {
                                "value": "# 3",
                                "tag": "OccupancyIdentifier"
                            },
                            {
                                "value": "Chicago",
                                "tag": "PlaceName"
                            },
                            {
                                "value": "IL",
                                "tag": "StateName"
                            },
                            {
                                "value": "60601",
                                "tag": "ZipCode"
                            }
                        ],
                        "type": "Street Address",
                        "input_address": "123 N West Avenue #3 Chicago, IL 60601"
                    }
                ]
            }
GET /api/probablepeople/

Parse a western name into tagged components

probablepeople can parse any unstructured western name into tagged name components. It uses the probablepeople python library. Read the library documentation.

This parser can also identify individuals, couples and company names, since they're often mixed with person names in real world datasets.

Query parameters

All query parameters marked with a red asterisk (*) are required.

Parameter Description
name* Unstructured input name to parse
type The type of entity to parse, one of Person or Corporation
api_key* Customer API key (GUID). To get a key, contact DataMade parserator@datamade.us

Response

Returns a JSON object with:

Parameter Description
meta
Parameter Description
status ok or error
status_code
Status code Description
Successful request
Name is not parseable or input data is missing or format is invalid
An invalid api_key was used in the call
An expired api_key was used in the call
Unexpected service error. contact us if you encounter this parserator@datamade.us
message More details if an error occurred
parser Parser used for processing (probablepeople)
input_name Submitted name
type

Identified name type.

  • Person - an individual
  • Household - a couple
  • Corporation - a legal entity, such as a company, organization or government
result

JSON object of parsed name parts (value) with an assigned tag. Below is the full list of available tags:

  • PrefixMarital
  • PrefixOther
  • GivenName
  • FirstInitial
  • MiddleName
  • MiddleInitial
  • Surname
  • LastInitial
  • SuffixGenerational
  • SuffixOther
  • Nickname
  • And
  • CorporationName
  • CorporationNameOrganization
  • CorporationLegalType
  • CorporationNamePossessiveOf
  • ShortForm
  • ProxyFor
  • AKA

Example

Let’s parse Mr George 'Gob' Bluth II:

https://parserator.datamade.us/api/probablepeople/?name=Mr George 'Gob' Bluth II&api_key=<YOUR API KEY>

Response:

{
   "meta":{
      "status":"ok",
      "status_code":200,
      "message":"",
      "parser":"probablepeople",
      "input_name":"Mr George 'Gob' Bluth II"
   },
   "type":"Person",
   "result" : [ { "tag" : "PrefixMarital",
        "value" : "Mr"
      },
      { "tag" : "GivenName",
        "value" : "George"
      },
      { "tag" : "Nickname",
        "value" : "'Gob'"
      },
      { "tag" : "Surname",
        "value" : "Bluth"
      },
      { "tag" : "SuffixGenerational",
        "value" : "II"
      }
    ]
}

If we wanted to specify that the string referred to a person, we could add the type=Person parameter:

https://parserator.datamade.us/api/probablepeople/?name=Mr George 'Gob' Bluth II&type=Person&api_key=<YOUR API KEY>

This would return the same response as above.

POST api/bulk/probablepeople/

Bulk parse a list of names

probablepeople can handle bulk parsing. It's limited to batches of 500 names at a time.

Request body

All fields are required in your request body.

Parameter Description
object_list A list of names
api_key Customer API key (GUID). To get a key, contact DataMade parserator@datamade.us

Response

Returns a JSON object with:

Parameter Description
meta
Parameter Description
input_object_list A list of submitted names
message More details if an error occurred
number_of_failed_parses The number of failed parses
number_of_successful_parses The number of successful parses
parser Parser used for processing (probablepeople)
status ok or error
status_code
Status code Description
Successful request
Name is not parseable or input data is missing or format is invalid
An invalid api_key was used in the call
An expired api_key was used in the call
Unexpected service error. contact us if you encounter this parserator@datamade.us
result

A JSON array of parsed names. Here is the full list of available tags.

Parameter Description
input_name Submitted name
result JSON object of parsed name parts (value) with an assigned tag. See the full list of tags.
type

Identified name type.

  • Person - an individual
  • Household - a couple
  • Corporation - a legal entity, such as a company, organization or government

Example

Let’s parse with python:

            import requests

            domain = 'https://parserator.datamade.us/api/bulk/probablepeople/''
            people = [
                "Tobias Funke",
                "Mr George 'Gob' Bluth II",
                "Bluth's Original Frozen Banana"
            ]
            
            body = {
                'api_key': '<YOUR API KEY>',
                'object_list': people
            }

            response = requests.post(domain, data=body)
          

Response:

            {'meta': {'input_object_list': ['Tobias Funke',
                                "Mr George 'Gob' Bluth II",
                                "Bluth's Original Frozen Banana"],
                      'message': '',
                      'number_of_failed_parses': 0,
                      'number_of_successful_parses': 3,
                      'parser': 'probablepeople',
                      'status': 'ok',
                      'status_code': 200},
             'result': [{'input_name': 'Tobias Funke',

                         'result': [{'tag': 'GivenName', 'value': 'Tobias'},
                                    {'tag': 'Surname', 'value': 'Funke'}],
                         'type': 'Person'},
                        {'input_name': "Mr George 'Gob' Bluth II",
                         'result': [{'tag': 'PrefixMarital', 'value': 'Mr'},
                                    {'tag': 'GivenName', 'value': 'George'},
                                    {'tag': 'Nickname', 'value': "'Gob'"},
                                    {'tag': 'Surname', 'value': 'Bluth'},
                                    {'tag': 'SuffixGenerational', 'value': 'II'}],
                         'type': 'Person'},
                        {'input_name': "Bluth's Original Frozen Banana",
                         'result': [{'tag': 'Corporation',
                                     'value': "Bluth's Original Frozen Banana"}],
                         'type': 'Corporation'}]}
          
GET /api/usage/

Get API usage statistics for an API key

Query parameters

All query parameters are required.

Parameter Default value Description
api_key Required. Customer API key (GUID). To get a key, contact DataMade parserator@datamade.us
start_date 30 days ago from the current date and time Optional. Start date for querying usage. Expects a date either in UTC ISO 8601 format (example: 2015-04-12T18:51:19) or YYYY-MM-DD (example: 2015-04-12).
end_date The current date and time Required. End date for querying usage. Expects a date either in UTC ISO 8601 format (example: 2015-04-12T18:51:19) or YYYY-MM-DD (example: 2015-04-12).

Response

Returns a JSON object with:

Parameter Description
meta
Parameter Description
status ok or error
status_code
Status code Description
Successful request
Input data is missing or format is invalid
An invalid or expired api_key was used in the call
Unexpected service error. contact us if you encounter this parserator@datamade.us
message More details if an error occurred
start_date Submitted end date
end_date Submitted end date
api_calls_made

Numer of API calls made between the two dates.

Example

Let’s get usage statistics:

https://parserator.datamade.us/api/usage/?api_key=<YOUR API KEY>&start_date=2015-04-10&end_date=2015-04-10

Response

{
   "meta":{
      "status":"ok",
      "status_code":200,
      "message":"",
      "start_date":"2015-04-10T00:00:00",
      "end_date":"2015-04-10T00:00:00"
   },
   "api_calls_made":0
}

Report a Bad Parse

If a parser failed to tag something correctly, please report it on the usaddress or parserator GitHub Issues pages. We will use your information to improve our models.