The Enterprise search API provides programmatic access to search and retrieve documents belonging to your organization. It’s perfect for integrating Scribe’s powerful document search into your applications.
Key features:
- Document search: Find documents with advanced filtering
- Team management: Access team information for filtering
- Real-time results: Get up-to-date document information
The search API is available to Enterprise Grid and Global customers. Reach out to Sales if you’re interested in learning more.
💡 Working with Scribe in your AI tools? The Scribe
MCP may be the better option. Learn more
here
Implementation
Authentication
All endpoints require a valid API key in the X-API-Key header.
Getting your API key
- Visit Scribe settings
- Generate a new API key
- Copy the key (starts with
sc_), you will be only be able to see/copy it once. - Keep it secure!
API reference
Base URL
<https://public-api.scribehow.com>
Authentication header
X-API-Key: sc_your_api_key_here
Search documents
Search for documents across your organization with powerful filtering options. Returns a maximum of 15 results per request.
Endpoint: POST /v1/search/
Request parameters
| Parameter | Type | Required | Description |
search |
string | ✅ | Search terms (minimum 1 character) |
type |
string | ❌ | Document type: page or scribe
|
team_ids |
array | ❌ | List of team IDs to filter by |
sort_by |
string | ❌ | Sort order (default: relevance) |
created_at__gte |
string | ❌ | Created after date (ISO-8601) |
created_at__lte |
string | ❌ | Created before date (ISO-8601) |
updated_at__gte |
string | ❌ | Updated after date (ISO-8601) |
updated_at__lte |
string | ❌ | Updated before date (ISO-8601) |
Sort options
relevanceMost relevant first (default)created_atOldest firstcreated_atNewest firstupdated_atLeast recently updated firstupdated_atMost recently updated first
Document types
pagePagesscribeScribe documents
Examples
Basic search
# Python
import requests
response = requests.post(
"<https://public-api.scribehow.com/v1/search/>",
headers={"X-API-Key": "sc_your_api_key_here"},
json={"search": "security protocols"},
)
documents = response.json()// JavaScript
const response = await fetch('<https://public-api.scribehow.com/v1/search/>', {
method: 'POST',
headers: {
'X-API-Key': 'sc_your_api_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({
search: 'user authentication'
}),
});
const documents = await response.json();# curl
curl -X POST "<https://public-api.scribehow.com/v1/search/>" \\
-H "Content-Type: application/json" \\
-H "X-API-Key: sc_your_api_key_here" \\
-d '{ "search": "user authentication"}'
Advanced search with filters
# Python
import requests
response = requests.post(
"<https://public-api.scribehow.com/v1/search/>",
headers={"X-API-Key": "sc_your_api_key_here"},
json={
"search": "security protocols",
"type": "page",
"sort_by": "-updated_at",
"created_at__gte": "2024-01-01T00:00:00Z",
},
)
documents = response.json()// JavaScript
const response = await fetch('<https://public-api.scribehow.com/v1/search/>', {
method: 'POST',
headers: {
'X-API-Key': 'sc_your_api_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({
search: 'security protocols',
type: 'page',
sort_by: '-updated_at',
created_at__gte: '2024-01-01T00:00:00Z',
}),
});
const documents = await response.json();# curl
curl -X POST "<https://public-api.scribehow.com/v1/search/>" \\
-H "Content-Type: application/json" \\
-H "X-API-Key: sc_your_api_key_here" \\
-d '{
"search": "security protocols",
"type": "page",
"sort_by": "-updated_at",
"created_at__gte": "2024-01-01T00:00:00Z"
}'
Search by team
# Python
import requests
team_ids = ["550e8400-e29b-41d4-a716-446655440000"]
response = requests.post(
"<https://public-api.scribehow.com/v1/search/>",
headers={"X-API-Key": "sc_your_api_key_here"},
json={"search": "security protocols", "team_ids": team_ids, "type": "scribe"},
)
documents = response.json()// JavaScript
const teamIds = ['550e8400-e29b-41d4-a716-446655440000'];
const response = await fetch('<https://public-api.scribehow.com/v1/search/>', {
method: 'POST',
headers: {
'X-API-Key': 'sc_your_api_key_here',
'Content-Type': 'application/json',
},
body: JSON.stringify({
search: 'security protocols',
team_ids: teamIds,
type: 'scribe',
}),
});
const documents = await response.json();# curl
curl -X POST "<https://public-api.scribehow.com/v1/search/>" \\
-H "Content-Type: application/json" \\
-H "X-API-Key: sc_your_api_key_here" \\
-d '{
"search": "security protocols",
"team_ids": [
"550e8400-e29b-41d4-a716-446655440000"
],
"type": "scribe"
}'
Response format (JSON)
[{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "User Authentication Guide",
"description": "Complete guide for implementing user authentication",
"type": "page",
"link": "<https://scribehow.com/shared/User_Authentication_Guide__abc123>",
"team": {
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Engineering Team"
},
"user_owner": {
"id": "770e8400-e29b-41d4-a716-446655440002",
"email": "john.doe@company.com",
"name": "John Doe"
},
"actions": [{
"id": "880e8400-e29b-41d4-a716-446655440003",
"description": "Click the login button"
}],
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-02-20T14:45:00Z"
}]List teams
Get all teams associated with your API key. Use team IDs to filter search results.
Endpoint: GET /v1/teams/
Examples
# Python
import requests
response = requests.get(
"<https://public-api.scribehow.com/v1/teams/>",
headers={"X-API-Key": "sc_your_api_key_here"},
)
teams = response.json()// JavaScript
const response = await fetch('<https://public-api.scribehow.com/v1/teams/>', {
headers: {
'X-API-Key': 'sc_your_api_key_here'
},
});
const teams = await response.json();# curl curl -X GET "<https://public-api.scribehow.com/v1/teams/>" \\ -H "X-API-Key: sc_your_api_key_here"
Response format (JSON)
[
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Engineering Team"
},
{
"id": "660e8400-e29b-41d4-a716-446655440001",
"name": "Product Team"
}
]Best practices
Search tips
- Be specific: Use detailed search terms to get the most relevant results from the 15 returned
- Use filters: Combine type and team filters to narrow down results
- Sort strategically: Use
updated_atto find recent content first - Note: Maximum 15 results returned per search
Security
- Never expose API keys in client-side code
- Monitor usage to detect unusual activity
Helpful resources
- API key management: Scribe Settings
- Documentation:
- View this Scribe for help implementing the API with Copilot: