API
API Reference
REST endpoints for integrating Indxel with your tools and workflows.
Authentication
Two authentication methods depending on the endpoint:
- Bearer token — For CLI endpoints. Use your account API key (
ixu_...). Find it in Settings. - Session — For dashboard endpoints. Requires an authenticated browser session.
Bearer token examplebash
curl -X POST https://indxel.com/api/cli/push \
-H "Authorization: Bearer ixu_your_account_key" \
-H "Content-Type: application/json" \
-d @crawl-results.jsonEndpoints
| Method | Path | Description | Auth |
|---|---|---|---|
| POST | /api/cli/push | Push crawl results from CLI to dashboard | Bearer (account API key) |
| GET | /api/cli/plan | Get user's plan for an API key | Bearer (account API key) |
| GET | /api/projects | List all projects for the authenticated user | Session |
| POST | /api/projects | Create a new project (enforces plan limit) | Session |
| DELETE | /api/projects/[id] | Delete a project (cascades to checks and pages) | Session |
| GET | /api/projects/[id]/checks | Get checks, pages, analysis, and diff for a project | Session |
| POST | /api/checkout | Create a Stripe checkout session for plan upgrade | Session |
| POST | /api/billing/portal | Create a Stripe billing portal session | Session |
| POST | /api/webhooks/stripe | Handle Stripe subscription webhook events | Stripe signature |
POST /api/cli/push
The primary endpoint for sending crawl results to the dashboard. Used by indxel crawl --push.
Request
Request bodytypescript
{
"url": "https://mysite.com",
"pages": [
{
"url": "https://mysite.com/pricing",
"score": 91,
"grade": "A",
"errors": [],
"warnings": [{ "id": "alternates-hreflang", "message": "..." }],
"metadata": { "title": "...", "description": "..." },
"h1s": ["Pricing"],
"wordCount": 450,
"responseTimeMs": 120,
"structuredDataTypes": ["FAQPage"]
}
],
"averageScore": 88,
"grade": "B",
"totalPages": 47,
"totalErrors": 3,
"totalWarnings": 5,
"durationMs": 12000,
"analysis": {
"duplicateTitles": [],
"brokenInternalLinks": [],
"thinContentPages": [],
"orphanPages": []
}
}Response
Response (201)typescript
{
"checkId": "clx123...",
"projectId": "clx456...",
"message": "Crawl results saved — 47 pages"
}GET /api/cli/plan
Used by the CLI to check the user's plan and gate paid features.
Responsetypescript
{
"plan": "pro", // "free" | "pro" | "agency"
"maxProjects": 5,
"maxPagesPerCrawl": 1000,
"checksPerMonth": -1, // -1 = unlimited
"features": ["indexation", "monitoring", "alerts", "gsc"]
}Rate limits
API endpoints are rate-limited per API key. Free tier: 5 requests/minute. Pro: 60/minute. Agency: 300/minute.