List sources
curl --request GET \
--url https://woes.dev/api/v1/sources \
--header 'Authorization: Bearer <token>'const url = 'https://woes.dev/api/v1/sources';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://woes.dev/api/v1/sources"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://woes.dev/api/v1/sources', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "list",
"hasMore": false,
"sources": [
{
"object": "source",
"id": "5f6a7b8c-1111-4222-9333-123456789abc",
"name": "Public API",
"type": "openapi",
"status": "ready",
"inputUrl": "https://api.example.com/openapi.json",
"error": null,
"publicDocs": {
"published": true,
"slug": "public-api",
"url": "https://woes.dev/docs/public-api"
},
"createdAt": "2026-06-29T16:00:00.000Z",
"updatedAt": "2026-06-29T16:01:00.000Z"
}
]
}{
"code": "invalid_request",
"error": "Request body is invalid."
}{
"code": "unauthorized",
"error": "A valid workspace API key is required."
}{
"code": "insufficient_scope",
"error": "This API key is missing the required scope."
}{
"code": "rate_limited",
"error": "Too many API requests. Slow down and try again shortly."
}{
"code": "internal_error",
"error": "The API request could not be completed."
}List sources
Lists API context sources for the API key workspace.
GET
https://woes.dev
/
api
/
v1
/
sources
List sources
curl --request GET \
--url https://woes.dev/api/v1/sources \
--header 'Authorization: Bearer <token>'const url = 'https://woes.dev/api/v1/sources';
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));import requests
url = "https://woes.dev/api/v1/sources"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://woes.dev/api/v1/sources', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"object": "list",
"hasMore": false,
"sources": [
{
"object": "source",
"id": "5f6a7b8c-1111-4222-9333-123456789abc",
"name": "Public API",
"type": "openapi",
"status": "ready",
"inputUrl": "https://api.example.com/openapi.json",
"error": null,
"publicDocs": {
"published": true,
"slug": "public-api",
"url": "https://woes.dev/docs/public-api"
},
"createdAt": "2026-06-29T16:00:00.000Z",
"updatedAt": "2026-06-29T16:01:00.000Z"
}
]
}{
"code": "invalid_request",
"error": "Request body is invalid."
}{
"code": "unauthorized",
"error": "A valid workspace API key is required."
}{
"code": "insufficient_scope",
"error": "This API key is missing the required scope."
}{
"code": "rate_limited",
"error": "Too many API requests. Slow down and try again shortly."
}{
"code": "internal_error",
"error": "The API request could not be completed."
}Authorizations
Workspace API key that starts with woesk_. Paste your own key into the docs playground; never expose it in browser code.
Query Parameters
Filter sources by ingestion status.
Available options:
pending, processing, ready, failed Filter sources by source type.
Available options:
auto, openapi, json, url, website, text, graphql, postman, asyncapi, grpc, soap, github, notion, confluence, hubspot Maximum number of sources to return.
Required range:
1 <= x <= 100Response
Source list.
Allowed value:
"list"Hide child attributes
Hide child attributes
Allowed value:
"source"Available options:
openapi, json, url, website, text, graphql, postman, asyncapi, grpc, soap, github, notion, confluence, hubspot Available options:
pending, processing, ready, failed Last modified on July 4, 2026
Was this page helpful?
