エンドポイント

アプリの一覧を取得する

キーで見られるアプリを新しい順に返します。検索とページ送りにも対応しています。

GEThttps://www.setherion.com/api/v1/projects

プラン: すべてのプラン

ダッシュボードにあるアプリを、最近変更されたものから順に返します。自分のアプリ、所属しているワークスペースのアプリ、共有されたアプリが対象です。削除されたアプリは含まれません。ロールは問わず、閲覧者でも使えます。

アプリは100件ずつ返ります。totalは条件に合う件数を示し、続きがある間はtruncatedがtrueになり、nextOffsetが次のページの開始位置を示します。すべてを読まずに特定のアプリを探すには、qで検索します。

一覧の取得は無料で、クレジットは使いません。

リクエスト

bash
curl https://www.setherion.com/api/v1/projects \
  -H "Authorization: Bearer $SETHERION_API_KEY"

検索するには、qを追加します。アプリの名前や説明のどこにあっても、大文字小文字を区別せずに、その言葉に一致します。

bash
curl "https://www.setherion.com/api/v1/projects?q=coffee" \
  -H "Authorization: Bearer $SETHERION_API_KEY"

次のページを取得するには、offsetを追加して、前のレスポンスのnextOffsetを指定します。

bash
curl "https://www.setherion.com/api/v1/projects?offset=100" \
  -H "Authorization: Bearer $SETHERION_API_KEY"
パラメーター意味
q省略できます。アプリの名前または説明から探すテキストです。前後の空白は無視されます。最大100文字です。%や_は文字そのものとして扱われるので、50%を検索してもすべてのアプリに一致することはありません。
offset省略できます。ページの開始位置で、0から数えます。前のレスポンスのnextOffsetを指定します。最大6桁の整数です。

順序は最終変更の順で、同時刻の場合はアプリのIDで決まります。そのため、同じ瞬間に変更された二つのアプリが、ページをまたいで入れ替わることはありません。ページを取得している間に変更されたアプリは一覧の先頭に移動するので、ページは一度に続けて読んでください。

レスポンス

100件を超えるアプリがあるアカウントの最初のページです。

json
{
  "ok": true,
  "total": 142,
  "truncated": true,
  "offset": 0,
  "nextOffset": 100,
  "projects": [
    {
      "id": "7c1e4a52-9b0d-4f3e-8a61-2d5f0c9e7b14",
      "name": "Coffee shop",
      "description": "Website for a coffee shop in Leeds",
      "url": "https://coffee-shop.setherion.app",
      "updatedAt": "2026-09-19T10:42:07.000Z"
    },
    {
      "id": "0e9d3b6a-41c2-4d7f-b8a5-6f1c2a9d4e30",
      "name": "Booking tool",
      "description": null,
      "url": null,
      "updatedAt": "2026-09-18T16:03:51.000Z"
    }
  ]
}

(projects配列には最大100件が入ります。ここでは2件を示しています。)

フィールド型意味
totalnumber条件に合うアプリの件数です。このページにないものも含みます。
truncatedbooleanこのページのあとにもアプリが続く場合はtrueです。
offsetnumberこのページの開始位置です。
nextOffsetnumber or null次のページの開始位置です。最後のページではnullです。
idstringアプリのIDです。アプリの編集や公開に使います。
namestringダッシュボードに表示されるアプリの名前です。
descriptionstring or nullアプリの説明です。ある場合のみ入ります。
urlstring or nullアプリがオンラインにある場所です。公開されていない場合はnullです。
updatedAtstringアプリが最後に変更された日時で、ISO 8601形式です。

最後のページを過ぎてもエラーにはなりません。ok: trueで、projectsが空のリストで返ります。

すべてのページを読む

js
const base = 'https://www.setherion.com/api/v1/projects'
const headers = { Authorization: `Bearer ${process.env.SETHERION_API_KEY}` }

let offset = 0
const all = []
while (offset !== null) {
  const page = await fetch(`${base}?offset=${offset}`, { headers }).then(r => r.json())
  if (!page.ok) throw new Error(page.error)
  all.push(...page.projects)
  offset = page.nextOffset
}

エラー

ステータス発生する場合
400qが100文字を超えているか、offsetが整数ではありません。
401キーがない、間違っている、または無効にされています。
500一覧を読み取れませんでした。もう一度試してください。
正確なメッセージ
ステータスerror
400q is at most 100 characters.
400offset is a whole number, 0 or more.
500Could not list your apps.

このページは役に立ちましたか?

コミュニティに参加

質問、アイデア、ほかの人が作っているもの。