APIAPI referenceKnowledge base
List Documents
Knowledge documents of the store (newest first).
GET/v1/stores/{store_id}/knowledge/documentsScope knowledge:read
- Scope:
knowledge:read(scopes and plan access) - Rate limit: 600 requests/min per API key (test keys: 60/min) (rate limits)
Knowledge documents of the store (newest first).
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| store_idrequired | path | string | |
| limit | query | integer | Page size |
| cursor | query | string | null | Cursor from the previous page |
Example request
curl -X GET "https://api.shopassist.coec.dk/v1/stores/sto_01j8000000e008000000000000/knowledge/documents" \
-H "Authorization: Bearer $SHOPASSIST_API_KEY"Response 200 (Page_KnowledgeDocument_)
| Field | Type | Description |
|---|---|---|
| datarequired | KnowledgeDocument[] | |
| data[].chunk_countrequired | integer | |
| data[].content_previewrequired | string | |
| data[].doc_typerequired | string (enum) | one of policy, page, faq, file, blog, size_chart, other |
| data[].fetched_atrequired | string | null | format date-time |
| data[].idrequired | string | pattern `^kdoc_[0-9a-hjkmnp-tv-z]{26}$` |
| data[].injection_flagsrequired | InjectionFlag[] | |
| data[].injection_flags[].excerptrequired | string | |
| data[].injection_flags[].rulerequired | string | |
| data[].localerequired | string | null | |
| data[].pending_changerequired | PendingChange | null | |
| data[].pending_change.diff_previewrequired | string | |
| data[].pending_change.reasonrequired | "off_domain" | "crawled_policy" | "content_changed" | "mass_change" | |
| data[].pending_change.sincerequired | string | format date-time |
| data[].policy_typerequired | string (enum) | null | one of refund, return, shipping, privacy, terms, contact, legal_notice, subscription, withdrawal, other |
| data[].review_statusrequired | "approved" | "pending_review" | "rejected" | |
| data[].source_idrequired | string | pattern `^ksrc_[0-9a-hjkmnp-tv-z]{26}$` |
| data[].statusrequired | "active" | "excluded" | "error" | |
| data[].titlerequired | string | |
| data[].updated_atrequired | string | format date-time |
| data[].urlrequired | string | null | format uri · ≤ 2048 characters |
| has_morerequired | boolean | |
| next_cursorrequired | string | null | Opaque cursor for the next page; null on the last page |
{
"data": [
{
"chunk_count": 1,
"content_preview": "string",
"doc_type": "policy",
"fetched_at": "2026-09-28T10:15:30.123Z",
"id": "kdoc_01j8000000e008000000000000",
"injection_flags": [
{
"excerpt": "string",
"rule": "string"
}
],
"locale": "da-DK",
"pending_change": {
"diff_preview": "string",
"reason": "off_domain",
"since": "2026-09-28T10:15:30.123Z"
},
"policy_type": "refund",
"review_status": "approved",
"source_id": "ksrc_01j8000000e008000000000000",
"status": "active",
"title": "string",
"updated_at": "2026-09-28T10:15:30.123Z",
"url": "https://shop.example/products/linen-shirt"
}
],
"has_more": true,
"next_cursor": "string"
}Errors
Every error uses the error envelope; the code field is stable.
400Bad Request401Unauthorized403Forbidden404Not Found422Unprocessable Content429Too Many Requests
Last updated on