API Documentation

Integrate KRT generation into your workflows

Version 1.0

Quick Start

The KRT Maker API allows you to programmatically generate Key Resource Tables from bioRxiv preprints. All endpoints return JSON responses.

Base URL: 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/
Note: These endpoints use the same request/response format as the main AI endpoints but include additional browser-specific optimizations and CORS headers.
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.

AI Enhancement Features: The new AI endpoints are currently available without authentication for testing and demonstration purposes.
Coming Soon: API key authentication, rate limiting, and usage quotas for production use.

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
Rate limit headers are included in all responses for monitoring your usage.

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.

Python SDK R Package JavaScript Library

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