欧企查 API 文档

欧企查 API 文档

欧洲企业数据查询接口 · 9 个独立接口 · 覆盖 33 个欧洲国家/地区

v1.0 · 2026

快速开始

在线调试

填入 API Key,选择接口和参数,点击「发送」即可在线查看结果。

所有接口都通过同一个入口访问:

GET https://欧企查.cn/api.php

通过 action 参数区分不同接口,通过 post_type 指定国家数据源。

最小请求示例

curl "https://欧企查.cn/api.php?action=list&post_type=de_data&api_key=YOUR_API_KEY"
提示:中文域名 欧企查.cn 在程序中建议使用 Punycode 形式 xn--hoqs02dpjc.cn,避免部分 HTTP 客户端解析异常。

认证方式

所有请求必须携带 API Key,两种方式任选其一(推荐方式一):

方式写法
方式一:URL 参数 ?api_key=YOUR_API_KEY
方式二:请求头 X-API-Key: YOUR_API_KEY
注意:服务器优先读取 URL 参数中的 api_key,其次才是 Header。 若你的请求返回「缺少 API Key」,请改用 URL 参数方式。

密钥权限说明

每个 API 密钥的权限由以下几项决定。若需调整,请联系管理员。

项目说明示例
可访问国家 该密钥能查询哪些国家的数据 英国、挪威、德国、法国
可调用接口 密钥能使用哪些查询功能 公司列表、工商基础信息、LEI全球法人识别码、管理人员/受益人、欧盟商标信息、财务报告、企业登记历史、分支机构、联系方式
有效期 密钥的生效与失效时间 2026-01-01 至 2026-12-31
每日额度 每天最多调用次数(自然日 0 点重置) 200 次/天
每分钟速率 每分钟最多调用次数 120 次/分钟
Status 密钥是否启用 已启用 / 已停用
查看当前用量:每次响应头会返回剩余额度: X-RateLimit-Remaining-Day: 18342

若返回 403 无权访问该数据源 或 403 无权调用该接口,说明密钥未开通对应权限,请联系管理员开通。

支持的国家

共 33 个数据源,覆盖欧盟 27 国 + 欧洲其他国家

欧盟 27 国 + 英国

enterprise_data United Kingdom
at_data 奥地利
be_data Belgium
bg_data 保加利亚
hr_data 克罗地亚
cy_data 塞浦路斯
cz_data 捷克
dk_data 丹麦
ee_data 爱沙尼亚
fi_data 芬兰
fr_data France
de_data 德国
gr_data 希腊
hu_data 匈牙利
ie_data 爱尔兰
it_data 意大利
lv_data 拉脱维亚
lt_data 立陶宛
lu_data 卢森堡
mt_data 马耳他
nl_data Netherlands
pl_data 波兰
pt_data 葡萄牙
ro_data 罗马尼亚
sk_data 斯洛伐克
si_data 斯洛文尼亚
es_data 西班牙
se_data Sweden

欧洲其他国家

no_data Norway
is_data 冰岛
li_data 列支敦士登
ch_data 瑞士

接口列表(9 个)

所有接口通用参数:

参数类型必填说明
api_keystring是你的 API 密钥
actionstring是接口名
post_typestring是国家数据源

通用返回结构

所有接口返回 JSON,大部分接口包含以下公共字段:

  • company_name:公司名
  • registration_info:注册号
  • 具体数据字段:见各接口说明

错误时返回:

{
  "error": "错误信息",
  "code": 403
}

1. 公司列表 action=list

按国家搜索公司,返回公司名 + 注册号。用于后续获取注册号。

参数类型必填说明
searchstring否公司名/注册号模糊搜索
limitint否每页条数,默认 50
last_idint否游标分页,用上次返回的 next_last_id
statusstring否按状态筛选
curl "https://xn--hoqs02dpjc.cn/api.php?action=list&post_type=pl_data&search=Orlen&limit=10&api_key=YOUR_KEY"

返回示例:

{
  "post_type": "pl_data",
  "page": 1,
  "limit": 10,
  "next_last_id": 60953722,
  "total": 10,
  "list": [
    { "registration_info": "0000028860", "company_name": "Orlen S.A." }
  ]
}

返回字段:

字段类型说明
post_typestring数据源
pageint当前页码
limitint每页条数
next_last_idint下一页游标,传回 last_id
totalint当前页条数(非总数)
list[].registration_infostring注册号
list[].company_namestring公司名
分页说明:用返回的 next_last_id 作为下次请求的 last_id 参数,而不是 page+1。 返回的 total 是当前页条数,不是总数。

2. 工商基础信息 action=basic

返回税号、EUID、股票代码、地址、公司类型、状态、成立/解散日期、主营业务、行业分类、曾用名等。

参数类型必填说明
registration_infostring是注册号
curl "https://xn--hoqs02dpjc.cn/api.php?action=basic&post_type=pl_data&registration_info=0000028860&api_key=YOUR_KEY"

返回示例:

{
  "company_name": "Orlen S.A.",
  "registration_info": "0000028860",
  "basic_data": {
    "tax_id": "7740001454",
    "EUID": "PLKRS.0000028860",
    "stock_code": "PKN.WA PSKOF",
    "region": "PŁOCK",
    "country": "POLAND",
    "address": "CHEMIKÓW 7, 09-411 PŁOCK...",
    "company_type": "SPÓŁKA AKCYJNA",
    "status": "Active",
    "incorporate_date": "2001-07-19",
    "dissolution_date": null,
    "main_activities": null,
    "sec_activities": null,
    "pre_names": ["POLSKI KONCERN NAFTOWY ORLEN..."],
    "industries": ["Polski Koncern Naftowy..."]
  }
}

返回字段:

字段类型说明
company_namestring公司名
registration_infostring注册号
basic_data.tax_idstring税号
basic_data.EUIDstring欧洲唯一标识符
basic_data.stock_codestring股票代码
basic_data.regionstring地区
basic_data.countrystring国家
basic_data.addressstring注册地址
basic_data.company_typestring公司类型
basic_data.statusstringStatus
basic_data.incorporate_datestring成立日期
basic_data.dissolution_datestring解散日期
basic_data.main_activitiesstring主营业务
basic_data.sec_activitiesstring次要业务
basic_data.pre_namesarray曾用名(最多 10 个)
basic_data.industriesarray行业分类(最多 10 个)

3. LEI全球法人识别码 action=lei

返回 LEI 编码、机构类别、注册状态、LOU 等。

参数类型必填说明
registration_infostring是注册号
curl "https://xn--hoqs02dpjc.cn/api.php?action=lei&post_type=pl_data&registration_info=0000028860&api_key=YOUR_KEY"

返回示例:

{
  "company_name": "Orlen S.A.",
  "registration_info": "0000028860",
  "lei_data": {
    "Entity.LegalName": "ORLEN SPÓŁKA AKCYJNA",
    "LEI": "259400VVMM70CQREJT74",
    "Entity.LegalJurisdiction": "PL",
    "Registration.RegistrationStatus": "ISSUED",
    "Registration.ManagingLOU": "259400L3KBYEVNHEJF55"
  }
}

返回字段:

字段类型说明
company_namestring公司名
registration_infostring注册号
lei_dataobjectLEI 原始字段(Entity.* / Registration.* 等),无数据时为 null
lei_data.LEIstringLEI 编码
lei_data.Entity.LegalNamestring法人名称
lei_data.Entity.LegalJurisdictionstring司法管辖区
lei_data.Registration.RegistrationStatusstring注册状态
lei_data.Registration.ManagingLOUstring注册管理单位

4. 管理人员/受益人 action=managers

返回董事、监事、商业代理人等,含姓名、职务、国籍、任职起止日期。

参数类型必填说明
registration_infostring是注册号
curl "https://xn--hoqs02dpjc.cn/api.php?action=managers&post_type=pl_data&registration_info=0000028860&api_key=YOUR_KEY"

返回示例:

{
  "company_name": "Orlen S.A.",
  "registration_info": "0000028860",
  "managers": [
    {
      "manager_name": "LITERACKI WITOLD",
      "manager_id": null,
      "locality": "Poland",
      "country": "PL",
      "description": "董事会成员 WICEPREZES ZARZĄDU",
      "start_date": null,
      "end_date": null,
      "corporate_register_number": null
    }
  ]
}

返回字段:

字段类型说明
company_namestring公司名
registration_infostring注册号
managers[].manager_namestring姓名
managers[].manager_idstring内部 ID
managers[].localitystring所在地
managers[].countrystring国家
managers[].descriptionstring职务描述
managers[].start_datestring任职日期
managers[].end_datestring卸任日期
managers[].corporate_register_numberstring公司注册号

5. 欧盟商标信息 action=trademarks

按公司名查询欧盟商标,返回申请人、商标详情、商品服务分类。

参数类型必填说明
company_namestring是公司名(非注册号)
注意:此接口用 company_name 而非 registration_info, 按公司名匹配商标申请人。
curl "https://xn--hoqs02dpjc.cn/api.php?action=trademarks&post_type=pl_data&company_name=Orlen%20S.A.&api_key=YOUR_KEY"

返回示例:

{
  "company_name": "Orlen S.A.",
  "registration_info": "0000028860",
  "applicants": [
    {
      "applicant_name": "Orlen S.A.",
      "applicant_number": "003151149",
      "country": "PL",
      "address": "Chemików 7, 09-411, Plock",
      "trademarks": [
        {
          "application_number": "003151149",
          "trademark_name": "ORLEN",
          "trademark_type": "INDIVIDUAL",
          "trademark_feature": "Figurative",
          "submission_date": "2003-04-03",
          "registration_date": "2005-10-13",
          "expiry_date": "2033-04-03",
          "registration_status": "Registered",
          "goods_services": "1: Saturated and unsaturated..."
        }
      ]
    }
  ]
}

返回字段:

字段类型说明
company_namestring公司名
registration_infostring注册号
applicants[].applicant_namestring商标申请人
applicants[].applicant_numberstring申请人编号
applicants[].countrystring国家
applicants[].addressstring地址
applicants[].trademarks[]array商标列表
trademarks[].application_numberstring申请号
trademarks[].trademark_namestring商标名
trademarks[].trademark_typestring类型
trademarks[].trademark_featurestring特征
trademarks[].submission_datestring提交日期
trademarks[].registration_datestring注册日期
trademarks[].expiry_datestring到期日期
trademarks[].registration_statusstring注册状态
trademarks[].goods_servicesstring商品与服务分类
说明:实际字段名以数据库表 Trademark_details 为准。

6. 财务报告 action=accounts

返回财务报表文件列表。

参数类型必填说明
registration_infostring是注册号
curl "https://xn--hoqs02dpjc.cn/api.php?action=accounts&post_type=pl_data&registration_info=0000028860&api_key=YOUR_KEY"

返回示例:

{
  "company_name": "Orlen S.A.",
  "registration_info": "0000028860",
  "account_filings": [
    {
      "report_id": "120396",
      "file_name": "Odpis Pełny.pdf",
      "file_date": "2024-01-15",
      "file_url": "https://..."
    }
  ]
}

返回字段:

字段类型说明
company_namestring公司名
registration_infostring注册号
account_filings[].report_idstring报告 ID
account_filings[].file_namestring文件名
account_filings[].file_datestring文件日期
account_filings[].file_urlstring文件下载链接

7. 企业登记历史 action=filings

返回登记文件、质押、任命等历史记录。

参数类型必填说明
registration_infostring是注册号
curl "https://xn--hoqs02dpjc.cn/api.php?action=filings&post_type=pl_data&registration_info=0000028860&api_key=YOUR_KEY"

返回示例:

{
  "company_name": "Orlen S.A.",
  "registration_info": "0000028860",
  "filings": [
    {
      "report_id": "120396",
      "description": "Odpis Pełny (Complete copy of KRS)",
      "cos_url": "https://...",
      "date": null,
      "appointment_date": null,
      "officer_name": null,
      "charge_number": null,
      "charge_creation_date": null,
      "category_1": null, "currency_1": null, "figure_1": null,
      "category_2": null, "currency_2": null, "figure_2": null,
      "category_3": null, "currency_3": null, "figure_3": null,
      "category_4": null, "currency_4": null, "figure_4": null,
      "category_res_1": null, "description_1": null,
      "category_res_2": null, "description_2": null,
      "category_res_3": null, "description_3": null,
      "category_res_4": null, "description_4": null
    }
  ]
}

返回字段:

字段类型说明
company_namestring公司名
registration_infostring注册号
filings[].report_idstring报告 ID
filings[].descriptionstring描述
filings[].cos_urlstring文件下载链接
filings[].datestring日期
filings[].appointment_datestring任命日期
filings[].officer_namestring官员姓名
filings[].charge_numberstring质押编号
filings[].charge_creation_datestring质押创建日期
filings[].category_1~4string财务类别
filings[].currency_1~4string货币
filings[].figure_1~4string金额
filings[].category_res_1~4string决议类别
filings[].description_1~4string决议描述

8. 分支机构 action=branches

返回分支机构编号、注册日期、地址、是否活跃、行业、联系方式等。

参数类型必填说明
registration_infostring是注册号
curl "https://xn--hoqs02dpjc.cn/api.php?action=branches&post_type=pl_data&registration_info=0000028860&api_key=YOUR_KEY"

返回示例:

{
  "company_name": "Orlen S.A.",
  "registration_info": "0000028860",
  "branches": [
    {
      "branch_no": "Siret 12345678900012",
      "register_date": "2010-05-01",
      "address": "Warszawa, ul. ...",
      "if_active": "1",
      "branch_industry": "Trade",
      "sec_industry": null,
      "region": "MAZOWIECKIE",
      "country": "POLAND",
      "web": ["https://...", "https://..."],
      "tel": ["+48 22 ..."],
      "email": ["a@b.pl"]
    }
  ]
}

返回字段:

字段类型说明
company_namestring公司名
registration_infostring注册号
branches[].branch_nostring分支编号(法国前缀 Siret)
branches[].register_datestring注册日期
branches[].addressstring地址
branches[].if_activestring是否活跃
branches[].branch_industrystring行业
branches[].sec_industrystring次要行业
branches[].regionstring地区
branches[].countrystring国家
branches[].webarray官网(多个)
branches[].telarray电话(多个)
branches[].emailarray邮箱(多个)

9. 联系方式 action=contacts

返回官网、电话、邮箱(数组形式)。

参数类型必填说明
registration_infostring是注册号
curl "https://xn--hoqs02dpjc.cn/api.php?action=contacts&post_type=pl_data&registration_info=0000028860&api_key=YOUR_KEY"

返回示例:

{
  "company_name": "Orlen S.A.",
  "registration_info": "0000028860",
  "contacts": [
    {
      "web": ["https://www.orlen.pl"],
      "tel": ["+48 22 ..."],
      "email": ["zarzad@orlen.pl"]
    }
  ]
}

返回字段:

字段类型说明
company_namestring公司名
registration_infostring注册号
contacts[].webarray官网
contacts[].telarray电话
contacts[].emailarray邮箱

错误码

HTTP错误信息原因 / 解决
400缺少 company_name 参数商标接口必传公司名
400缺少 registration_info 参数多数接口必传注册号
400无效或缺失的 post_type检查国家代码是否在白名单
400无效的 action检查 action 拼写
403缺少 API Key加 ?api_key=
403无效的 API KeyKey 不存在,联系管理员
403该 API Key 已被停用status=0
403该 API Key 已过期valid_until 已过
403无权访问该数据源(post_type)Key 未开通该国家权限
403无权调用该接口(action)Key 未开通该接口权限
404未找到该公司…数据注册号不对或该库无数据
429请求过于频繁 / 今日调用已达上限读响应头 Retry-After 后重试

完整示例(Python)

以查询波兰公司 Orlen S.A. 为例,先搜注册号,再拉全部数据:

import requests
import time

BASE_URL = "https://xn--hoqs02dpjc.cn/api.php"
API_KEY  = "YOUR_API_KEY"


def call_api(action, post_type="pl_data", retry_on_429=True, **params):
    """调用 API,自动处理限流重试"""
    query = {"action": action, "post_type": post_type, "api_key": API_KEY, **params}

    for attempt in range(3):
        r = requests.get(BASE_URL, params=query, timeout=30)

        # 非 JSON 响应(404 HTML / 502 等)
        try:
            data = r.json()
        except ValueError:
            raise RuntimeError(f"非JSON响应 [{r.status_code}]: {r.text[:200]}")

        # 429 限流:读 Retry-After 等待后重试
        if r.status_code == 429:
            retry_after = int(r.headers.get("Retry-After", 60))
            if retry_on_429 and attempt < 2:
                print(f"⚠️ 触发限流,{retry_after} 秒后重试(第 {attempt+1} 次)")
                time.sleep(retry_after)
                continue
            raise RuntimeError(f"[429] {data.get('error')}")

        # 其他错误
        if r.status_code != 200:
            raise RuntimeError(f"[{r.status_code}] {data.get('error')}")

        # 打印剩余额度(可选)
        remaining = r.headers.get("X-RateLimit-Remaining-Day")
        if remaining is not None:
            print(f"   今日剩余额度: {remaining}")

        return data

    raise RuntimeError("重试 3 次仍失败")


# ==================== 主流程 ====================

# 1) 搜公司,拿注册号
lst = call_api("list", search="Orlen", limit=10)
reg_info = None
for it in lst["list"]:
    if it["company_name"].strip().lower() == "orlen s.a.":
        reg_info = it["registration_info"]
        break
print("注册号:", reg_info)   # 0000028860

if not reg_info:
    raise SystemExit("未找到 Orlen S.A.")

# 2) 拉详情
results = {}
for act in ["basic", "managers", "filings", "accounts", "branches", "contacts", "lei"]:
    try:
        results[act] = call_api(act, registration_info=reg_info)
        print(f"✔ {act}")
    except RuntimeError as e:
        print(f"✘ {act}: {e}")

# 3) 商标(用公司名)
try:
    trademarks = call_api("trademarks", company_name="Orlen S.A.")
    print("商标申请人数:", len(trademarks["applicants"]))
except RuntimeError as e:
    print(f"✘ trademarks: {e}")

其他语言

PHP:

$url = "https://xn--hoqs02dpjc.cn/api.php?" . http_build_query([
    'action'            => 'basic',
    'post_type'         => 'pl_data',
    'registration_info' => '0000028860',
    'api_key'           => 'YOUR_KEY',
]);
$data = json_decode(file_get_contents($url), true);
print_r($data);

JavaScript (fetch):

const url = "https://xn--hoqs02dpjc.cn/api.php?" + new URLSearchParams({
  action: "basic",
  post_type: "pl_data",
  registration_info: "0000028860",
  api_key: "YOUR_KEY"
});
const res = await fetch(url);
const data = await res.json();
console.log(data);

常见问题

Q1: 返回 403「缺少 API Key」怎么办?

把 key 放到 URL 参数里:?api_key=YOUR_KEY,不要只依赖 Header。

Q2: 中文域名解析失败?

用 Punycode 域名 xn--hoqs02dpjc.cn 代替 欧企查.cn。

Q3: 如何分页获取全部公司?

用 list 接口,首次不传 last_id,之后每次传上次返回的 next_last_id,直到返回空列表。

Q4: 商标接口为什么不用注册号?

商标库按公司名匹配申请人,所以用 company_name。若同名公司多,结果可能包含多个申请人。

Q5: 注册号格式不一致怎么办?

先用 list 搜出准确注册号,再传给其他接口。德国数据会自动做 HRA/HRB 等格式兼容。

Q6: 如何申请 API Key?

联系管理员,提供:公司名、用途、需要的国家(post_type)、需要的接口(action)。

Q7: 触发 429 怎么办?

读取响应头 Retry-After(秒),等待后重试。不要立即重试,否则会持续被限流。

欧企查 API · 文档版本 v1.0 · 如有疑问请联系管理员

en_GBEnglish (UK)