Start your launch Sign in
APIs 3 min read

Using the Nilkick API

Everything the warmer and the scout decide, over HTTP: pull the day's tasks and drafted copy with an API key, act with your own hands, and write results back.

Last updated July 26, 2026

The API hands your own scripts the same judgment the app runs on: which subreddit an account should join today, which thread deserves a reply this morning, and the words to say. It is built for people who already have hands, a fleet of Reddit accounts in an anti-detect browser, their own Playwright scripts, their own scheduler, and want a brain driving them.

01 · The shapeWhat the API is

Setup stays in the dashboard: the intake wizards ask the niche and expertise questions that make the output good, and that is worth doing once per account with a human. The API is the daily loop that follows. Your script pulls the day’s tasks, fetches drafts as it needs them, and reports what happened, and everything you report feeds the next day’s judgment.

You do the posting

Nilkick decides and drafts; it never posts, holds credentials, or automates a browser. What you publish, when, and how stays on your side, which also keeps every account relationship yours.

02 · KeysGet a key

Open the account menu in the app and choose API & Webhooks. Keys look like nk_live_ followed by 43 random characters, and the full value is shown exactly once: we store a hash, not the key, so nobody (including us) can read it back later. The list shows only the first characters, plus when each key was last used.

A key authenticates as your whole account, so issue one per integration and name it after the thing that holds it. Rotating a key issues a replacement and revokes the original in one step; revoking is immediate and permanent.

03 · First requestYour first request

The base URL is https://api.nilkick.com/v1. Send the key as a bearer token on every request:

Your first request
curl https://api.nilkick.com/v1/warmups \
  -H "Authorization: Bearer nk_live_YOUR_KEY"
Response
{
	"warmups": [
		{
			"id": "3f2b7c1e-9d5a-4f42-8f6e-2a91d0c47b13",
			"username": "quiet_builder",
			"status": "active",
			"day": 6,
			"today": { "done": 1, "total": 2 },
			"created_at": "2026-07-12T03:41:09.000Z"
		}
	]
}

GET /v1/scouts mirrors it for scouts, including each scout’s project and how many new conversations landed today. The reddit username on every row is the natural join key to your own profile manager, since your profiles are usually named after the accounts they hold. From there, the whole daily flow lives in the API task loop.

04 · ErrorsWhen something goes wrong

Every non-2xx response has one shape, and the code values are stable:

The error envelope
{
	"error": {
		"code": "invalid_request",
		"message": "limit must be an integer between 1 and 200."
	}
}

Codes you will meet: unauthorized (401, missing or revoked key), invalid_request (400, the message names the offending field), not_found (404, which also covers “not yours”), conflict (409, the action does not fit the task’s state), rate_limited (429), and internal (500, our side).

05 · LimitsRate limits

Two budgets apply, both counted per account, so issuing more keys never widens them: 240 requests per minute across the whole API, plus a separate 20 per minute on the draft endpoint (the one call that spends model time). A 429 comes with Retry-After: 60; wait it out and retry. Treat the numbers as approximate rather than exact, and design for far less: a fleet polling once per account per day barely registers.

06 · CompatibilityThe compatibility promise

The namespace is versioned (/v1/) and changes are additive only: we add fields and endpoints, we do not remove or repurpose what your script already depends on. If a breaking change is ever unavoidable it arrives as a new version, not a surprise.


FAQ

Common questions

No. Any account can issue a key and call every endpoint. You pay only for the products that create the work: warm-up credits and Scout subscriptions. The one call that spends real compute, drafting, is bounded by what those products already generate.