Documentation Index
Fetch the complete documentation index at: https://docs.olostep.com/llms.txt
Use this file to discover all available pages before exploring further.
Olostepの/v1/schedulesエンドポイントを通じて、指定した時間に自動的に実行されるようにAPIコールをスケジュールできます。cron式や自然言語を使用して、一度限りの実行や定期的なタスクをスケジュールします。
- 特定の日時に一度限りの実行をスケジュール
- cron式を使用して定期的なスケジュールを作成
- 自然言語テキストを使用してcron式を自動生成
- HTTPエンドポイント(GETまたはPOST)をスケジュール
- POSTリクエストの場合、短縮形式のOlostepエンドポイント(自動的にプレフィックス付け)またはフルURLを使用
- 任意のペイロードを渡すことが可能 - ペイロードは指定した通りに送信されます
- スケジュールのライフサイクルを自動管理
APIの詳細については、スケジュールエンドポイントAPIリファレンスを参照してください。
インストール
# pip install requests
import requests
スケジュールを作成
APIコールを自動的に実行するようにスケジュールを作成します。一度限りのスケジュールやcron式を使用した定期的なスケジュールを作成できます。endpointは任意のURL(Olostepエンドポイントに限定されません)であり、payloadには送信したい任意のデータを含めることができます。
一度限りのスケジュール
特定の日時に一度だけ実行されるAPIコールをスケジュールします。
import requests
import json
from datetime import datetime, timedelta
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
# 1時間後にスクレイプを実行するようにスケジュール
execute_at = (datetime.now() + timedelta(hours=1)).isoformat()
payload = {
"method": "POST",
"endpoint": "v1/scrapes",
"payload": {
"url_to_scrape": "https://example.com",
"formats": ["markdown"]
},
"execute_at": execute_at,
"expression_timezone": "UTC"
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(f"{API_URL}/schedules", headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
cron式を使用した定期的なスケジュール
cron式を使用して定期的なスケジュールを作成します。cron式は6つのフィールド形式を使用します:分 時 日 月 曜日 年。
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
# 毎日10時UTCにスクレイプを実行するようにスケジュール
payload = {
"method": "POST",
"endpoint": "v1/scrapes",
"payload": {
"url_to_scrape": "https://example.com",
"formats": ["markdown"]
},
"cron_expression": "0 10 * * ? *",
"expression_timezone": "UTC"
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(f"{API_URL}/schedules", headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
自然言語によるスケジューリング
自然言語テキストを使用してcron式を自動生成します。システムはあなたのテキストを有効なcron式に変換します。
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
# 自然言語を使用してスケジュール
payload = {
"method": "POST",
"endpoint": "v1/scrapes",
"payload": {
"url_to_scrape": "https://example.com",
"formats": ["markdown"]
},
"text": "every 3 minutes",
"expression_timezone": "UTC"
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(f"{API_URL}/schedules", headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
レスポンス形式
スケジュールを作成すると、次のプロパティを持つスケジュールオブジェクトが返されます:
{
"id": "schedule_abc123xyz",
"object": "schedule"
"type": "recurring",
"method": "POST",
"endpoint": "v1/scrapes",
"cron_expression": "0 10 * * ? *",
"expression_timezone": "UTC",
"created": "2025-01-15T10:00:00.000Z"
}
一度限りのスケジュールの場合、レスポンスにはcron_expressionの代わりにexecute_atが含まれます:
{
"id": "schedule_abc123xyz",
"object": "schedule"
"type": "onetime",
"method": "POST",
"endpoint": "v1/scrapes",
"execute_at": "2025-01-15T10:00:00.000Z",
"expression_timezone": "UTC",
"created": "2025-01-15T09:00:00.000Z"
}
スケジュール一覧
チームのすべてのスケジュールを取得します。デフォルトでは、削除されたスケジュールはフィルタリングされます。include_deletedクエリパラメータを使用して、それらを含めることができます。
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
response = requests.get(f"{API_URL}/schedules", headers=headers)
result = response.json()
print(f"Total schedules: {result['count']}")
for schedule in result['schedules']:
print(json.dumps(schedule, indent=2))
# 削除されたスケジュールを含めるには:
# response = requests.get(f"{API_URL}/schedules?include_deleted=true", headers=headers)
スケジュールを取得
IDで単一のスケジュールを取得します。
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
schedule_id = "schedule_abc123xyz"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
response = requests.get(f"{API_URL}/schedules/{schedule_id}", headers=headers)
print(json.dumps(response.json(), indent=2))
スケジュールを削除
IDでスケジュールを削除します。これにより、将来の実行が停止されます。
import requests
import json
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
schedule_id = "schedule_abc123xyz"
headers = {
"Authorization": f"Bearer {API_KEY}"
}
response = requests.delete(f"{API_URL}/schedules/{schedule_id}", headers=headers)
print(json.dumps(response.json(), indent=2))
サポートされているエンドポイント
Olostepエンドポイント(短縮形式)
POSTリクエストの場合、Olostepエンドポイントの短縮形式を使用できます。システムは自動的にhttps://api.olostep.com/をプレフィックスとして追加します:
v1/scrapes - ウェブスクレイピングタスクをスケジュール
v1/batches - バッチ処理ジョブをスケジュール
v1/crawls - ウェブサイトクロール操作をスケジュール
v1/maps - マップデータ抽出をスケジュール
v1/answers - 回答生成をスケジュール
フルURL
エンドポイントにフルURLを提供することもできます。これは外部APIやWebhookに必要です:
import requests
import json
from datetime import datetime, timedelta
API_KEY = "<YOUR_API_KEY>"
API_URL = "https://api.olostep.com/v1"
# 外部APIへのコールをスケジュール
payload = {
"method": "POST",
"endpoint": "https://api.example.com/webhook",
"payload": {
"custom_field": "any value",
"data": {"nested": "structure"},
"timestamp": datetime.now().isoformat()
},
"execute_at": (datetime.now() + timedelta(hours=1)).isoformat(),
"expression_timezone": "UTC"
}
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json"
}
response = requests.post(f"{API_URL}/schedules", headers=headers, json=payload)
print(json.dumps(response.json(), indent=2))
payloadフィールドは任意のJSONオブジェクトを受け入れます - ターゲットエンドポイントに必要なように構造化できます。
Cron式の形式
Cron式は6つのフィールド形式を使用します:
minute hour day month day-of-week year
例:
0/3 * * * ? * - 3分ごと
0 10 * * ? * - 毎日10:00 AM
0 9 ? * MON * - 毎週月曜日の9:00 AM
0 0 1 * ? * - 毎月1日の真夜中
指定されていない場合、日付や曜日には?を使用します。
自然言語の例
自然言語を使用してスケジュールを記述できます。システムはそれを自動的にcron式に変換します:
- “every 3 minutes” →
0/3 * * * ? *
- “every day at 10am” →
0 10 * * ? *
- “every Monday at 9am” →
0 9 ? * MON *
- “every hour” →
0 * * * ? *
- “every week on Monday” →
0 0 ? * MON *
重要な注意事項
- 一度限りのスケジュールは実行後に自動的に削除されます
- 定期的なスケジュールは手動で削除されるまで続きます
- タイムゾーンは有効なIANAタイムゾーン識別子でなければなりません(例:“UTC”, “America/New_York”, “Europe/London”)
execute_atの日時は未来でなければなりません
- 自然言語の変換には再試行が必要な場合があります;システムは最大3回試行します
- 自然言語テキスト(
textパラメータ)を使用する場合、タイムゾーンはデフォルトで”UTC”になります
- スケジュールは指定されたペイロードでAPIコールを正確に実行します - 必要なJSON構造を渡すことができます
- POSTリクエストの場合、短縮形式のOlostepエンドポイント(
v1/scrapes, v1/batches, v1/crawls, v1/maps, v1/answers)は自動的にhttps://api.olostep.com/でプレフィックスされます
- 他のエンドポイントの場合、フルURLを提供してください
payloadは任意のデータ構造を含むことができます - ターゲットエンドポイントにそのまま送信されます
- 既に削除されたスケジュールを削除すると400エラーが返されます
スケジュール自体は無料です。スケジュールが実行されるときに実行されるAPIコールに対してのみ料金が発生します。例えば、スクレイプをスケジュールした場合、実行ごとに1クレジットが課金されます(またはパーサーやLLM抽出を使用する場合はそれ以上)。