opencorporates

3.0.3 • Public • Published

opencorporates

The OpenCorporates API.

CircleCI

node 12 note

OpenCorporates currently has an issue: their server is sending both a Content-Length header and a Transfer-Encoding: chunked header, which is a violation of the HTTP spec.

node 12's HTTP client flags this error. We are currently awaiting a fix from OpenCorporates.

Features

This module includes all the normal features of the OpenCorporates REST API and adds the following:

  • camelCase results, so you can use the keys in your own JavaScript without having to convert thems
  • Results and metadata are returned seperately
  • Clean arrays, eg, OpenCorporates would normally return items = [{'item': {actual item object}}, {'item': {actual item object}} whereas this module will return items = [{actual item object}, {actual item object}]. So items.forEach(function(item){}) works properly.

If you're unsure of how anything works, look at the unit tests, which have examples of all the API calls.

Now requires node 8

This library now uses async/await from node 8. This means you can await results from opencorporates without callbacks.

Changelog

Version 3 changes

  • Now uses async/await from node 8.
  • Calls only return results - meta information is considered internal.
await openCorporates.companies.get('us_ca', 'C3268102')

Version 2.2 changes

  • Default OpenCorporates API version is now 4.0

Version 2 changes

If you're upgrading from version 1, the new module has the following changes:

  • The module now exports a single function which takes the apiKey as an argument.
  • Results, and all function parameters are now in camelCase.

Installation

Stable: npm install opencorporates

Head: npm install fvdm/nodejs-opencorporates

Usage

var openCorporates = require('opencorporates')('YOUR_API_TOKEN')

If you do not have an API key, you may omit it, but will have a lower rate limit:

var openCorporates = require('opencorporates')()

API results are converted to camelCase so you can use the keys directly in your app.

openCorporates.companies

openCorporates.companies.get(jurisdictionCode, companyID)

Get a single company. Example:

await openCorporates.companies.get('us_ca', 'C3268102')
    {
        "name": "GOOGLE INC.",
        "inactive": false,
        "source": {
            "publisher": "California Secretary of State",
            "url": "http://kepler.sos.ca.gov/",
            "retrievedAt": "2014-02-09T19:01:42+00:00"
        },
        "data": {
            "url": "https://opencorporates.com/companies/us_ca/C2474131/data",
            "mostRecent": [
                {
                    "datum": {
                        "id": 2685290,
                        "title": "Approved US Government Supplier",
                        "description": null,
                        "dataType": "GovernmentApprovedSupplier",
                        "opencorporatesUrl": "https://opencorporates.com/data/2685290"
                    }
                },
                {
                    "datum": {
                        "id": 4913217,
                        "title": "Company Address",
                        "description": "1600 AMPHITHEATRE PKWY, MOUNTAIN VIEW, CA, 940431351",
                        "dataType": "CompanyAddress",
                        "opencorporatesUrl": "https://opencorporates.com/data/4913217"
                    }
                }
            ],
            "totalCount": 2
        },
        "filings": [],
        "officers": [],
        "companyNumber": "C2474131",
        "jurisdictionCode": "us_ca",
        "incorporationDate": "2002-11-07",
        "dissolutionDate": null,
        "companyType": "Foreign Stock",
        "registryUrl": "https://businessfilings.sos.ca.gov/frmDetail.asp?CorpID=02474131",
        "branchStatus": "branch of an out-of-jurisdiction company",
        "currentStatus": "Active",
        "createdAt": "2011-09-21T22:27:02+00:00",
        "updatedAt": "2014-10-31T06:55:32+00:00",
        "retrievedAt": "2014-02-09T19:01:42+00:00",
        "opencorporatesUrl": "https://opencorporates.com/companies/us_ca/C2474131",
        "previousNames": [],
        "agentName": "CORPORATION SERVICE COMPANY WHICH WILL DO BUSINESS IN CALIFORNIA AS CSC - LAWYERS INCORPORATING SERVICE",
        "agentAddress": "2710 GATEWAY OAKS DR STE 150N, SACRAMENTO, CA 95833",
        "registeredAddressInFull": "1600 AMPHITHEATRE PARKWAY, MOUNTAIN VIEW, CA 94043",
        "registeredAddress": {
            "locality": null,
            "region": null,
            "country": "United States",
            "streetAddress": "1600 AMPHITHEATRE PARKWAY, MOUNTAIN VIEW, CA 94043",
            "postalCode": null
        },
        "corporateGroupings": [],
        "industryCodes": [],
        "financialSummary": null,
        "homeCompany": null,
        "controllingEntity": {
            "name": "GOOGLE INC.",
            "jurisdictionCode": "us_de",
            "companyNumber": null,
            "opencorporatesUrl": "https://opencorporates.com/placeholders/691721"
        }
    }

openCorporates.companies.search(searchTerm, [filters])

Search a company.

filters is optional, and can be:

  • jurisdictionCode e.g. us_ca, nl see the full list of jurisdiction codes. Default is [none/worldwide]
  • order e.g. score. Default is alphabetic
  • perPage e.g. number of results, max. 100. Default is 30 results per page
  • page e.g. results page. Default is 1
openCorporates.companies.search( 'github', function(err, res){
    console.log(JSON.stringify(res, null, 2))
})

This will return:

    [
 
        {
            "name": "GITHUB, INC.",
            "inactive": false,
            "source": {
                "publisher": "California Secretary of State",
                "url": "http://kepler.sos.ca.gov/",
                "retrievedAt": "2012-04-03T07:19:16+00:00"
            },
            "companyNumber": "C3268102",
            "jurisdictionCode": "us_ca",
            "incorporationDate": "2009-12-31",
            "dissolutionDate": null,
            "companyType": "Domestic Stock",
            "registryUrl": "https://businessfilings.sos.ca.gov/frmDetail.asp?CorpID=03268102",
            "branchStatus": null,
            "currentStatus": "Active",
            "createdAt": "2011-09-17T15:33:31+00:00",
            "updatedAt": "2013-10-27T06:27:24+00:00",
            "retrievedAt": "2012-04-03T07:19:16+00:00",
            "opencorporatesUrl": "https://opencorporates.com/companies/us_ca/C3268102",
            "previousNames": [],
            "registeredAddressInFull": "548 4TH STREET, SAN FRANCISCO, CA 94107"
        },
        ...many more companies omitted....
    ]
}

openCorporates.companies.filings(jurisdiction, id, [filters])

Get available filings for a company.

filters is optional, and can be:

  • perPage e.g. number of results, max. 100. Default is 30 results per page
  • page e.g. results page. Default is 1
openCorporates.companies.filings( 'C3268102', console.log )

filters is optional, and can be:

  • perPage e.g. number of results, max. 100. Default is 30 results per page
  • page e.g. results page. Default is 1

openCorporates.companies.data(jurisdiction, id, [filters])

Get more available data for a company.

filters is optional, and can be:

  • perPage e.g. number of results, max. 100. Default is 30 results per page
  • page e.g. results page. Default is 1
openCorporates.companies.filings( 'C3268102', console.log )

openCorporates.officers

openCorporates.officers.get( id)

Get an officer by ID.

openCorporates.officers.get( '21200360', console.log )

openCorporates.officers.search( query, [filters] )

Search officers.

  • jurisdictionCode e.g. us_ca, nl. Default is [none/worldwide]
  • perPage e.g. number of results, max. 100. Default is 30 results per page
  • page e.g. results page. Default is 1
openCorporates.officers.search( 'bart simpson' )

openCorporates.corporateGroupings

From OpenCorporates Corporate Grouping description:

"A CorporateGrouping is a user-curated collection of companies that belong to some human-understand concept of a corporation (which maps to the Wikipedia article about that corporation)."

openCorporates.corporateGroupings.get ( name )

Get extended data about a corporate grouping, by its name.

openCorporates.corporateGroupings.get( 'bp', console.log )

openCorporates.corporateGroupings.search ( query, [filters] )

openCorporates.corporateGroupings.search( 'bp', console.log )
  • perPage e.g. number of results, max. 100. Default is 30 results per page
  • page e.g. results page. Default is 1

Credits

This module was forked from Franklin van de Meent's original public domain OpenCorporates code.

The fork was created and is maintained by Mike MacCana

Package Sidebar

Install

npm i opencorporates

Weekly Downloads

19

Version

3.0.3

License

MIT

Unpacked Size

66.9 kB

Total Files

14

Last publish

Collaborators

  • franklin
  • mikemaccana