Docs/Skills/Captcha Generator Skill

Captcha Generator Skill

Generate captchas

OperationalCredits 10 per callp50 388msData Generation

Overview

Call it with no parameters for five random letters in a 200×70 GIF, plus the solution, an id and a 24-hour download link. Set type=math for a question like 7 + 4 = ?, and tune length, character set, difficulty, size and format to fit your form. Add audio=true for a spoken version in a clear recorded voice, with optional background noise. Audio and math are free on every plan; paid plans can also set colors. Keep the solution on your server and compare it with what the visitor types, ignoring case.

Live Test Captcha Generator Skill Skill →

The tool

Once your client is connected to the VerveKit server, this appears in its tool list as CaptchaGeneratorSkill. It is read-only and open-world — it fetches and never mutates anything on your side — so most clients call it without asking you to confirm.

Tool call
{
  "name": "CaptchaGeneratorSkill",
  "arguments": {}
}

Connecting

One server URL covers every skill in the catalog, including this one. Authorization is OAuth: the client opens a browser once, and there is no key to paste into a config file.

{
  "mcpServers": {
    "vervekit": {
      "url": "https://api.vervekit.com/v1/mcp"
    }
  }
}

Per-client setup — Claude, Cursor, VS Code, ChatGPT — is on the MCP setup page.

Arguments

These are the properties on the tool's inputSchema, so a well-behaved client validates them before the call is made. Premium arguments are accepted on every plan but only take effect on plans that include them.

ArgumentTypeDescription
typeOptionalstringtext draws random characters; math draws an arithmetic question such as 7 + 4 = ? and the solution is the answer. length, charset and unambiguous apply to text only
textmath
default text
lengthOptionalintegerNumber of characters in the captcha (4-8) (text only)
default 5 · range 4–8
charsetOptionalstringCharacters to draw from: lowercase letters, uppercase letters, mixed-case letters, digits, or letters and digits (text only)
lowercaseuppercasemixeddigitsalphanumeric
default lowercase
unambiguousOptionalbooleanLeave out characters that are easy to misread: 0, O, o, 1, l, I, i and Q (text only)
difficultyOptionalstringDistortion level. Harder levels add more rotation, warp, noise lines, background texture and a line through the text. For type=math it also sets the numbers: small additions and subtractions at easy, larger ones at medium, multiplication at hard. It does not change the audio; see audioNoise
easymediumhard
default medium
widthOptionalintegerImage width in pixels (100-400)
default 200 · range 100–400
heightOptionalintegerImage height in pixels (40-150)
default 70 · range 40–150
formatOptionalstringImage format
gifpng
default gif
colorOptionalPremiumstringText color as a hex code (e.g. #1d3557). By default each character gets a random dark color
backgroundColorOptionalPremiumstringBackground color as a hex code (e.g. #ffffff)
default #ffffff
audioOptionalbooleanAlso return a spoken WAV version of the same challenge in audioURL, for visitors who cannot see the image. Text captchas are read character by character; math questions are read aloud without the answer
audioNoiseOptionalstringBackground noise in the audio, with audio=true: none (clearest, best for accessibility), low, medium or high. Higher levels make automated transcription harder and the audio harder to follow
nonelowmediumhigh
default none
inlineOptionalbooleanReturn the image as a base64 data URI in dataURI (and the audio in audioDataURI) instead of storing them; downloadURL and audioURL are then null

What the model gets back

The result carries a structuredContent object matching the tool's declared outputSchema, so a client reads fields without parsing prose. status is "ok" and error is null on success; a null field means the value was not available for that input, not that the call failed.

Response fields

Paths are relative to data. Premium fields are absent rather than zeroed on plans that do not include them, so check for presence instead of comparing to 0.

FieldTypeExampleDescription
idstringe183c54c-5bf6-455e-bc96-195685cee71cUnique identifier for the generated captcha
expiresnumber1766010041360Unix timestamp in milliseconds when the image link expires (24 hours)
solutionstringfwvctThe correct answer: the characters drawn, or for type=math the answer as a string of digits. Compare it with the visitor's answer ignoring case
downloadURLstringhttps://storage.googleapis.com/apiverve/APIData/captchagenerator/e183c54c-5bf6-455e-bc96-195685cee71…Signed URL of the captcha image, valid for 24 hours. Null when inline=true

Failure modes

Errors come back as tool errors carrying a sentence the model can act on, not a bare status code. Error handling covers the full list.

StatusWhat it means
400 / 422The arguments did not validate. The message names the offending one.
401The OAuth session is invalid or expired — reconnect the server.
403Blocked by a key restriction or an IP allow-list. Never a bad identity.
404This skill is not part of VerveKit. Check the catalog.
429Out of credits, or a brief rate limit. The message tells them apart.

A call costs 10 credits each time the tool actually runs; a model that reasons about the tool without calling it costs nothing.

Use cases

Registration Form Protection
To block automated spam registrations, web apps fetch a challenge image for the signup form and check submitted text against the returned solution.
Failed Login Throttling
When visitors trigger multiple failed login attempts, authentication services display a captcha image to verify that a person is behind the keyboard.
Contact Form Verification
Community forums attach challenge images to public inquiry forms, using the millisecond expiration timestamp to invalidate stale submissions.
Password Reset Defense
Require visitors to solve a visual challenge before sending password reset links to prevent bad actors from triggering bulk recovery emails.

Other ways to use Captcha Generator Skill

Set up Captcha Generator Skill on VerveKit, or reach the same source a different way. Your VerveKit account and credits work on all of them — one key, one balance.

Call it as a REST APIOne HTTPS endpoint and an x-api-key header, with SDKs for Node, Python and .NET.APIVerve →Reference →

More in Data Generation:

Was this page helpful?