API
API
Markedfile の API でファイルをマークし、検出します。Business と Enterprise で使えます。
API キー
Business または Enterprise ワークスペースの所有者は、ワークスペース設定でキーを作成し、失効させます。キーは一度だけ表示されます。Markedfile が保存するのは SHA-256 ハッシュ、短い接頭辞、名前です。秘密は保存しません。
キーはちょうど 1 つのワークスペースに属します。そのワークスペースのプラン上限の中で、そこでだけ動作します。個人ワークスペースにキーはありません。所有者でないメンバーは作成も失効もできません。
ワークスペースが有効な Business または Enterprise プランを失うと、すべてのキーは直ちに動作を止めます。既存のファイルがアプリでまだ検出できる 30 日間も同様です。Business または Enterprise に戻ると、失効させていないキーは再び動作します。
認証
秘密を Authorization ヘッダーの Bearer トークンとして送ります。これらのルートはセッション Cookie を使いません。別のサイトのブラウザは拒否されます。
監査
作成、失効、マーク、検出は、ワークスペースの所有者が読める監査の行を書きます。その行にファイルは含まれません。
エンドポイント
POST/api/v1/mark
ファイルをマークし、マークしたコピーを返します。本文は multipart/form-data です。
認証
Authorization: Bearer mf_…このヘッダーを送ります。セッション Cookie はありません。curl と他のサーバークライアントは受け付けます。別のサイトのブラウザは拒否されます。
パラメーター
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| file | file | はい | マークするファイルです。Business と Enterprise は 100 MB、PDF 500 ページ、10 分までの動画を受け付けます。サイズ、長さ、ページ数はワークスペースのプランに従います。 |
| identifier | string | はい | 1〜32 文字で、制御文字は使えません。あとからこのコピーが検出されたときに見るラベルです。読める文字としてファイルには書かれません。 |
リクエスト
curl -X POST https://markedfile.com/api/v1/mark \
-H "Authorization: Bearer mf_…" \
-F "file=@contract.pdf" \
-F "identifier=northwind"レスポンス
{
"file": "JVBERi0xLjQK…",
"mime": "application/pdf",
"name": "contract.pdf",
"kind": "pdf",
"layers": [
{
"name": "Metadata",
"detail": "Authenticated workspace reference; the identifier stays on the server",
"screenshot": "No",
"crop": "No",
"reencode": "No"
}
],
"remaining": 1
}file はマークしたバイト列の base64 です。mime、name、kind はダウンロードを説明します。layers は適用された層を列挙します。プランに有効なファイルの上限がないとき、remaining はこのマークのあとの有効なファイル数です。上限があるとき、remaining は残りの新しいマーク数です。Business と Enterprise に上限はありません。ファイルを削除すると検出は終わります。
エラー
JSON 本文の error フィールドの文は英語です。
| 状態 | 説明 |
|---|---|
| 400 | ファイルが空か、識別子が空、32 文字を超える、または制御文字を含みます。 |
| 401 | キーがない、失効している、または不明です。JSON 本文に "code": "api-key" が含まれます。 |
| 403 | ワークスペースに有効な Business または Enterprise プランがなくなりました(本文に "code": "enterprise" が含まれます)。またはブラウザが cross-site か same-site のリクエストを送りました。 |
| 413 | ファイルがプランのアップロード上限を超えているか、PDF のページ数がプランの上限を超えています。 |
| 422 | ファイルを処理できませんでした。 |
| 429 | このキーは現在の 1 分間に 40 件を超えるファイルをマークしました。 |
制限
このキーは 1 分に 40 リクエストです。カウンターは製品のデータベースに保存され、再起動後も残ります。
POST/api/v1/detect
このキーのワークスペースに対してファイルを調べます。本文は multipart/form-data です。
認証
Authorization: Bearer mf_…このヘッダーを送ります。セッション Cookie はありません。curl と他のサーバークライアントは受け付けます。別のサイトのブラウザは拒否されます。
パラメーター
| 名前 | 型 | 必須 | 説明 |
|---|---|---|---|
| file | file | はい | 調べるファイルです。検索はこのキーのワークスペースだけです。別のワークスペースでマークしたファイルは解決しません。有効な Business または Enterprise ワークスペースは動画ファイルも調べられます。1 フレームのスクリーンショットは画像として調べます。 |
リクエスト
curl -X POST https://markedfile.com/api/v1/detect \
-H "Authorization: Bearer mf_…" \
-F "file=@leaked.pdf"レスポンス
{
"id": "northwind",
"confidence": 0.95,
"layers": [
{
"name": "Metadata",
"hit": true,
"detail": "Authenticated metadata matched this workspace",
"screenshot": "No",
"crop": "No",
"reencode": "No"
}
],
"notes": [
"Confidence is 99% for an exact file or when an authenticated mark agrees with another mark. A visual match alone stays lower, and weak bit agreement stays far from a high score."
]
}id は、そのコピーをマークしたときに付けた識別子です。このワークスペースに一致がないときは null です。confidence は、ファイルが完全に一致するとき、または認証されたマークが別のマークと一致するとき 99% です。見た目だけの一致はそれより低くなります。layers は層を列挙し、一致した層の hit は true です。notes は調べた内容を説明します。削除したファイルは解決しません。
エラー
JSON 本文の error フィールドの文は英語です。
| 状態 | 説明 |
|---|---|
| 400 | ファイルが空です。 |
| 401 | キーがない、失効している、または不明です。JSON 本文に "code": "api-key" が含まれます。 |
| 403 | ワークスペースに有効な Business または Enterprise プランがなくなりました(本文に "code": "enterprise" が含まれます)。またはブラウザが cross-site か same-site のリクエストを送りました。 |
| 413 | ファイルがプランのアップロード上限を超えているか、PDF のページ数がプランの上限を超えています。 |
| 422 | ファイルを処理できませんでした。 |
| 429 | このキーは現在の 1 分間に 80 件を超える検出を実行しました。 |
制限
このキーは 1 分に 80 リクエストです。カウンターは製品のデータベースに保存され、再起動後も残ります。