OpenRefine API
OpenRefine の HTTP API とやり取りするためのリファレンスです。
注意: プロトコルは予告なく変更される可能性があり、バージョニングもありません。利用は自己責任でお願いします。
OpenRefine 3.3 以降では、すべての POST リクエストに リリースノート に記載の CSRF トークンが必要です。
プロジェクト作成
コマンド: POST /command/core/create-project-from-upload
ファイルアップロード時は multipart/form-data で送信します。他の API はクエリ文字列や通常の POST パラメータを使います。
multipart form-data:
'project-file' : ファイルの内容
'project-name' : プロジェクト名
'format' : ファイル形式(例: 'text/line-based/*sv')[任意]
'options' : ファイル形式に応じたオプションを含む JSON オブジェクト [任意。ただし JSON/XML など一部インポーターでは必須]
利用できる形式は OpenRefine のバージョンや拡張機能によって異なります。一般的なもの:
- 'text/line-based': 行ベーステキスト
- 'text/line-based/*sv': CSV/TSV/区切り文字形式(区切り文字は
optionsの JSON で指定) - 'text/line-based/fixed-width': 固定長テキスト
- 'binary/text/xml/xls/xlsx': Excel
- 'text/json': JSON
- 'text/xml': XML
format を省略すると拡張子や MIME タイプから推測します。options の JSON に指定できる値は形式によって異なり、未指定の場合は推測またはデフォルト値が使われます。GUI で該当形式をインポートする際の画面が参考になります。
成功すると以下のような URL にリダイレクトされます。
http://127.0.0.1:3333/project?project=<project id>
project パラメータからプロジェクト ID を取得し、以降の API で利用します。レスポンス本体はプロジェクトを表示する OpenRefine の HTML です。
プロジェクトモデル取得
コマンド: GET /command/core/get-models?
'project' : プロジェクト ID
列やレコード、オーバーレイモデル、スクリプト情報などを取得します。columnModel には列リスト(位置・元名・表示名)とキー列情報、グループが含まれます。
レスポンス例
{"columnModel":{...},"recordModel":{"hasRecords":false},...}
プロジェクト名・メタデータ変更
コマンド: POST /command/core/set-project-metadata
プロジェクト管理 の通り、プロジェクト名やメタデータを変更します。
'project' : プロジェクト ID
'name' : name/creator/contributors/.../customMetadata
'value' : 新しい値
- 名前変更は
nameフィールド - カスタムメタデータは
customMetadataに JSON を指定
プロジェクトタグ変更
コマンド: POST /command/core/set-project-tags
'project' : プロジェクト ID
'old' : 削除するタグ(カンマ区切り)
'new' : 追加するタグ(カンマ区切り)
操作の適用
コマンド: POST /command/core/apply-operations?
'project' : プロジェクト ID
フォームデータ:
'operations' : OpenRefine 操作の JSON 配列
例:
[
{"op":"core/column-addition",...},
{"op":"core/column-addition",...}
]
成功すると { "code" : "ok" } を返します。
行のエクスポート
コマンド: POST /command/core/export-rows
'project' : プロジェクト ID
'format' : 'tsv' や 'csv' など
フォームデータ:
"engine" : {"facets":[],"mode":"row-based"}
指定フォーマットでデータを返します。共通フォーマット: csv, tsv, xls, xlsx, ods, html。
プロジェクト削除
コマンド: POST /command/core/delete-project
'project' : プロジェクト ID
非同期プロセスの状態確認
コマンド: GET /command/core/get-processes
'project' : プロジェクト ID
全プロジェクトのメタデータ取得
コマンド: GET /command/core/get-all-project-metadata
全プロジェクトの ID・名称・作成日時・更新日時を返します。
{"projects":{"123":{"name":"proj","created":"..."}}}
式プレビュー
コマンド: POST /command/core/preview-expression
指定の列と行に式(GREL/Jython/Clojure)を適用し、結果を返します。
主なパラメータ:
cellIndex: 対象列rowIndices: 行インデックス配列(例:[0,1])expression:grel:value.toLowercase()のように<言語>:<式>project: プロジェクト IDrepeat,repeatCount: 同じ計算を繰り返す場合に指定
成功レスポンス:
{"code":"ok","results":["foo","bar"]}
サードパーティライブラリ
API クライアントライブラリは Extensions にまとめられています。