メインコンテンツへスキップ

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抽出を使用する場合はそれ以上)。