お知らせ
ExpTech のサービスのお知らせです。お知らせサイト https://announcement.exptech.com.tw に表示される内容と同じで、サービスの異常、メンテナンス、更新、API の変更などの通知です。公開済みで期限が切れていないお知らせだけを返します。自分のサービスに ExpTech のメンテナンスと異常の状態を表示するのに向いています。
データライセンス
Section titled “データライセンス”表記の場所、例、商用利用の申請はデータの利用条件と出典表記をご覧ください。
現在、API Token は不要です。
お知らせオブジェクト
Section titled “お知らせオブジェクト”3 つのエンドポイントが返すお知らせは、どれも次の形式です。
| フィールド | 型 | 説明 |
|---|---|---|
id | int | お知らせ ID。 |
type | int | お知らせの種別:1 一般、2 異常、4 メンテナンス、8 更新、16 変更。 |
title | string | タイトル。 |
content | string | 本文。Markdown 形式。要約の区切り {/* truncate */} を含むことがあります。表示前に除いてもかまいません。 |
tags | string[] | タグ。影響を受けるサービス(TREM Lite、DPIP、API(HTTP) など)や影響度(無、小、中、大、重大)です。異常とメンテナンスのお知らせには「進行中」または「已結案」のいずれかが付きます。 |
status | int | 状態。公開 API は公開済みのお知らせだけを返すので、常に 1 です。 |
expires_at | string | null | 期限。ISO 8601 UTC(例:2026-11-20T00:00:00.000Z)。期限がないときは null。 |
created_at | string | 作成時刻。ISO 8601 UTC。 |
updated_at | string | 最終更新時刻。ISO 8601 UTC。 |
お知らせ一覧の取得
Section titled “お知らせ一覧の取得”作成時刻の新しい順で、1 ページは 50 件固定です。公開済みで期限が切れていないお知らせだけを含みます。
GET
https://announcement.exptech.com.tw/api/announcements サーバーAnnouncement
クエリパラメーター
pageページ番号。1 から始まります。
searchキーワード。タイトル、本文、タグと照合します(部分一致、大文字と小文字は区別しません)。
typeこの種別だけを出します:1 一般、2 異常、4 メンテナンス、8 更新、16 変更。一度に指定できるのは 1 つです。
curl "https://announcement.exptech.com.tw/api/announcements"const res = await fetch("https://announcement.exptech.com.tw/api/announcements");if (!res.ok) throw new Error(`HTTP ${res.status}`);const data = await res.json();console.log(data);import requests
res = requests.get("https://announcement.exptech.com.tw/api/announcements", timeout=10)res.raise_for_status()print(res.json())成功
{ "success": true, "data": { "announcements": [ { "id": 42, "type": 4, "title": "API 伺服器例行維護", "content": "11 月 20 日 02:00–04:00 進行例行維護,期間 API 可能短暫無法連線。", "tags": [ "API(HTTP)", "小", "進行中" ], "status": 1, "expires_at": "2026-11-20T00:00:00.000Z", "created_at": "2026-11-14T03:00:00.000Z", "updated_at": "2026-11-14T03:00:00.000Z" } ], "total": 1, "page": 1, "totalPages": 1 }}If-None-Match が ETag と同じ。本文はありませんレスポンスボディなし
試してみる
レスポンスのフィールド
Section titled “レスポンスのフィールド”| フィールド | 型 | 説明 |
|---|---|---|
success | boolean | 成功時は true。 |
data.announcements | object[] | このページのお知らせ。形式は「お知らせオブジェクト」を参照してください。 |
data.total | int | 条件に合うお知らせの総数。 |
data.page | int | 現在のページ番号。 |
data.totalPages | int | 総ページ数(1 ページ 50 件)。お知らせがないときは 0。 |
種別ごとの件数を取得する
Section titled “種別ごとの件数を取得する”GET
https://announcement.exptech.com.tw/api/announcements/stats サーバーAnnouncement
curl "https://announcement.exptech.com.tw/api/announcements/stats"const res = await fetch("https://announcement.exptech.com.tw/api/announcements/stats");if (!res.ok) throw new Error(`HTTP ${res.status}`);const data = await res.json();console.log(data);import requests
res = requests.get( "https://announcement.exptech.com.tw/api/announcements/stats", timeout=10,)res.raise_for_status()print(res.json())成功
{ "success": true, "data": { "stats": { "1": 12, "4": 3, "8": 20 } }}If-None-Match が ETag と同じ。本文はありませんレスポンスボディなし
試してみる
レスポンスのフィールド
Section titled “レスポンスのフィールド”| フィールド | 型 | 説明 |
|---|---|---|
data.stats | object | お知らせの種別 → 公開済みで期限が切れていない件数。key は種別の数字を文字列にしたものです。件数が 0 の種別は出ません。 |
お知らせを 1 件取得する
Section titled “お知らせを 1 件取得する”GET
https://announcement.exptech.com.tw/api/announcements/{id} サーバーAnnouncement
パスパラメーター
idお知らせ ID(パスパラメータ)。
curl "https://announcement.exptech.com.tw/api/announcements/<id>"const res = await fetch("https://announcement.exptech.com.tw/api/announcements/<id>");if (!res.ok) throw new Error(`HTTP ${res.status}`);const data = await res.json();console.log(data);import requests
res = requests.get( "https://announcement.exptech.com.tw/api/announcements/<id>", timeout=10,)res.raise_for_status()print(res.json())成功
{ "success": true, "data": { "announcement": { "id": 42, "type": 4, "title": "API 伺服器例行維護", "content": "11 月 20 日 02:00–04:00 進行例行維護,期間 API 可能短暫無法連線。", "tags": [ "API(HTTP)", "小", "進行中" ], "status": 1, "expires_at": "2026-11-20T00:00:00.000Z", "created_at": "2026-11-14T03:00:00.000Z", "updated_at": "2026-11-14T03:00:00.000Z" } }}If-None-Match が ETag と同じ。本文はありませんレスポンスボディなし
お知らせが存在しない、または未公開
{ "success": false, "error": "找不到公告"}試してみる
レスポンスのフィールド
Section titled “レスポンスのフィールド”data.announcement の形式はお知らせオブジェクトを参照してください。
- キャッシュ。 サーバー側のキャッシュは 10 秒です。レスポンスには
ETagが付き、同じIf-None-Matchを付けると304になります。 - 期限が切れたお知らせ。 一覧と件数には期限が切れたお知らせを含みません。ただし ID で 1 件を検索するときは、公開済みのままであれば取得できます。
- エラーの形式。 エラーレスポンスは
{"success": false, "error": "<メッセージ>"}です。パスが存在しないときは404を返し、errorは找不到此路徑です。 - 時刻の形式。 時刻フィールドは ISO 8601 UTC の文字列(末尾は
Z)です。表示するときは自分で台湾時間に換算してください。 - ブラウザから直接呼ばないでください。 上の CORS の説明を参照してください。
