API Documentation
Integrate KRT generation into your workflows
Quick Start
The KRT Maker API allows you to programmatically generate Key Resource Tables from bioRxiv preprints. All endpoints return JSON responses.
https://krt.xeradb.com/api/
Available Endpoints
GET Check DOI Availability
Check if a DOI is available in our local database.
Endpoint
GET /check-doi-local/
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
doi |
string | Yes | The DOI to check (e.g., "10.1101/2025.01.01.123456") |
Example Request
curl -X GET "https://krt.xeradb.com/api/check-doi-local/?doi=10.1101/2025.01.01.123456"
Example Response
{
"success": true,
"available": true,
"doi": "10.1101/2025.01.01.123456",
"title": "Example Research Paper",
"file_size": 245760,
"downloaded_at": "2025-01-15T10:30:00Z"
}
GET Get DOI Suggestions
Get random or filtered DOI suggestions from the database.
Endpoint
GET /doi-suggestions/
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
q |
string | No | Search query to filter suggestions |
limit |
integer | No | Number of suggestions to return (default: 10, max: 50) |
Example Request
curl -X GET "https://krt.xeradb.com/api/doi-suggestions/?q=cancer&limit=5"
Example Response
{
"success": true,
"suggestions": [
{
"doi": "10.1101/2025.01.01.123456",
"title": "Cancer Research Example",
"authors": "Smith J, Doe A",
"publication_date": "2025-01-01",
"file_size": 245760
}
],
"total_available": 15420,
"query": "cancer"
}
GET Get KRT Data by Session ID
Retrieve detailed KRT data for a specific extraction session.
Endpoint
GET /api/krt/{session_id}/
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id |
string | Yes | The session ID from KRT generation |
Example Request
curl -X GET "https://krt.xeradb.com/api/api/krt/abc123def456/"
Example Response
{
"success": true,
"session_id": "abc123def456",
"krt_data": [
{
"RESOURCE TYPE": "Antibody",
"RESOURCE NAME": "Anti-GFP antibody",
"SOURCE": "Abcam",
"IDENTIFIER": "ab13970",
"NEW/REUSE": "reuse",
"ADDITIONAL INFORMATION": "1:1000 dilution"
}
],
"summary": {
"total_resources": 15,
"new_resources": 3,
"reused_resources": 12,
"processing_time": 45.2,
"provider": "anthropic",
"model": "claude-3-5-sonnet-20241022"
}
}
GET Get KRT Data by DOI
Retrieve the best KRT data for a bioRxiv paper by DOI.
Endpoint
GET /api/krt/doi/{doi}/
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
doi |
string | Yes | The DOI of the bioRxiv paper (e.g., "10.1101/2025.01.01.123456") |
Example Request
curl -X GET "https://krt.xeradb.com/api/api/krt/doi/10.1101/2025.01.01.123456/"
Example Response
{
"success": true,
"doi": "10.1101/2025.01.01.123456",
"session_id": "abc123def456",
"krt_data": [...],
"summary": {
"total_resources": 15,
"new_resources": 3,
"reused_resources": 12,
"total_sessions": 3
},
"article_info": {
"title": "Example Research Paper",
"authors": "Smith J, Doe A et al.",
"publication_date": "2025-01-01",
"is_biorxiv_paper": true
}
}
GET Export KRT
Export a generated KRT in various formats.
Endpoint
GET /export/{session_id}/{format}/
Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
session_id |
string | Yes | The session ID from KRT generation |
format |
string | Yes | Export format: "json", "csv", or "excel" |
Example Request
curl -X GET "https://krt.xeradb.com/api/export/abc123def456/json/" -H "Accept: application/json"
AI Enhancement Features
Advanced AI-powered endpoints for intelligent resource identification, validation, and recommendations. These features address the 54% resource identification failure rate in biomedical literature.
POST AI RRID Suggestions
Get intelligent RRID suggestions for research resources using advanced AI analysis.
Endpoint
POST /api/ai/suggest-rrid/
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_name |
string | Yes | Name of the research resource |
resource_type |
string | No | Type of resource (antibody, cell line, software, etc.) |
vendor |
string | No | Resource vendor/manufacturer |
catalog_number |
string | No | Catalog or part number |
Example Request
curl -X POST "https://krt.xeradb.com/api/api/ai/suggest-rrid/" \
-H "Content-Type: application/json" \
-d '{
"resource_name": "anti-beta-tubulin",
"resource_type": "antibody",
"vendor": "Abcam",
"catalog_number": "ab6046"
}'
Example Response
{
"success": true,
"suggestions": [
{
"id": 123,
"suggested_rrid": "RRID:AB_2138153",
"confidence_score": 0.95,
"reasoning": "Exact match found in Antibody Registry",
"vendor": "Abcam",
"catalog_number": "ab6046"
}
],
"total_found": 1,
"response_time": 0.85
}
POST AI RRID Validation
Validate RRIDs across multiple scientific databases with real-time consistency checking.
Endpoint
POST /api/ai/validate-rrid/
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
rrid |
string | Yes | The RRID to validate (e.g., "RRID:AB_2138153") |
Example Request
curl -X POST "https://krt.xeradb.com/api/api/ai/validate-rrid/" \
-H "Content-Type: application/json" \
-d '{"rrid": "RRID:AB_2138153"}'
Example Response
{
"success": true,
"validation": {
"rrid": "RRID:AB_2138153",
"is_valid": true,
"status": "valid",
"confidence_score": 0.98,
"recommendations": [],
"last_checked": "2025-01-15T10:30:00Z",
"source": "fresh"
}
}
POST Smart Resource Recommendations
Get intelligent alternative resource recommendations based on functional similarity and availability.
Endpoint
POST /api/ai/recommend/
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
resource_name |
string | Yes | Name of the original resource |
resource_type |
string | No | Type of resource |
context |
object | No | Additional context (applications, requirements, etc.) |
Example Request
curl -X POST "https://krt.xeradb.com/api/api/ai/recommend/" \
-H "Content-Type: application/json" \
-d '{
"resource_name": "DAPI",
"resource_type": "chemical",
"context": {
"applications": ["nuclear staining", "fluorescence microscopy"]
}
}'
Example Response
{
"success": true,
"recommendations": [
{
"id": 456,
"recommended_resource": "Hoechst 33342",
"recommended_vendor": "Thermo Fisher",
"recommended_catalog": "H3570",
"recommendation_type": "functional_equivalent",
"confidence_score": 0.92,
"reasoning": "Alternative nuclear stain with similar spectral properties",
"availability_status": "in_stock"
}
],
"total_found": 1,
"response_time": 1.2
}
POST Conversational KRT Creation
Create KRT tables through natural language conversation with AI assistant.
Endpoint
POST /api/ai/chat/
Request Body
| Parameter | Type | Required | Description |
|---|---|---|---|
message |
string | Yes | Natural language message about resources |
session_id |
string | No | Conversation session ID (auto-generated if not provided) |
Example Request
curl -X POST "https://krt.xeradb.com/api/api/ai/chat/" \
-H "Content-Type: application/json" \
-d '{
"message": "I used anti-beta-tubulin antibody from Abcam, catalog ab6046",
"session_id": "chat_session_123"
}'
Example Response
{
"success": true,
"session_id": "chat_session_123",
"response": "I've added the anti-beta-tubulin antibody to your KRT. Would you like to add any more resources?",
"intent": "add_resource",
"krt_entries": [
{
"RESOURCE TYPE": "Antibody",
"RESOURCE NAME": "anti-beta-tubulin",
"SOURCE": "Abcam",
"IDENTIFIER": "Cat# ab6046",
"NEW/REUSE": "new",
"ADDITIONAL INFORMATION": ""
}
],
"needs_clarification": false,
"clarifications": [],
"response_time": 1.5
}
POST Browser Extension APIs
Specialized endpoints for the KRT Maker browser extension providing real-time assistance.
RRID Suggestions for Browser
POST /api/browser/suggest-rrid/
RRID Validation for Browser
POST /api/browser/validate-rrid/
Supported Platforms
- Overleaf & ShareLaTeX
- Google Docs
- Notion
- Editorial Manager
- PubMed Central
Authentication
Currently, the API endpoints are publicly accessible for read-only operations and AI enhancement features. Authentication will be required for KRT generation endpoints and advanced AI features in future versions.
Rate Limiting
To ensure fair usage and system stability, the following rate limits apply:
- DOI Checks: 100 requests per minute
- Suggestions: 50 requests per minute
- Exports: 20 requests per minute
- AI RRID Suggestions: 30 requests per minute
- AI Validation: 60 requests per minute
- AI Recommendations: 20 requests per minute
- Conversational AI: 10 requests per minute
- Browser Extension: 100 requests per minute
Error Codes
| HTTP Code | Error Type | Description |
|---|---|---|
200 |
Success | Request completed successfully |
400 |
Bad Request | Invalid parameters or malformed request |
404 |
Not Found | Requested resource not found |
429 |
Rate Limited | Rate limit exceeded, try again later |
500 |
Server Error | Internal server error occurred |
SDKs & Libraries
Official SDKs and client libraries are coming soon!
We're working on Python, R, and JavaScript libraries to make integration even easier. Follow our GitHub repository for updates.
Code Examples
Python Example
import requests
# Check DOI availability
response = requests.get('https://krt.xeradb.com/api/check-doi-local/',
params={'doi': '10.1101/2025.01.01.123456'})
if response.status_code == 200:
data = response.json()
if data['success'] and data['available']:
print(f"DOI available: {data['title']}")
# Get KRT data for this DOI
krt_response = requests.get(f'https://krt.xeradb.com/api/api/krt/doi/10.1101/2025.01.01.123456/')
if krt_response.status_code == 200:
krt_data = krt_response.json()
print(f"Found {krt_data['summary']['total_resources']} resources")
else:
print("DOI not available in database")
else:
print(f"Error: {response.status_code}")
JavaScript Example
// Get DOI suggestions
async function getDOISuggestions(query) {
try {
const response = await fetch('https://krt.xeradb.com/api/doi-suggestions/?q=' +
encodeURIComponent(query));
const data = await response.json();
if (data.success) {
console.log('Found suggestions:', data.suggestions);
return data.suggestions;
}
} catch (error) {
console.error('Error fetching suggestions:', error);
}
}
getDOISuggestions('cancer research');
cURL Example
# Get random DOI suggestions
curl -X GET "https://krt.xeradb.com/api/doi-suggestions/" \
-H "Accept: application/json"
# Check specific DOI
curl -X GET "https://krt.xeradb.com/api/check-doi-local/?doi=10.1101/2025.01.01.123456" \
-H "Accept: application/json"
Ready to Integrate?
Start building with our API to automate KRT generation in your research workflows.
Try the API Learn More