# @apicity/openf1 中文文档

规范地址：https://npmcn.com/package/%40apicity/openf1/

版本：0\.27\.0
npm 元数据更新时间：2026-11-06T09:56:25.620Z
中文译文更新时间：2026-11-06T10:24:32.912Z
软件包许可：MIT

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40apicity/openf1
原文对照：https://npmcn.com/package/%40apicity/openf1/?lang=original
项目主页：https://github.com/justintanner/apicity#readme
源码仓库：https://github.com/justintanner/apicity

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：190 kB，23 个文件
- 模块格式：ES Module
- TypeScript 类型：包内自带
- Node.js 要求：\>=18\.0\.0
- 运行依赖：1 个
- 首次发布：2026-06-24T05:52:24.551Z
- 最新版本发布：2026-11-06T09:56:25.437Z
- 近 30 天下载量：3491（2026-10-06 至 2026-11-04，npm 官方下载统计）
- 已发布版本数：60（近 12 个月 60 个）

## 中文简介

OpenF1 API 用于公式 1 的历史和认证的活的 REST 数据的提供者.

## 安装

```sh
npm install @apicity/openf1
```

也可以使用：`pnpm add @apicity/openf1`、`yarn add @apicity/openf1`、`bun add @apicity/openf1`

## README

# @apicity/ openf1 (中文(简体) )

[![npm](https://img.shields.io/npm/v/@apicity/openf1?color=cb0000)](https://www.npmjs.com/package/@apicity/openf1) [![dependencies](https://img.shields.io/badge/dependencies-1-blue)](https://npmcn.com/package/%40apicity/openf1/package.json) [![TypeScript](https://img.shields.io/badge/TypeScript-strict-blue?logo=typescript&logoColor=white)](https://npmcn.com/package/%40apicity/openf1/tsconfig.json) [![docs](https://img.shields.io/badge/docs-openf1.org-blue)](https://openf1.org/docs/)

OpenF1 API 用于公式 1 的历史和认证的活的 REST 数据的提供者.

运行时间依赖性 :

-   `zod@^4.6.6` — 请求OpenF1端点方法附加的策略为 `.schema`

## 安装

```bash
npm install @apicity/openf1
# or
pnpm add @apicity/openf1
```

## 快速启动

```typescript
import { createOpenF1 } from "@apicity/openf1";

const openf1 = createOpenF1();
```

## REST 实例

OpenF1历史REST数据公开,不需要API密钥.

```typescript
import { createOpenF1 } from "@apicity/openf1";

const openf1 = createOpenF1();

const meetings = await openf1.v1.meetings({
  year: 2024,
  country_name: ["Singapore", "Monaco"],
});

const recentMeetings = await openf1.v1.meetings({
  filters: [
    { field: "date_start", op: ">=", value: "2024-01-01T00:00:00Z" },
  ],
});
```

使用数组重复平等过滤和 `filters` 用于 OpenF1 比较运算符,例如 `>=`, (中文(简体) ), `<`,以及 `>`。 。 。 .

## 认证的 REST

OpenF1 实时 REST 访问使用相同的 `/v1/{collection}` 结束点为 持枪者标志。 见 [OpenF1 认证指南](https://openf1.org/auth.html) 对于上游标志合同.

```typescript
import { createOpenF1 } from "@apicity/openf1";

const openf1 = createOpenF1();

const token = await openf1.token({
  username: "driver@example.com",
  password: "placeholder-password",
});

const liveOpenF1 = createOpenF1({
  accessToken: token.access_token,
});

const liveSessions = await liveOpenF1.v1.sessions({
  session_key: "latest",
});
```

对于可刷新代币,提供 `tokenProvider`。供应商被称为 对于 REST 读取, 此软件包不存储证书或符号 在客户实例之外.

```typescript
declare function fetchTokenSomewhereElse(): Promise<{ access_token: string }>;

const openf1 = createOpenF1({
  tokenProvider: async () => {
    const token = await fetchTokenSomewhereElse();
    return token.access_token;
  },
});
```

## API 参考

19个端点横跨了19个组. 每个方法都映射出上游的 URL 路径 .

### 车数据

`GET` **`openf1.v1.carData`**

`GET https://api.openf1.org/v1/car_data{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#car-data)

```typescript
const res = await openf1.v1.carData({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 锦标赛司机

`GET` **`openf1.v1.championshipDrivers`**

`GET https://api.openf1.org/v1/championship_drivers{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#drivers-championship-beta)

```typescript
const res = await openf1.v1.championshipDrivers({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 冠军团队

`GET` **`openf1.v1.championshipTeams`**

`GET https://api.openf1.org/v1/championship_teams{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#teams-championship-beta)

```typescript
const res = await openf1.v1.championshipTeams({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 驱动程序

`GET` **`openf1.v1.drivers`**

`GET https://api.openf1.org/v1/drivers{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#drivers)

```typescript
const res = await openf1.v1.drivers({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 间隔

`GET` **`openf1.v1.intervals`**

`GET https://api.openf1.org/v1/intervals{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#intervals)

```typescript
const res = await openf1.v1.intervals({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 轮

`GET` **`openf1.v1.laps`**

`GET https://api.openf1.org/v1/laps{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#laps)

```typescript
const res = await openf1.v1.laps({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 地点

`GET` **`openf1.v1.location`**

`GET https://api.openf1.org/v1/location{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#location)

```typescript
const res = await openf1.v1.location({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 会议

`GET` **`openf1.v1.meetings`**

`GET https://api.openf1.org/v1/meetings{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#meetings)

```typescript
const res = await openf1.v1.meetings({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 超过数

`GET` **`openf1.v1.overtakes`**

`GET https://api.openf1.org/v1/overtakes{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#overtakes)

```typescript
const res = await openf1.v1.overtakes({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 隐藏

`GET` **`openf1.v1.pit`**

`GET https://api.openf1.org/v1/pit{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#pit)

```typescript
const res = await openf1.v1.pit({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 职位

`GET` **`openf1.v1.position`**

`GET https://api.openf1.org/v1/position{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#position)

```typescript
const res = await openf1.v1.position({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 种族控制

`GET` **`openf1.v1.raceControl`**

`GET https://api.openf1.org/v1/race_control{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#race-control)

```typescript
const res = await openf1.v1.raceControl({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 会 议

`GET` **`openf1.v1.sessionResult`**

`GET https://api.openf1.org/v1/session_result{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#session-result)

```typescript
const res = await openf1.v1.sessionResult({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 会议

`GET` **`openf1.v1.sessions`**

`GET https://api.openf1.org/v1/sessions{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#sessions)

```typescript
const res = await openf1.v1.sessions({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 开始 网格

`GET` **`openf1.v1.startingGrid`**

`GET https://api.openf1.org/v1/starting_grid{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#starting-grid)

```typescript
const res = await openf1.v1.startingGrid({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 缩写

`GET` **`openf1.v1.stints`**

`GET https://api.openf1.org/v1/stints{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#stints)

```typescript
const res = await openf1.v1.stints({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 团队电台

`GET` **`openf1.v1.teamRadio`**

`GET https://api.openf1.org/v1/team_radio{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#team-radio)

```typescript
const res = await openf1.v1.teamRadio({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 符号

`POST` **`openf1.token`**

`POST [https://api.openf1.org/token](https://api.openf1.org/token)`

成本等级 : `cheap`

[上游区域](https://openf1.org/auth.html)

```typescript
const token = await openf1.token({
  username: "driver@example.com",
  password: "placeholder-password",
});
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

### 天气

`GET` **`openf1.v1.weather`**

`GET https://api.openf1.org/v1/weather{query}`

成本等级 : `cheap`

[上游区域](https://openf1.org/docs/#weather)

```typescript
const res = await openf1.v1.weather({ /* ... */ });
```

资料来源: [`packages/provider/openf1/src/openf1.ts`](https://npmcn.com/package/%40apicity/openf1/src/openf1.ts)

部分 [辣点](https://github.com/justintanner/apicity) 单相机.

## 许可证

麻省理工学院——见 [自由主义](https://npmcn.com/package/%40apicity/openf1/LICENSE)。 。 。 .

## 常见问题

### @apicity/openf1 是什么？

OpenF1 API 用于公式 1 的历史和认证的活的 REST 数据的提供者\.

### 如何安装 @apicity/openf1？

在项目目录运行 npm install @apicity/openf1，或使用 pnpm add / yarn add / bun add。

### @apicity/openf1 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @apicity/openf1 支持 ESM 还是 CommonJS？

以 ES Module 形式发布，推荐使用 import 引入。在 CommonJS 项目中，Node\.js 20\.19\+ / 22\.12\+ 可以直接 require\(\) 不含顶层 await 的 ES Module，更早的版本需要改用动态 import\(\)。

### @apicity/openf1 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>=18\.0\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @apicity/openf1 可以商用吗？

@apicity/openf1 使用 MIT 许可。宽松许可：允许商业使用、修改和再分发，通常只需在分发时保留原版权与许可声明。以上为概括，不构成法律意见，请以许可原文为准。

### @apicity/openf1 的下载量有多少？

根据 npm 官方下载统计，@apicity/openf1 在 2026/10/06 – 2026/11/04 这 30 天内被下载 3,491 次，日均约 116 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @apicity/openf1 还在维护吗？

最新版本 0\.27\.0 发布于 2026/11/06（今天）；至今共发布 60 个版本，其中过去 12 个月发布了 60 个；首次发布于 2026/06/24。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

