| name | slite-knowledge-base |
| description | Slite knowledge base API — ask questions, search notes, retrieve content, manage users and groups, and audit knowledge health via the REST API |
Slite Knowledge Base
Slite is a team knowledge base with AI-powered search. Use this skill to query notes, ask questions, search content, and audit knowledge health via the Slite API.
Setup
Generate an API key
- Open the organization menu (top left of the Slite app)
- Click Settings
- In the left panel, click API
- Click Create a new key and follow the prompts
- Copy the key immediately — it is only shown once
You can create multiple keys and revoke unused ones from the same page.
Configure
export SLITE_API_KEY="YOUR_API_KEY"
All endpoints use Bearer token auth against https://api.slite.com/v1.
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/<endpoint>"
Authentication check
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/me" | jq .
Returns: displayName, email, organizationName, organizationDomain.
Ask (AI-powered Q&A)
Ask a question
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/ask?question=How+do+we+handle+on-call+rotations" | \
jq '{answer, sources: [.sources[] | {title, url}]}'
Scoped to a parent note
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/ask?question=What+is+our+deploy+process&parentNoteId=NOTE_ID" | \
jq '{answer, sources: [.sources[] | {title, url}]}'
With a specific assistant
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/ask?question=YOUR_QUESTION&assistantId=ASSISTANT_ID" | \
jq '{answer, sources: [.sources[] | {id, title, url, updatedAt}]}'
Notes
List notes
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes" | \
jq '{total, hasNextPage, notes: [.notes[] | {id, title, updatedAt}]}'
Filter and sort
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes?ownerId=USER_ID" | jq '.notes[] | {id, title}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes?parentNoteId=NOTE_ID" | jq '.notes[] | {id, title}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes?orderBy=lastEditedAt_DESC" | jq '.notes[] | {id, title}'
Order options: lastEditedAt_DESC, lastEditedAt_ASC, listPosition_DESC, listPosition_ASC.
Paginate through notes
RESPONSE=$(curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes")
echo "$RESPONSE" | jq '{total, hasNextPage}'
CURSOR=$(echo "$RESPONSE" | jq -r '.nextCursor')
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes?cursor=$CURSOR" | jq '.notes[] | {id, title}'
Get note by ID
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes/NOTE_ID" | jq '{id, title, content}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes/NOTE_ID?format=md" | jq '{id, title, content}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes/NOTE_ID?format=html" | jq '{id, title, content}'
Format options: md, html, sliteml.
Get note children
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes/NOTE_ID/children" | \
jq '{total, hasNextPage, notes: [.notes[] | {id, title}]}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/notes/NOTE_ID/children?cursor=CURSOR" | jq '.notes[] | {id, title}'
Search
Basic search
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/search-notes?query=deployment+guide" | \
jq '.hits[] | {id, title, highlight}'
Search with filters
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/search-notes?query=onboarding&parentNoteId=NOTE_ID" | \
jq '.hits[] | {id, title}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/search-notes?query=api&reviewState=Verified" | \
jq '.hits[] | {id, title}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/search-notes?query=runbook&depth=2" | \
jq '.hits[] | {id, title}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/search-notes?query=old+process&includeArchived=true" | \
jq '.hits[] | {id, title}'
Review states: Verified, Outdated, VerificationRequested, VerificationExpired.
Search with pagination
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/search-notes?query=meeting+notes&page=0&hitsPerPage=20" | \
jq '{nbPages, page, hits: [.hits[] | {id, title}]}'
Search with highlight tags
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/search-notes?query=deploy&highlightPreTag=**&highlightPostTag=**" | \
jq '.hits[] | {title, highlight}'
Filter by edit date
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/search-notes?query=roadmap&lastEditedAfter=2026-01-01T00:00:00Z" | \
jq '.hits[] | {id, title}'
Knowledge management
List all notes
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/knowledge-management/notes?first=50" | \
jq '{total, hasNextPage, notes: [.notes[] | {id, title}]}'
Filter by review state
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/knowledge-management/notes?reviewStateList=Outdated&first=50" | \
jq '.notes[] | {id, title}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/knowledge-management/notes?reviewStateList=VerificationRequested&first=50" | \
jq '.notes[] | {id, title}'
Filter by owner or channel
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/knowledge-management/notes?ownerIdList=USER_ID&first=50" | \
jq '.notes[] | {id, title}'
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/knowledge-management/notes?channelIdList=CHANNEL_ID&first=50" | \
jq '.notes[] | {id, title}'
Recent notes
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/knowledge-management/notes?sinceDaysAgo=7&first=50" | \
jq '.notes[] | {id, title}'
Public notes
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/knowledge-management/notes/public?first=50" | \
jq '.notes[] | {id, title}'
Inactive notes
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/knowledge-management/notes/inactive?first=50" | \
jq '.notes[] | {id, title}'
Empty notes
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/knowledge-management/notes/empty?first=50" | \
jq '.notes[] | {id, title}'
Users
Search users
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/users?query=john" | \
jq '.users[] | {id, displayName, email}'
Include archived users
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/users?query=jane&includeArchived=true" | \
jq '.users[] | {id, displayName, email, archivedAt}'
Get user by ID
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/users/USER_ID" | \
jq '{id, displayName, email, organizationRole, isGuest}'
Groups
Search groups
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/groups?query=engineering" | \
jq '.groups[] | {id, name, description}'
Get group by ID
curl -s -H "Authorization: Bearer $SLITE_API_KEY" \
"https://api.slite.com/v1/groups/GROUP_ID" | jq '{id, name, description}'
Troubleshooting
| Problem | Fix |
|---|
| 401 Unauthorized | Check SLITE_API_KEY is set and valid. Regenerate at Settings → API |
| 422 Validation error | Check required parameters. query is required for /users and /groups |
| 429 Rate limited | Back off and retry. Reduce request frequency |
| 404 Not found | Verify the note/user/group ID exists and you have access |
| Empty search results | Try broader query terms, check parentNoteId scope, try includeArchived=true |
| Pagination not working | Use nextCursor from response for notes, page param for search |
Tips
- The
/ask endpoint uses AI to answer from your knowledge base — great for natural language queries
- Use
format=md when fetching note content for the most readable output
- Knowledge management endpoints help audit content health: find inactive, empty, or outdated notes
- Paginated endpoints return
hasNextPage and nextCursor — loop until hasNextPage is false
- Search supports
hitsPerPage up to 100 (use page starting at 0)
- Knowledge management endpoints accept
first up to 50 per page