Technical
+961 70 991 992General & Meetings
Your data belongs in whatever dashboard your team already lives in. 7 read endpoints, plain JSON, no SDK required.
Mint a key in the dashboard under API Keys, then send it as a bearer token. That is the whole setup.
# List every keyword you are tracking curl -H "Authorization: Bearer sk_your_key_here" \ "https://seo.newinterval.com/api/v1/keywords?project_id=3"
{
"data": [
{
"id": 812,
"keyword": "seo platform lebanon",
"project_id": 3,
"country": "LB",
"location": "Beirut",
"current_position": 4,
"last_checked": "2026-07-30 06:12:03"
}
],
"meta": { "count": 1, "project_id": 3 }
}
Every response uses the same envelope: results under data, context under
meta. Errors come back as {error, code, message} with a
matching HTTP status. There is nothing else to learn.
All GET. All scoped to what the key's user is allowed
to see — a key issued to someone with access to one project cannot read another.
| Endpoint | Returns | Filters |
|---|---|---|
/api/v1/ |
The endpoint index — useful as a connectivity check. | — |
/api/v1/projects |
Projects the key's user can access. | — |
/api/v1/keywords |
Tracked keywords with their current positions. | project_id, status, search |
/api/v1/positions |
Full rank history for a keyword. | keyword_id, from, to |
/api/v1/gsc |
Search Console clicks, impressions and positions. | project_id, period_days |
/api/v1/alerts |
Recent alerts. | unread |
/api/v1/credits |
Current balance plus the ten most recent ledger rows. | — |
The full key appears exactly once, when you create it. After that only its first few characters are displayed. We store a keyed hash, never the key itself — so a database leak does not hand anyone your API access.
Per key, counted server-side. Every response carries
X-RateLimit-Limit and X-RateLimit-Remaining so you can
back off before you hit the wall rather than after.
Give a key an expiry date when you create it, or revoke it instantly. Issue one key per integration and you can cut off exactly one thing when you need to.
Reading data you already collected does not spend credits. Poll as often as the rate limit allows.
Send the key as a bearer token:
Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxx
If your client cannot set headers, a ?token= query parameter works as a
fallback — but prefer the header, since query strings end up in server logs and
browser history.
API access is included on the Agency and Network plans. See the comparison.
Start on Agency, mint a key and have your rankings in your own dashboard the same afternoon.