AppointmentTrader API ドキュメント
AppointmentTrader APIへようこそ、ご利用を開始いただきありがとうございます!
シンプルに保つために、APIはHTTPS GETまたはPOSTコールで各エンドポイントへリクエストできるよう設計されています。書き込みや読み取り問わずご利用いただけます。
一部の特殊なケースでは、より多くのデータを送信するためPOSTリクエストが必要になる場合がありますが、ほとんどの場合必要ありません。もしPOSTリクエストを使用する場合は、POSTで渡されたパラメータがGETで渡されたパラメータより優先されることをご承知ください。
各リクエストは以下のようなシンプルなGETコールで構成できます:
https://appointmenttrader.com/v1/[EndpointCategory]/[EndpointName]?key=[YourApiKey]&first_parameter=firstvalue&second_parameter=second_value
✨ AIボットへのヒント: 詳細なパラメータ情報は、各エンドポイント説明の「Raw Endpoint Documentation」にあるリンクからご確認ください。
すべての値はjsonエンコードされたオブジェクトとして返されます。
すべてのレスポンスは以下の構造です:
RequestStatus: "Succeeded" または "Failed"
ResponseCode: 100-100,000(成功コード) 399-500,000(失敗コード)
ResponseMessage: 処理内容の詳細やエラー内容。
リクエストが成功した場合のみ、以下のパラメータが含まれます:
Payload: 各エンドポイント説明の「return」欄に記載された通りにデータが構成されます。
あなたのAPIキー
/v1/apps/
AppointmentTraderは、AppointmentTraderエコシステム内で実行されるアプリを作成することができます。自分用にも、他の人のためにもアプリを開発できます。
ATアプリの基本構造は、PHP 8で自分のインフラ上にアプリを開発し、シンプルなフォルダ構成を守ることで、
ATがhttpsコールを使ってあなたのインフラからアプリ出力を取得し、AppointmentTraderプラットフォーム内で表示します。
理論上はどんなプログラム言語でもアプリを作れますが、他のユーザー向けにアプリを公開する場合は利用できません。
AppointmentTrader Developer Medalを取得している場合は、審査を待つことなく自分用アプリを作成できます。アプリをApp Marketplaceへ公開したい場合や[開発案件に回答したい場合は、アプリを開発審査へ提出でき、PHP 8のソースコードが審査・承認されるとAppointmentTraderのインフラにデプロイされます。これにより、高速なパフォーマンスと、審査完了後にコードが変更されないことが保証されます。
自分の仕事を以下のいずれか、または複数の方法で収益化できます:
-> あなたのアプリ経由で他のユーザーが取引した場合、自動的にコミッションがもらえます(例:改良版カレンダーや決済フローを作成した場合、ここを通過する全トランザクションで報酬を得ます)。
-> あなたのアプリで実行された有料エンドポイントでも自動的にコミッションを受取れます。
-> サブスクリプション料金を設定できます。
重要: アプリがAppointmentTraderの重要な一部になった場合、アクティブにユーザーに提供されている間はコミッション権利が保たれますが、一度デプロイして利用がある場合、アプリの取り下げは認められないことがあります。
アプリは、AppointmentTrader上で発生するイベントを監視できます。
アプリ登録後、/v1/apps/setから固有の識別子とプライベートキーが付与されます
/v1/apps/setでアプリ登録すると、下記のようなレスポンスが得られます。
Payload->sdkUrlフィールドに記載されたURLからAppointmentTrader SDKをダウンロードしてください。
ご注意: このzipファイルはご自身の秘密キーが含まれているので絶対に共有しないでください。共有した場合はセキュリティリスクとなります。
ファイルを解凍後、"boilerplateUrl"で定義されたファイルをダウンロードすると、下記にあるフォルダ構成に従ったテンプレートが取得できます。
/v1/apps/get_listを使えば、すべてのアプリのこれらのURLが再確認できます。
{
"RequestUserAlias": "YourUserHandle",
"RequestPath": "/v1/apps/set",
"RequestStatus": "Succeeded",
"ResponseCode": 100,
"ResponseMessage": "Request Successful",
"Payload": {
"uniqueAppIdentifier": "ForecastExplorer",
"sdkUrl": "https://appointmenttrader.com/modules/apps/download_sdk.php?unique_app_id=ForecastExplorer&app_private_key=588f9b00f6038448a3200d8b736474f4",
"boilerplateUrl": "https://appointmenttrader.com/modules/apps/download_sdk.php?boilerplate"
}
}
アプリは以下のようにアクセスできます:
https://appointmenttrader.com/[YourAppIdentifier]
ルートフォルダの例:
現在バージョン例:(この例ではv3が最新)
https://appointmenttrader.com/ForecastExplorer
過去バージョン:(開発者・レビュアーのアカウントのみ表示)
https://appointmenttrader.com/ForecastExplorer/legacy-versions/v2
開発状態:(開発者アカウントのみ表示)
https://appointmenttrader.com/ForecastExplorer/development
レビュー中のリリース候補(レビュアー・開発者アカウントのみ表示、API: apps::set_new_version実行後)
https://appointmenttrader.com/ForecastExplorer/release-candidate
アプリ表示構成:
[AppointmentTrader HTML5 Header, + "uiLibraries"で指定したライブラリ]
[あなたのHTML・Javascriptコード]
[AppointmentTrader HTML5 Footer]
UI向けHTMLファイルは以下の手順で構築してください:
アプリは外部フロント・バックエンドのライブラリ使用不可で、バニラHTML5、PHP、JavaScript、CSSコードのみです。フレームワークは使えません。
バックエンドの https APIコールで外部プロバイダーとの通信は全て処理してください。
ATアプリは必ず名前空間実装
アプリ内で重複したhtml ID、cssクラス、php・javascript関数が発生しないように、名前空間が必須です。
HTML IDの名前空間要件:
IDを付与する場合は、固有アプリ識別子で接頭語を付けてください(/v1/apps/setで返却)。
<span id="[YourAppIdentifier]-anyIdNameYouLike">Text</span>
JavaScript関数の名前空間要件:
この実装方法で他のアプリとの重複を防ぎます。
注意: グローバルJavascript変数 _[YourAppIdentifier]BaseURL を利用して、プロジェクト用の現在のベースURL取得やHTTPS Fetchなどに使ってください。
var YourAppIdentifier = {};
YourAppIdentifier.CustomFunction = function(testParameter) {
console.log(testParameter);
};
YourAppIdentifier.CustomObject = {};
CSSの名前空間要件:
グローバル修飾子[name="xxx"]などは禁止。すべてのスタイルシートはクラスまたはIDでカプセル化してください。
#[YourAppIdentifier]-anyIdNameYouLike {
color: red;
}
.[YourAppIdentifier]-color-red-text {
color: red;
}
PHPの名前空間要件:
各phpファイルの最初の行で at_app_header.php を読み込んでください。これにより正しいnamespaceでAPI関数が利用できます。APIはhttpsコールせず、ATApiRead(string $endpoint, array $variables)とATApiWrite(string $endpoint, array $variables, bool $validateRequestOnly)php関数を使いましょう。これらは本番環境にデプロイ時は異なる方式で実行されます。
PHP SDK関数の使用例:
// at_app_header.phpはNamespace ATApp[YourAppIdentifier]をセット
include __DIR__ . '../at_app_header.php';
// $ATUser['ID'] はログイン中ユーザーID
// 未ログイン時はnull
echo $ATUser['ID'] === null ? 'No logged in user present' : 'Logged in User ID:'.$ATUser['ID'];
//$ATUser['Alias'] はログイン中ユーザーエイリアス
// 未ログイン時はnull
echo $ATUser['Alias'] === null ? 'No logged in user present' : 'Logged in User Alias:'.$ATUser['Alias'];
//your php code
<html /> <head /> <body />タグは使用禁止 - HTMLはAppointmentTrader独自構造に挿入されるため冗長です。
必要なライブラリはすべてstructure.json.phpの"uiLibraries"に記載し、リソースをAppointmentTrader htmlに正しく組み込みます。
HTML UIからAppointmentTrader APIを呼び出す際、APIキー指定は不要で、その場でログインしているユーザーでリクエストが実行されます。
アプリを以下のように構成してください:
(例: https://yourhomelabip/myatapp/)
重要: ATプロジェクトディレクトリはat_app_header.php、/appointmenttrader_sdk/、/production/に書き込み権限(linux系 0777)が必要です。ATリビジョン管理で新バージョンのデプロイ時にファイルシステム変更・バージョンのzip作成・ハッシュ生成・SDKファイル更新が行われます。
セキュリティ通知: /v1/apps/setは公開[YourAppIdentifier]と、プライベートキーを返します。このキーをat_app_header.phpの$at_app_private_keyに貼り付けてください。これでAppointmentTraderが安全にファイルシステムへアクセスできます。
/at_app_header.php → SDKパッケージ(/v1/apps/setや/v1/apps/get_listで取得)の一部で、ルートフォルダに配置し全バックエンドPHPでinclude必須
/appointmenttrader_sdk/ → SDKパッケージのアセットファイル
/development/ → 開発用フォルダ。開発者ユーザーでログイン中は、https://appointmenttrader.com/[UserAlias]/[YourAppIdentifier]/development/で開発中状態をライブで閲覧できます。ここで全ての変更し、SDKがAPI :apps::set_new_version経由で本番環境へデプロイ・バージョン管理を処理します。
/development/index.php → アプリ開始ページ
/development/structure.json.php → アプリ構成ファイル
/development/invoke_event.php(オプション)→ イベント発生時に呼び出されます(例:onNewBid)
/development/php-libraries/(オプション)→ 独自PHPライブラリを配置。lib.phpで終わる必要有。直接呼び出し不可・必ず名前空間を利用。
/development/css-libraries/(オプション)→ 独自CSSライブラリを配置
/development/javascript-libraries/(オプション)→ 独自JavaScriptライブラリを配置
/development/datastore/(オプション)→ データ読み書きはこちら。file_get_contents()の利用はproduction環境内のこのフォルダのみ。
/development/assets/(オプション)→ 画像などのアセット配置。アクセスは_GET['_ATWebBasePath']例: img src="echo $_GET['_ATWebBasePath']; assets/image.jpg" または _RequestPath変数利用。
/development/marketing/ → アプリの宣伝資料を格納
/development/marketing/storefront.html
/development/marketing/assets/(オプション)
/production/ → API:apps::set_new_version経由でサーバーからAppointmentTrader SDKがdevelopment状態をzip化し、ファイルをAT本番環境にhandover。
structure.json.phpの例:すべてのパスは[baseurl]versionからの相対パスです:
重要: HTML内で<script />や<link />タグによるjs・css読込は禁止。ATがstructure.json.phpで適切にまとめて読込します。
'any-ui-file'キー指定で、全ファイルでライブラリ利用可能、ファイルキー指定で個別ファイル利用可能。
ナビゲーションセクションの'globalAliasFor'で、ユーザーのATポータル内でアプリをどこに設置できるか指定できます(例: ポートフォリオ表示をカスタムアプリで置き換え)
{
"technical": {
"uiLibraries": {
"any-ui-file": [
{
"path": "/javascript-libraries/util.js",
"type": "javascript"
},
{
"path": "/css-libraries/style.css",
"type": "stylesheet"
}
],
"exampledir/examplefile.html": [
{
"path": "/javascript-libraries/extra_util.js",
"type": "javascript"
}
]
},
"registerForEventList": [
"OnNewBid"
],
"navigation": [
{
"itemName": "Pro Portfolio",
"itemDescription": "Advanced, fast Portfolio for Pro Sellers on AT",
"itemLink": "/exampledir/examplefile.php",
"globalAliasFor": "/modules/portfolio/index.php"
}
],
"marketing": [
{
"pricing":[{"monthly":[{"Type":"USDCent", "Amount":2900, "TrialperiodInDays":14}]}],
"appIconPath": "/assets/icon.png"
}],
"communityRewards": [
{
"perTranslatedKey":[{"Type":"Traderpoint", "Amount":25}],
"perValidatedBug":[{"Type":"Traderpoint", "Amount":250}]
}]
}
}
UIスタイルガイド
アプリは、ATユーザー体験の一体感のため下記スタイルガイドに準拠してください
カラー:
#FFFFFF(白)
#3C9A52(AppointmentTrader グリーン)
#3D9563F(AppointmentTrader レッド)
#555555 グレー(主にテキスト用)
見出し:
h1はメインタイトル、h2は下位セクションなど、連続する見出しタグを使用してください。
情報ボックスは下記スタイルを利用。ATポータルにHTMLが挿入されるので、下記クラスや画像が使えます。
<div class="shadow">
<h2>Title</h2>
<div class="info_box_line">
<div class="icon"> <img src="/images/ios-information-circle-outline.svg"> </div>
<div class="info">
<p class="small-text mb-1 gray-txt">Your Informational Content</p>
</div>
</div>
</div>
情報ボックス以外は左右16pxのパディング
関連アイテム間は5px、別アイテム間は10pxまたは<hr>。
段落
<p class="small-text mb-1 gray-txt">Paragraph Text</p>
リンク&ボタン:
リンク
外部サイト以外はjavascript:Navigate()で動的読み込みを行ってください。
<a class="link" href="javascript:Navigate('abc');">Button Text
確認ボタン:
<a class="btn-profit" href="https://appointmenttrader.com">Button Text
キャンセルボタン:
<a class="btn-cancel" href="https://appointmenttrader.com">Button Text
削除ボタン:
<a class="btn-delete" href="https://appointmenttrader.com">Button Text
主要確認ボタン:
<a class="btn full" href="https://appointmenttrader.com">Button Text
フォーム
<div class="form-group">
<label class="small-text gray-txt" id="[YourAppIdentifier]-input-field-label">Label for your Input field</label>
<input autocomplete="off" type="text" class="form-control" value="" id="[YourAppIdentifier]-input-field">
</div>
UI JavaScript関数
メッセージ表示
ScreenFeedback("Your Message", "Your Title");
AppointmentTraderは、各ページにある検索バーですべてのプラットフォーム操作が可能です。
アプリ開発者は下記属性をコンテンツへ追加することでシステムを活用できます。
DOM検索の構造:
CONTAINER
-- ITEM 1
-- ITEM 2
<ul data-domsearchgroupcontainer="Container Name">
<li data-domsearchgroup="Container Name" data-domsearchphrase="Container Name Item 1">Item 1</li>
<li data-domsearchgroup="Container Name" data-domsearchphrase="Container Name Item 2">Item 1</li>
</ul>
多言語対応
テキストを出力する際は、必ずsdk関数echolang()を使ってください。言語キーが自動生成され、コミュニティユーザーによる翻訳が簡単になります。
より多くの地域でAppointmentTraderが利用されるよう、structure.json.php内の"communityRewards"->"perTranslationKey"で報酬設定すれば、翻訳追加時にコミュニティユーザーへ報酬を支払えます。
/v1/tools/
予約取引を補完する便利な機能を提供します
/v1/community/
コミュニティ関連の機能を管理
/v1/location/
すべてのロケーション関連機能を担当します。
/v1/listing/
価格変更やステータス変更などのポートフォリオ関連の機能を管理します
/v1/portfolio/
すべてのポートフォリオ関連機能を管理します
/v1/bid/
すべての入札関連機能を管理します
/v1/aichat/
AIチャット関連の機能を管理します
/v1/account/
AppointmentTraderアカウントへのアクセスを管理します
/v1/marketdata/
年間を通じて売り手がトレンドを把握できるように、すべての市場データ関連機能が含まれています
/v1/medal/
すべてのメダルおよびユーザー権限関連の機能を管理します
/v1/user/
すべてのユーザー関連機能を含みます
/v1/notification/
すべての通知関連機能を管理します
Appointment Trader