REST API
Use REST when you want explicit HTTP contracts, predictable request/response behavior, and easy ingestion into your own orchestration layer.
Authentication
All API requests require a Bearer token in the Authorization header. Create a key at /developers/keys.
curl -H "Authorization: Bearer s2s_YOUR_KEY" \
"https://sciencetostartup.com/api/v1/free/papers?q=robotics"Keep your key secret
Base URL
All endpoints are served from a single base URL. Use HTTPS for all requests.
https://sciencetostartup.com/apiAPI versioning
/api/v1/free/* for public access. Research-grade endpoints use /api/research/*.Paper Search
Search indexed papers by query string. Returns ranked results with titles, abstracts, and metadata.
GET /api/v1/free/papers| Name | Type | Required | Description |
|---|---|---|---|
q | string | Yes | Search query (e.g. "voice agents") |
limit | number | No | Max results to return (default: 10, max: 50) |
offset | number | No | Pagination offset (default: 0) |
category | string | No | Filter by arXiv category (e.g. "cs.AI") |
curl -H "Authorization: Bearer s2s_YOUR_KEY" \
"https://sciencetostartup.com/api/v1/free/papers?q=robotics&limit=5"Tip
q with category to narrow results to a specific arXiv domain.Signal Canvas
Retrieve the full Signal Canvas for a paper, including commercial signals, reproduction feasibility, and evidence chains.
GET /api/research/signal-canvas/{paper_ref}| Name | Type | Required | Description |
|---|---|---|---|
paper_ref | string | Yes | arXiv paper reference (e.g. "2604.18478v1") |
curl -H "Authorization: Bearer s2s_YOUR_KEY" \
"https://sciencetostartup.com/api/research/signal-canvas/2604.18478v1"Workspaces
Workspace endpoints let you manage collections of papers, run analyses, and collaborate on research pipelines. Use /api/developers/whoami to verify your actor context.
# Verify your identity
curl -H "Authorization: Bearer s2s_YOUR_KEY" \
"https://sciencetostartup.com/api/developers/whoami"/api/developers/whoami first to confirm your key has the required permissions.Error Handling
All errors follow a consistent JSON format with an HTTP status code, a machine-readable error code, and a human-readable message.
{
"error": {
"code": "INVALID_API_KEY",
"message": "The provided API key is invalid or expired.",
"status": 401
}
}| Status | Code | Description |
|---|---|---|
| 400 | BAD_REQUEST | Missing or invalid parameters |
| 401 | INVALID_API_KEY | Missing, invalid, or expired API key |
| 404 | NOT_FOUND | Resource does not exist |
| 429 | RATE_LIMITED | Too many requests |
| 500 | INTERNAL_ERROR | Unexpected server error |
Rate Limits
API requests are rate-limited per key. When you exceed the limit, requests return 429 Too Many Requests. Check the response headers for your current usage.
| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum requests per window |
X-RateLimit-Remaining | Requests remaining in current window |
X-RateLimit-Reset | Unix timestamp when the window resets |
Handling rate limits
X-RateLimit-Reset header tells you exactly when to retry.OpenAPI Spec
The full API contract is available as an OpenAPI 3.0 JSON document. Import it into any API client like Postman, Insomnia, or use it to generate typed clients.
curl "https://sciencetostartup.com/api/openapi.json"