Skip to content

获取 Google Finance 行高级结果

GET /v3/serp/google/finance_quote/tasks_ready

本接口使用 GET 方法,通过任务 ID 获取 Google Finance 行高级结果:

GET https://api.seermartech.cn/v3/serp/google/finance_quote/task_get/advanced/$id

Google Finance 行接口可返回 Google Finance「」标签页中的实时数据。结果取决于创建任务时指定的股票或金融代码(keyword)、地区(location)和语言(language)等参数。

计费说明

  • 在提交任务时计费。
  • 任务结果可在提交后的 30 天重复获取,获取结果不额外收费。
  • 本接口响应中的 cost 通常为 0
  • 实扣费以响应头 X-SeerMarTech-Charge-CNY 为准。

请求参数

请求路径中的 $id 为任务唯一标识。

参数类型说明
idstring任务唯一标识,UUID 格式。任务提交成功后获得,可在 30 天用于获取任务结果。

请求示例:

text
GET /v3/serp/google/finance_quote/task_get/advanced/02261816-2027-0066-0000-c27d02864073

请求示例

cURL

bash
task_id="02261816-2027-0066-0000-c27d02864073"

curl --location \
  --request GET \
  "https://api.seermartech.cn/v3/serp/google/finance_quote/task_get/advanced/${task_id}" \
  --header "Authorization: Bearer smt_live_YOUR_KEY" \
  --header "Content-Type: application/json"

PHP

php
<?php

$task_id = '02261816-2027-0066-0000-c27d02864073';
$url = 'https://api.seermartech.cn/v3/serp/google/finance_quote/task_get/advanced/' . $task_id;

$ch = curl_init($url);

curl_setopt_array($ch, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer smt_live_YOUR_KEY',
        'Content-Type: application/json',
    ],
]);

$response = curl_exec($ch);

if ($response === false) {
    echo '请求失败:' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);

TypeScript

typescript
import axios from "axios";

const taskId = "02231256-2604-0066-2000-57133b8fc54e";

axios
  .get(
    `https://api.seermartech.cn/v3/serp/google/finance_quote/task_get/advanced/${taskId}`,
    {
      headers: {
        Authorization: "Bearer smt_live_YOUR_KEY",
        "Content-Type": "application/json",
      },
    }
  )
  .then((response) => {
    // 任务结果
    console.log(response.data);
  })
  .catch((error) => {
    console.error("请求失败:", error.response?.data || error.message);
  });

Python

python
import requests

task_id = "02231256-2604-0066-0000-57133b8fc54e"
url = (
    "https://api.seermartech.cn/"
    "v3/serp/google/finance_quote/task_get/advanced/"
    + task_id
)

response = requests.get(
    url,
    headers={
        "Authorization": "Bearer smt_live_YOUR_KEY",
        "Content-Type": "application/json",
    },
)

if response.ok:
    print(response.json())
else:
    print("请求失败:", response.status_code, response.text)

C#

csharp
using System;
using System.Net.Http;
using System.Net.Http.Headers;
using System.Threading.Tasks;

public class Example
{
    public static async Task Main()
    {
        var taskId = "02261816-2027-0066-0000-c27d02864073";
        var url =
            "https://api.seermartech.cn/v3/serp/google/finance_quote/"
            + "task_get/advanced/" + taskId;

        using var httpClient = new HttpClient();

        httpClient.DefaultRequestHeaders.Authorization =
            new AuthenticationHeaderValue(
                "Bearer",
                "smt_live_YOUR_KEY"
            );

        var response = await httpClient.GetAsync(url);
        var content = await response.Content.ReadAsStringAsync();

        if (response.IsSuccessStatusCode)
        {
            Console.WriteLine(content);
        }
        else
        {
            Console.WriteLine(
                $"请求失败:{(int)response.StatusCode} {content}"
            );
        }
    }
}

任务结果获取流程

如果需要批量获取已完成任务,可以调用任务就绪列表接口:

text
GET /v3/serp/google/finance_quote/tasks_ready

接口会返回已完成任务及结果地址。随后可以使用任务结果地址,或直接使用任务 ID 调用本接口:

text
GET /v3/serp/google/finance_quote/task_get/advanced/$id

使用 Python 批量获取

python
import requests

base_url = "https://api.seermartech.cn"
headers = {
    "Authorization": "Bearer smt_live_YOUR_KEY",
    "Content-Type": "application/json",
}

ready_response = requests.get(
    f"{base_url}/v3/serp/google/finance_quote/tasks_ready",
    headers=headers,
)

ready_data = ready_response.json()

if ready_data.get("status_code") == 20000:
    results = []

    for task_group in ready_data.get("tasks", []):
        for task_info in task_group.get("result", []):
            endpoint = task_info.get("endpoint_advanced")

            if endpoint:
                # endpoint_advanced 通常为完整结果获取地址
                result_response = requests.get(
                    endpoint.replace(
                        "https://api.本平台.com",
                        base_url,
                    ),
                    headers=headers,
                )
                results.append(result_response.json())

    print(results)
else:
    print(
        "获取任务列表失败:",
        ready_data.get("status_code"),
        ready_data.get("status_message"),
    )

响应说明

接口返回 JSON 数据,主体 tasks 数组。每个任务对象通常以下字段:

字段类型说明
versionstring接口版本号
status_codeinteger请求状态码,20000 表示成功
status_messagestring状态说明
timestring请求处理耗时
costnumber本次请求成本;获取已提交任务结果时通常为 0
tasks_countinteger返回的任务数量
tasks_errorinteger处理失败的任务数量
tasksarray任务结果数组

任务对象主要字段

字段类型说明
idstring任务 ID
status_codeinteger任务状态码
status_messagestring任务状态说明
dataobject创建任务时使用的请求参数
resultarraySERP 结果数据

data 中可能以下任务参数:

字段类型说明
apistringAPI 模块,例如 serp
functionstringAPI 方法,例如 task_get
sestring搜索引擎,例如 google
se_typestring搜索结果类型,例如 finance_quote
language_namestring结果语言
location_codeinteger地区代码
keywordstring股票代码、指数代码或金融标识
windowstring行时间窗口,例如 1D
priorityinteger任务优级
devicestring设备类型
osstring操作系统

result 结果字段

result 数组中的结果对象可能以下字段:

字段类型说明
se_results_countinteger搜索结果数量
items_countinteger返回项目数量
itemsarrayGoogle Finance 行项目列表

每个 items素通常:

字段类型说明
typestring结果类型
rank_groupinteger分组排名
rank_absoluteinteger绝对排名
quoteobject金融数据
graph_itemsarray行走势图数据
itemsarray新闻、搜索或市场分类等子项目
marketsarray期货或市场分类数据
detailsobject金融详细指标

quote 行字段

字段类型说明
typestring行类型
tickerstring金融代码
pricenumber当前价格
price_deltanumber价格变化值
price_currencystring价格货币
identifierstring金融唯一标识
displayed_namestring展示名称
urlstringGoogle Finance 对应页
locationstring/null金融所属地区
trendstring价格趋势,例如 updown
timestampstring行时间
percentage_deltanumber百分比变化值

details 详细指标字段

字段类型说明
previous_closenumber/null前收盘价
start_day_rangenumber/null当日最低价
end_day_rangenumber/null当日最高价
start_year_rangenumber/null年度最低价
end_year_rangenumber/null年度最高价
market_capnumber/null市值
volumenumber/null成交量
avg_volumenumber/null平均成交量
pe_rationumber/null市盈率
dividend_yieldnumber/null股息率
primary_exchangestring/null主要交易所
ytd_returnnumber/null年初至今回报率
expense_rationumber/null费用率
categorystring/null金融类别
net_assetsnumber/null净资产
yieldnumber/null收益率
front_loadnumber/null前端费用
market_segmentstring/null市场板块
open_interestnumber/null未平仓合约数
settlement_pricenumber/null结算价
cdp_climate_change_scorenumber/null气候变化评分
metrics_currencystring/null指标使用的货币

常见结果类型:

  • google_finance_quote:金融。
  • google_finance_compare_to:对比金融。
  • google_finance_news:。
  • google_finance_futures_chain:期货链。
  • google_finance_details:金融详细指标。
  • google_finance_about:金融或机构简介。
  • google_finance_interested:用户可能感的金融。
  • google_finance_people_also_search:用户还搜索的。

响应示例

json
{
  "version": "0.1.20241227",
  "status_code": 20000,
  "status_message": "Ok.",
  "time": "0.0895 sec.",
  "cost": 0,
  "tasks_count": 1,
  "tasks_error": 0,
  "tasks": [
    {
      "id": "02261816-2027-0066-0000-c27d02864073",
      "status_code": 20000,
      "status_message": "Ok.",
      "data": {
        "api": "serp",
        "function": "task_get",
        "se": "google",
        "se_type": "finance_quote",
        "language_name": "English",
        "location_code": 2840,
        "keyword": ".DJI:INDEXDJX",
        "window": "1D",
        "priority": 2,
        "device": "desktop",
        "os": "windows"
      },
      "result": [
        {
          "se_results_count": 0,
          "items_count": 11,
          "items": [
            {
              "type": "google_finance_quote",
              "rank_group": 1,
              "rank_absolute": 2,
              "quote": {
                "type": "google_finance_market_instrument_element",
                "ticker": "CLW00",
                "price": 70.33000183105469,
                "price_delta": -0.90999603,
                "price_currency": "USD",
                "identifier": "CLW00:NYMEX",
                "displayed_name": "Crude Oil",
                "url": "https://google.com/finance/quote/CLW00:NYMEX?hl=en&gl=us",
                "location": null,
                "trend": "down",
                "timestamp": "2025-02-13 13:58:12 +00:00",
                "percentage_delta": -1.2773668
              },
              "graph_items": []
            },
            {
              "type": "google_finance_compare_to",
              "rank_group": 1,
              "rank_absolute": 3,
              "items": []
            },
            {
              "type": "google_finance_news",
              "rank_group": 1,
              "rank_absolute": 4,
              "title": "Top news",
              "sub_title": null,
              "items": []
            },
            {
              "type": "google_finance_futures_chain",
              "rank_group": 1,
              "rank_absolute": 7,
              "markets": []
            },
            {
              "type": "google_finance_details",
              "rank_group": 1,
              "rank_absolute": 8,
              "badges": [],
              "previous_close": 71.24,
              "start_day_range": 70.16,
              "end_day_range": 71.18,
              "start_year_range": 70.16,
              "end_year_range": 71.18,
              "market_cap": null,
              "volume": 72805,
              "avg_volume": null,
              "pe_ratio": null,
              "dividend_yield": null,
              "primary_exchange": "NYMEX",
              "ytd_return": null,
              "expense_ratio": null,
              "category": null,
              "net_assets": null,
              "yield": null,
              "front_load": null,
              "market_segment": "ENRGY",
              "open_interest": 256985,
              "settlement_price": 71.24,
              "cdp_climate_change_score": null,
              "metrics_currency": "USD"
            },
            {
              "type": "google_finance_about",
              "rank_group": 1,
              "rank_absolute": 9,
              "displayed_name": "NYMEX:CLW00",
              "description": null,
              "description_source_url": null,
              "ceo": null,
              "founded": null,
              "headquarters": null,
              "website": null,
              "employees": null
            },
            {
              "type": "google_finance_interested",
              "rank_group": 1,
              "rank_absolute": 10,
              "items": []
            },
            {
              "type": "google_finance_people_also_search",
              "rank_group": 1,
              "rank_absolute": 11,
              "items": []
            }
          ]
        }
      ]
    }
  ]
}

沙盒测试

可通过沙盒接口查看该端点支持的 SERP 特征和扩展字段。沙盒请求不会产生费用:

text
https://sandbox.seermartech.cn/v3/serp/google/ads_search/task_get/advanced/00000000-0000-0000-0000-000000000000

沙盒返回的数据为模拟数据用于验证响应结构和字段格式。

状态码与错误处理

  • 20000:请求成功。
  • 40000 及以上:请求或任务处理失败,应结合 status_message 定位问题。
  • 当任务尚未完成、任务 ID 不存在或任务已 30 天保留期时,可能无法获取有效的 result

建议在客户端同时检查以下字段:

json
{
  "status_code": 20000,
  "status_message": "Ok.",
  "tasks": []
}

对于单个任务,还应检查任务对象中的 status_codestatus_messageresult 是否存在。

实用场景

  • 监控股票、指数和大宗商品:按任务 ID 获取指定金融的最新价格与涨跌,为市场监测和投研看板提供数据。
  • 汇总不同市场的分类:读取美国、欧洲、亚洲、货币和加密资产等市场项目,构建跨市场聚合页面。
  • 追踪金融:提取 Google Finance 新闻结果,分析热点事件对搜索需求和行业的影响。
  • 生成金融数据报告:使用市值、成交量、市盈率、收益率和区间价格等指标,为投研报告和竞品市场分析补结构化数据。
  • 比较金融表现:结合、对比项目和用户还搜索,发现投资主题之间的及潜在选题。

统一入口:官网 · LLM API · 控制台