The NoodleSpy API is a JSON HTTP API. All requests and responses use application/json.
https://api.noodlespy.com
Every request requires an API key in the Authorization header:
Authorization: Bearer nspy_your_api_key_here
Create and manage API keys in your dashboard. Keys can be scoped as read-write or read-only.
| Method | Path | Description | Quota |
|---|---|---|---|
POST | /search/web | Web search via Google Custom Search | 1 utility call |
POST | /search/grounded | AI-generated answer with citations | 1 utility call |
POST | /fetch | Fetch a web page as markdown/HTML | 1 utility call |
POST | /runs | Create a research run | 1–3 credits |
GET | /runs | List research runs | — |
GET | /runs/{id} | Get a research run | — |
Send JSON in the request body with a Content-Type: application/json header:
curl -X POST https://api.noodlespy.com/search/web \
-H "Authorization: Bearer nspy_your_key" \
-H "Content-Type: application/json" \
-d '{"query": "user onboarding pain points"}'
Responses wrap data in a data key for single-resource endpoints:
{
"data": { ... }
}
List endpoints include pagination:
{
"data": [ ... ],
"next_cursor": "eyJ0..."
}
Every response includes remaining quota in headers:
X-Usage-Remaining-Credits: 28
X-Usage-Remaining-Utility: 994
Errors return a structured JSON body:
{
"error": {
"code": "invalid_argument",
"message": "query is required"
}
}
| HTTP Status | Meaning |
|---|---|
400 | Bad request — invalid parameters |
401 | Unauthorized — missing or invalid API key |
404 | Not found |
422 | Unprocessable — valid request but cannot be completed (e.g., fetch timeout) |
429 | Quota exhausted — wait for your billing cycle to reset |
504 | Gateway timeout — upstream request took too long |
List endpoints use cursor-based pagination. Pass cursor and limit as query parameters:
GET /runs?limit=10&cursor=eyJ0...
The response includes next_cursor if there are more results. When next_cursor is absent, you've reached the end.