엔드포인트
내 앱 목록 조회
내 키로 볼 수 있는 앱을 최신순으로, 검색과 페이지와 함께 돌려줘요.
GET
https://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이에요. 최대 여섯 자리의 정수예요. |
정렬은 마지막 변경 순서이고, 같은 순간에 바뀐 앱은 앱의 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개의 항목이 들어 있어요. 여기서는 두 개만 보여 줘요.)
| 필드 | 타입 | 의미 |
|---|---|---|
total | number | 조건에 맞는 앱의 수로, 이 페이지에 없는 것도 포함해요. |
truncated | boolean | 이 페이지 뒤에 앱이 더 있으면 true예요. |
offset | number | 이 페이지가 시작되는 위치예요. |
nextOffset | number or null | 다음 페이지가 시작되는 위치예요. 마지막 페이지에서는 null이에요. |
id | string | 앱의 id예요. 앱을 수정하거나 게시할 때 쓰세요. |
name | string | 대시보드에 표시되는 앱의 이름이에요. |
description | string or null | 앱의 설명이에요. 설명이 있으면 들어 있어요. |
url | string or null | 앱이 온라인에 있는 주소예요. 게시되지 않았으면 null이에요. |
updatedAt | string | 앱이 마지막으로 바뀐 시각이에요. 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
}오류
| 상태 | 경우 |
|---|---|
400 | q가 100자보다 길거나, offset이 정수가 아니에요. |
401 | 키가 없거나 틀렸거나 폐기되었어요. |
500 | 목록을 읽을 수 없었어요. 다시 시도하세요. |
정확한 문장
| 상태 | error |
|---|---|
400 | q is at most 100 characters. |
400 | offset is a whole number, 0 or more. |
500 | Could not list your apps. |
이 페이지가 도움이 됐나요?
