ジービズインフォとは
経済産業省が出した法人番号や法人名から企業等の活動情報の検索エンジンです。政府保有の法人情報を法人番号に紐づけてデータ整理を行い、2次利用可能なオープンデータとして情報提供するサイトです。
具体的にどんな情報が取得できるの?
法人基本情報の他に法人活動情報が取得できます。
法人活動情報の中には以下のような情報も取得できます。
- 財務情報
- 特許情報
- 届出・認定情報
- 補助金交付情報
- 調達情報などなど
APIの種類
現在提供されてるAPIは2種類あります:SPARQL API版とREST API版。旧法人インフォでは最初にできたAPIはSPARQL APIで、その後継いだのはREST APIでした。そのためか、APIのレスポンス速度が違います。
今回はRESTAPI中心に書くと思います。
そもそもSPARQLとは
Wikipedia より:
SPARQLはRDF問合せ言語の1つである。RDF問合せ言語は、Resource Description Framework (RDF) で記述されたXMLやTurtleなどのRDFデータのリソースを取り扱うためのコンピュータ言語である。
SPARQL は、クエリの基本的なパターンである論理積や論理和をはじめ、文字列操作やフィルターなどのその他のパターンを指定可能であり[2]、PythonやRubyなどのプログラミング言語でSPARQLを利用できるライブラリが存在する
DBpedia(Wikipedia抽出するツール)もSPARQLを使用されてます。
SPARQLでのクエリの例:
/* 「東京都」と含まれてる情報のWikiを検索する */
SELECT DISTINCT *
WHERE {
<http://ja.dbpedia.org/resource/東京都> ?p ?o .
}
ジービズインフォのSPARQL API版
ジービズインフォのSPARQL API版の仕様はこのリンクで確認することができます。
例:法人番号を基づい法人基本情報を取得する際のクエリ
/* 法人基本情報 */
PREFIX hj: <http://hojin-info.go.jp/ns/domain/biz/1#>
PREFIX ic: <http://imi.go.jp/ns/core/rdf#>
SELECT DISTINCT ?corporateID ?corporateName ?corporateKana ?location ?moddate ?systemName ?classSInfo
FROM <http://hojin-info.go.jp/graph/hojin> {
?s hj:法人基本情報 ?key.
?key ic:ID/ic:識別値 '4010401098455'.
OPTIONAL{?key ic:ID/ic:識別値 ?corporateID .}
OPTIONAL{?key ic:名称 _:keyCorporateName .
_:keyCorporateName ic:種別 '商号又は名称'.
_:keyCorporateName ic:表記 ?corporateName .}
OPTIONAL{?key ic:名称 _:keyCorporateNameKana .
_:keyCorporateNameKana ic:種別 '商号又は名称'.
_:keyCorporateNameKana ic:カナ表記 ?corporateKana .}
OPTIONAL{?key ic:住所 _:keyAddress .
_:keyAddress ic:種別 '住所' .
_:keyAddress ic:表記 ?location .}
OPTIONAL{?key hj:更新日時/ic:標準型日時 ?moddate .}
OPTIONAL{?key hj:システム名/ic:表記 ?systemName .}
OPTIONAL{?key hj:区分 _:keyStatus.
_:keyStatus ic:種別 '処理区分'.
_:keyStatus ic:表記 ?classSInfo .}
} GROUP BY ?corporateID ?corporateName ?corporateKana ?location ?moddate ?systemName ?classSInfo
SPARQL版を試してみて感じたこと
法人番号で情報検索のクエリは秒単位でレスポンスが返されましたが、法人名での検索が凄く時間かかりました。秒単位では済ませない、場合によって分単位ぐらいかかった時もありました。
REST API版
ジービズインフォのREST APIを利用するにはWeb API利用申請を申請しないといけません。この申請ではAPIトークンを発行します。このAPIトークンは後々REST APIを利用する際にはこのAPIトークンをヘッダーに含めてリクエストを投げます。
REST APIの仕様
嬉しいことにSwaggerが既に用意されてます。
https://info.gbiz.go.jp/hojin/swagger-ui.html
全てのリクエストは【GET】で行いますので、凄くシンプルなAPIです。
レスポンスのステータスコード
200
は通常のスタータスコードです。
Swaggerには、401
が認証エラーと書いてありますが、実際に投げてみると500
が認証エラーになったます。
その他にデータが見つからない場合404
が返されました。
法人情報を検索する
以下のフォーマットでリクエストを投げます。
GET
https://info.gbiz.go.jp/hojin/v1/hojin?name=<法人名>
Header:
X-hojinInfo-api-token: <API申請の時に発行されたトークン>
例:Increments
を含める法人名で法人情報を検索する場合
レスポンス
レスポンスはJSON形式で、message
のキーにはステータスコードが含まれています。hojin-infos
のキーは様々な法人情報が含まれてます。
{
"id": null,
"errors": null,
"message": "200 - OK.",
"hojin-infos": [
{
"corporate_number": "1000020298506",
"postal_code": "6340078",
"location": "奈良県橿原市八木町1丁目7-36",
"name": "奈良県住宅新築資金等貸付金回収管理組合",
"name_en": "Narakenjuutakushinchikushikintoukashitsukekinkaishuukanrikumiai",
"status": "-",
"number_of_activity": "0",
"update_date": "2020-08-26T00:00:00+09:00"![Screen Shot 2020-12-07 at 2.59.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2262/12cd1002-01ef-bef9-ecad-23b6f335c4a5.png)
},
...
]
}
ページネーション
結果が複数返される場合、page
とlimit
のパラメーターでページネーションを使うことができます。
https://info.gbiz.go.jp/hojin/v1/hojin?name=<法人名>&page=<ページ数>&limit=<一つのリクエストで返される法人情報>
例:Increments
を含める法人名で法人情報を検索して、一つのリクエストで3つを返され、最初のページを取得する場合
その他のパラメーター
その他にもいくつか面白いパラーメーターが存在してます。
-
corporate_type
法人種別:以下のコードを設定。 101 国の機関 201 地方公共団体 301 株式会社 302 有限会社 303 合名会社 304 合資会社 305 合同会社 399 その他の設立登記法人 401 外国会社等 499 その他 複数の場合はカンマ区切りでコードを設定。 -
city
所在地(市区町村):総務省地方公共団体コードの市区町村コードを設定。(prefecture設定必須) -
average_age
従業員の平均年齢:以下のコードを設定。 A:~30歳 B:31歳~45歳 C:46歳~60歳 D:61歳~
などなど、詳しくはSwaggerに参考してください。
法人番号での検索
法人番号がわかれば、基本情報の他に色々な情報を取得することできます。
例えば、財務情報を取得したい場合、以下のエンドポイントのフォーマットで取得できます。
GET
https://info.gbiz.go.jp/hojin/v1/hojin/<法人番号>/finance
なんと、法人番号で企業の特許情報も取得できます。
GET
https://info.gbiz.go.jp/hojin/v1/hojin/<法人番号>/patent
などなど、詳しくはSwaggerに参考してください。
最後に
ジービズインフォAPIでは色々な使えそうな情報や面白い情報も提供されてますので、ぜひ試してみてください!