OpenBizGraph API
OpenBizGraph に登録された企業情報を、検索APIと企業詳細APIで取得できます。企業名・所在地・代表者名・企業概要・事業内容は、指定した言語(日本語・英語など)で返します。全エンドポイントは GET、レスポンスは application/json; charset=UTF-8 です。レスポンスは保存せず、毎回最新情報を取得してください(Cache-Control: no-store)。
ご利用にあたって
https://openbizgraph.comkeyword に日本語を渡す場合はURLエンコード(%エンコーディング)が必要。表示言語の指定
企業名・本社所在地・代表者名・企業概要・事業内容は、要求言語で返します。要求言語は次の優先順位で決まります。
| 順位 | 指定方法 | 説明 |
|---|---|---|
| 1 | lang クエリパラメータ | BCP 47形式の言語タグ(例: ja、en、zh-Hans)。形式が不正な場合は 400。 |
| 2 | Accept-Language ヘッダー | 品質値 q の高い順に採用。q=0、*、不正な値は無視。 |
| 3 | 既定値 | ja |
翻訳が無い場合
要求言語の値が無い項目は、同じ言語の別表記(例: en-US → en)、企業の原文の言語の順で代わりの値を返します。項目ごとに選ばれるため、例えば会社名は英語、所在地は日本語の原文、ということがあります。機械翻訳は現在、日本語と英語を対象にしています。
言語に関するレスポンスフィールド
| フィールド | 型 | 説明 |
|---|---|---|
requestedLanguage | string | 上記の順位で決まった要求言語(正規化済み) |
resolvedLanguage | string | 会社名に実際に使われた言語。原文の言語が不明な場合は und。 |
availableLanguages | array | その企業に保存されている言語タグの一覧 |
検索は全言語の企業名・所在地・事業内容を対象にするため、検索語の言語と表示言語は別々に選べます(例: 日本語で検索して英語で表示)。レスポンスには Vary: Accept-Language を付けます。
# lang パラメータで英語を指定
GET /api/public/ver0.2/companies/1001?lang=en
# Accept-Language ヘッダーで指定
GET /api/public/ver0.2/companies/1001
Accept-Language: en-US,en;q=0.9,ja;q=0.5
企業検索API
キーワードで企業一覧を取得します。企業名・所在地・代表者名・銘柄コード・ドメイン・事業内容などを対象に検索します。
Query Parameters
| 名前 | 必須 | 説明 |
|---|---|---|
keyword | 必須 | 検索語句。空白区切りでAND検索。 |
limit | 任意 | 返却件数。初期値 20、指定範囲は 1〜100。範囲外は上下限に補正し、数値以外は初期値を使用。 |
lang | 任意 | 表示言語(02 表示言語の指定)。 |
エラー
400 keyword is required / 400 lang must be a valid BCP 47 language tag / 該当なしは 200 で items: [] を返す
レスポンスフィールド
| フィールド | 型 | 説明 |
|---|---|---|
keyword | string | 検索に使用したキーワード |
total | number | 全マッチ件数(limit による絞り込み前) |
limit | number | 実際に適用された返却件数の上限 |
requestedLanguage | string | 要求言語 |
items | array | 企業リスト |
items[].companyId | number | 企業ID。企業詳細APIのパスパラメータとして使用。 |
items[].companyName | string | 企業名(要求言語) |
items[].stockCode | string | 証券コード。上場企業のみ。非上場の場合は null。 |
items[].headOfficeLocation | string | 本社所在地(要求言語) |
items[].domains | array | 登録ドメイン名の文字列配列 |
items[].resolvedLanguage | string | 会社名に実際に使われた言語 |
items[].availableLanguages | array | その企業に保存されている言語タグの一覧 |
{
"keyword": "サンプル",
"total": 1,
"limit": 20,
"requestedLanguage": "en",
"items": [
{
"companyId": 1001,
"companyName": "Sample Shoji Co., Ltd.",
"stockCode": "9999",
"headOfficeLocation": "1-1-1 Marunouchi, Chiyoda-ku, Tokyo",
"domains": ["sample-shoji.co.jp"],
"resolvedLanguage": "en",
"availableLanguages": ["en", "ja"]
}
]
}
企業詳細API
企業IDを指定して、会社本体と付随情報をまとめて取得します。
Path Parameters
| 名前 | 型 | 説明 |
|---|---|---|
companyId | number | 企業ID。企業検索APIのレスポンス items[].companyId で取得。 |
Query Parameters
| 名前 | 必須 | 説明 |
|---|---|---|
lang | 任意 | 表示言語(02 表示言語の指定)。 |
エラー
400 companyId is required / 400 companyId must be a number / 400 lang must be a valid BCP 47 language tag / 404 company not found
レスポンスフィールド — 企業基本情報
データが取得できていない項目は null を返します。
| フィールド | 型 | 説明 |
|---|---|---|
companyId | number | 企業ID |
requestedLanguage | string | 要求言語 |
resolvedLanguage | string | 会社名に実際に使われた言語 |
availableLanguages | array | その企業に保存されている言語タグの一覧 |
companyName | string | 企業名(要求言語) |
headOfficeLocation | string | 本社所在地(要求言語) |
presidentName | string | 代表者名(要求言語) |
companySummary | string | 企業概要(要求言語)。未登録の場合は null。 |
stockCode | string | 証券コード。上場企業のみ。非上場の場合は null。 |
currency | string | 財務情報の通貨単位 |
capital | number | 資本金(currencyで示す通貨単位) |
sales | number | 売上高(currencyで示す通貨単位) |
employees | number | 単体従業員数 |
employeesConsolidated | number | 連結従業員数 |
humanCheck | boolean | 人手によるデータ確認済みかどうか |
レスポンスフィールド — domains[]
domains[] | string | 登録ドメイン名 |
レスポンスフィールド — businessContents[]
businessContents[] | string | 事業内容(要求言語。明細ごとに代わりの言語を選ぶ) |
レスポンスフィールド — relations[]
ra* フィールドは、照会企業から見た関係性の関連度スコアです(0〜100、値が大きいほど関連が強い)。
| フィールド | 型 | 説明 |
|---|---|---|
detailNumber | number | 連番 |
relationCompanyId | number | 関連企業の companyId。未登録の場合は null。 |
relationCompanyName | string | 関連企業名 |
linkUrl | string | 関連情報の根拠となったページURL。不明の場合は null。 |
url | string | 関連企業自身の公式サイトURL。不明の場合は null。 |
lastCheckDate | string | データ最終確認日(YYYY-MM-DD) |
remarks | string | 備考。なければ null。 |
raGroup | number | グループ会社にあたる関連度(0〜100) |
raParent | number | 親会社にあたる関連度(0〜100) |
raChild | number | 子会社にあたる関連度(0〜100) |
raCustomer | number | 顧客・取引先にあたる関連度(0〜100) |
raSupplier | number | 仕入先にあたる関連度(0〜100) |
raPartnership | number | 業務提携にあたる関連度(0〜100) |
raFinance | number | 融資・財務関係にあたる関連度(0〜100) |
raInvest | number | 投資関係にあたる関連度(0〜100) |
レスポンスフィールド — dataSources[]
| フィールド | 型 | 説明 |
|---|---|---|
detailNumber | number | 連番 |
url | string | データソースのURL |
scoreAbout | number | 企業基本情報の充実度スコア(0〜100) |
scoreBusiness | number | 事業内容情報の充実度スコア(0〜100) |
scoreGroup | number | グループ会社情報の充実度スコア(0〜100) |
scoreCustomer | number | 顧客・取引先情報の充実度スコア(0〜100) |
{
"companyId": 1001,
"requestedLanguage": "en",
"resolvedLanguage": "en",
"availableLanguages": ["en", "ja"],
"companyName": "Sample Shoji Co., Ltd.",
"headOfficeLocation": "1-1-1 Marunouchi, Chiyoda-ku, Tokyo",
"presidentName": "Taro Yamada",
"companySummary": null,
"stockCode": "9999",
"currency": "JPY",
"capital": 100000000,
"sales": 5000000000,
"employees": 300,
"employeesConsolidated": 1200,
"humanCheck": true,
"domains": ["sample-shoji.co.jp"],
"businessContents": ["Wholesale and retail of goods"],
"relations": [
{
"detailNumber": 1,
"relationCompanyId": 1002,
"relationCompanyName": "サンプル物流株式会社",
"linkUrl": "https://www.sample-shoji.co.jp/group/",
"url": "https://www.sample-logistics.co.jp/",
"lastCheckDate": "2026-01-15",
"remarks": "グループ会社一覧ページより",
"raGroup": 70,
"raParent": 0,
"raChild": 0,
"raCustomer": 0,
"raSupplier": 0,
"raPartnership": 0,
"raFinance": 0,
"raInvest": 0
}
],
"dataSources": [
{
"detailNumber": 1,
"url": "https://www.sample-shoji.co.jp/company/",
"scoreAbout": 90,
"scoreBusiness": 75,
"scoreGroup": 60,
"scoreCustomer": 20
}
]
}
エラーレスポンス
エラー時は HTTP ステータスコードとともに、以下の形式の JSON を返します。
ステータスコード一覧
| ステータス | 発生条件 | message |
|---|---|---|
| 400 | keywordパラメータが未指定 | keyword is required |
| 400 | companyIdが未指定 | companyId is required |
| 400 | companyIdが数値でない | companyId must be a number |
| 400 | langがBCP 47形式でない | lang must be a valid BCP 47 language tag |
| 404 | 指定したcompanyIdの企業が存在しない | company not found |
{
"status": 400,
"message": "keyword is required"
}
サンプルコード
各言語から公開APIを呼び出す例です。
# 企業検索(日本語キーワードはURLエンコードが必要) curl "https://openbizgraph.com/api/public/ver0.2/companies?keyword=%E3%83%88%E3%83%A8%E3%82%BF&limit=5" # 企業詳細(英語で取得) curl "https://openbizgraph.com/api/public/ver0.2/companies/4806?lang=en"
import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
public class OpenBizGraphExample {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newHttpClient();
// 企業検索
String keyword = URLEncoder.encode("サンプル", StandardCharsets.UTF_8);
HttpRequest searchReq = HttpRequest.newBuilder()
.uri(URI.create(
"https://openbizgraph.com/api/public/ver0.2/companies"
+ "?keyword=" + keyword + "&limit=20&lang=en"))
.GET()
.build();
HttpResponse<String> searchRes =
client.send(searchReq, HttpResponse.BodyHandlers.ofString());
System.out.println(searchRes.body());
// 企業詳細(Accept-Language ヘッダーで言語を指定)
HttpRequest detailReq = HttpRequest.newBuilder()
.uri(URI.create(
"https://openbizgraph.com/api/public/ver0.2/companies/1001"))
.header("Accept-Language", "en")
.GET()
.build();
HttpResponse<String> detailRes =
client.send(detailReq, HttpResponse.BodyHandlers.ofString());
System.out.println(detailRes.body());
}
}
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main()
{
using var http = new HttpClient();
// 企業検索
var keyword = Uri.EscapeDataString("サンプル");
var searchUrl = $"https://openbizgraph.com/api/public/ver0.2/companies"
+ $"?keyword={keyword}&limit=20&lang=en";
var searchJson = await http.GetStringAsync(searchUrl);
Console.WriteLine(searchJson);
// 企業詳細
var detailUrl = "https://openbizgraph.com/api/public/ver0.2/companies/1001?lang=en";
var detailJson = await http.GetStringAsync(detailUrl);
Console.WriteLine(detailJson);
}
}