Create source
curl --request POST \
--url https://woes.dev/api/v1/sources \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://api.example.com/openapi.json"
}
'const url = 'https://woes.dev/api/v1/sources';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://api.example.com/openapi.json'})
};
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"
payload = { "url": "https://api.example.com/openapi.json" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://api.example.com/openapi.json'})
};
fetch('https://woes.dev/api/v1/sources', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"source": {
"object": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"publicDocs": {
"enabled": true,
"published": true,
"slug": "<string>",
"url": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"inputUrl": "<string>",
"error": "<string>",
"auth": {
"configured": true,
"hasSecret": true,
"lastError": "<string>",
"lastVerifiedAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"type": "<string>"
}
},
"counts": {
"chunks": 123,
"documents": 123,
"endpoints": 123
},
"documents": [
{
"id": "<string>",
"kind": "<string>",
"title": "<string>"
}
],
"endpoints": [
{
"id": "<string>",
"method": "<string>",
"path": "<string>"
}
]
}{
"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": "conflict",
"error": "A record with this identifier already exists."
}{
"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."
}Create source
Creates and ingests a new API context source. Provide a URL or pasted content.
POST
https://woes.dev
/
api
/
v1
/
sources
Create source
curl --request POST \
--url https://woes.dev/api/v1/sources \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"url": "https://api.example.com/openapi.json"
}
'const url = 'https://woes.dev/api/v1/sources';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://api.example.com/openapi.json'})
};
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"
payload = { "url": "https://api.example.com/openapi.json" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: 'https://api.example.com/openapi.json'})
};
fetch('https://woes.dev/api/v1/sources', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"source": {
"object": "<string>",
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"name": "<string>",
"publicDocs": {
"enabled": true,
"published": true,
"slug": "<string>",
"url": "<string>"
},
"createdAt": "2023-11-07T05:31:56Z",
"updatedAt": "2023-11-07T05:31:56Z",
"inputUrl": "<string>",
"error": "<string>",
"auth": {
"configured": true,
"hasSecret": true,
"lastError": "<string>",
"lastVerifiedAt": "2023-11-07T05:31:56Z",
"status": "<string>",
"type": "<string>"
}
},
"counts": {
"chunks": 123,
"documents": 123,
"endpoints": 123
},
"documents": [
{
"id": "<string>",
"kind": "<string>",
"title": "<string>"
}
],
"endpoints": [
{
"id": "<string>",
"method": "<string>",
"path": "<string>"
}
]
}{
"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": "conflict",
"error": "A record with this identifier already exists."
}{
"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.
Body
application/json
Response
Source created and ingested.
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?
⌘I
