LaminarForge API Documentation 185 endpoints across 10 categories

Categories

Authentication

Every call needs a key. Send it in a header called Authorization, like this: Authorization: Bearer YOUR_KEY. If you prefer, X-API-Key: YOUR_KEY works too.

A key is just a long password that starts with lf_. Treat it like a bank card: anyone who has it can use up your quota. Do not put it in a public web page or a shared git repo.

Pay per call, no account needed

You do not have to sign up. If you call an endpoint with no key, we answer with 402 Payment Required instead of an error. The reply is a small block of JSON that tells you three things: how much the call costs, which wallet address to pay, and which coin network to use.

Pay that amount in USDC on Base, then send the exact same request again with an X-PAYMENT header. We check the payment and return the answer. No signup, no email, no card.

Most endpoints cost $0.002 per call. Heavy ones cost $0.01 - those are the ones that do real work, like building a PDF or taking a screenshot. Every price is listed at GET /v1/prices on any worker, so a program can read the list instead of guessing.

If you would rather pay nothing, get a free key below. Both routes reach the same endpoints.

Get a free key:

curl -X POST https://laminarforge.dev/v1/keys \
  -H "Content-Type: application/json" \
  -d '{"tier":"free"}'

Status Codes

CodeMeaningDescription
200OKIt worked. The answer is in the body.
400Bad requestSomething you sent is missing or wrong. The message usually names the field.
401No keyYou did not send a key, or the key is not valid.
402Payment neededNo key, so we quoted a price instead. See Pay per call above.
403BlockedThe key is real, but it is turned off or not allowed to do this.
404Not hereThat path does not exist. Check the spelling.
429Slow downToo many calls too fast. Wait a minute, then retry.
500Our faultSomething broke on our side. Trying again usually works.

Rate Limiting

Limits are counted separately for every endpoint, and they reset each day. So the free tier gives you 100 calls a day to each endpoint, not 100 calls in total.

The last column is a speed limit: how many calls per minute we accept from one key before asking you to slow down.

TierPriceDaily Limit (per endpoint)Calls per minute
Free$010020
Starter$9/mo1,00060
Pro$29/mo10,000120
Business$99/mo50,000300

All Endpoints

Click any endpoint for full documentation with example requests and responses.

GET /GET /v1/abn-validateGET /v1/acn-validateGET /v1/aes-decryptGET /v1/aes-encryptGET /v1/age-calculatorGET /v1/agent-schema-genGET /v1/ai-cache-keyGET /v1/balanceGET /v1/barcode-generateGET /v1/base64GET /v1/base64urlGET /v1/bic-swift-lookupGET /v1/business-daysGET /v1/case-converterPOST /v1/case-converterPOST /v1/checkoutGET /v1/color-converterPOST /v1/color-converterGET /v1/color-paletteGET /v1/compressGET /v1/coordinate-validateGET /v1/country-infoPOST /v1/country-infoGET /v1/country-listGET /v1/crc32GET /v1/cron-parserPOST /v1/csv-to-jsonGET /v1/currency-formatGET /v1/date-converterGET /v1/dns-aGET /v1/dns-allGET /v1/domain-availabilityGET /v1/dominant-colorGET /v1/ein-validateGET /v1/email-validateGET /v1/epochGET /v1/exif-readGET /v1/format-detectGET /v1/freelance-rateGET /v1/gdpr-consentGET /v1/geoipGET /v1/grayscaleGET /v1/hashGET /v1/hashtag-analyticsGET /v1/haversineGET /v1/healthGET /v1/hmacGET /v1/holiday-listGET /v1/html-to-structuredGET /v1/http-headersGET /v1/image-asciiGET /v1/image-infoGET /v1/ipv4-validateGET /v1/ipv6-validateGET /v1/isbn-validateGET /v1/json-formatPOST /v1/json-formatGET /v1/json-minifyPOST /v1/json-minifyPOST /v1/json-schema-validatePOST /v1/json-to-csvPOST /v1/json-to-xmlPOST /v1/json-to-yamlGET /v1/json-validatePOST /v1/json-validateGET /v1/jwt-encodeGET /v1/jwt-verifyGET /v1/registerPOST /v1/keysGET /v1/knowledge-base-qaPOST /v1/language-detectGET /v1/llm-safetyGET /v1/lorem-ipsumGET /v1/md5GET /v1/mortgage-calculatorGET /v1/password-generatorGET /v1/password-hashGET /v1/password-strengthGET /v1/pdf-from-htmlGET /v1/plus-codeGET /v1/prompt-injectionGET /v1/qr-generateGET /v1/random-nameGET /v1/redirect-chainGET /v1/regexPOST /v1/regexGET /v1/robots-txtGET /v1/romanGET /v1/rsa-cryptGET /v1/salary-converterGET /v1/sales-taxGET /v1/secure-compareGET /v1/sha256GET /v1/slides-from-markdownGET /v1/slugGET /v1/source-link-verifyGET /v1/ssl-checkGET /v1/structured-parseGET /v1/timezone-by-coordsGET /v1/timezone-infoGET /v1/tool-call-validateGET /v1/tool-orchestratorGET /v1/tool-output-fmtGET /v1/totpGET /v1/url-previewGET /v1/url-reachabilityGET /v1/url-syntaxPOST /v1/url-syntaxGET /v1/usageGET /v1/user-agentGET /v1/uuidGET /v1/uuid-batchGET /v1/vat-calculatorGET /v1/web-content-extractGET /v1/web-screenshotPOST /v1/webhookGET /v1/week-numberGET /v1/whoisGET /v1/word-countPOST /v1/word-countPOST /v1/xml-to-jsonPOST /v1/yaml-to-jsonGET /v1/zip-by-coordsGET /v1/json-flattenPOST /v1/json-unflattenGET /v1/base-convertGET /v1/si-convertGET /v1/percentageGET /v1/temperatureGET /v1/distanceGET /v1/weightGET /v1/text-diffPOST /v1/text-diffGET /v1/bin-lookupGET /v1/luhn-validatePOST /v1/luhn-validateGET /v1/phone-validateGET /v1/ssn-validateGET /v1/uuid-validateGET /v1/semver-validatePOST /v1/semver-bumpGET /v1/mac-validateGET /v1/card-formatGET /v1/readabilityGET /v1/token-countGET /v1/chunk-textPOST /v1/chunk-textGET /v1/case-toolsGET /v1/unicode-inspectGET /v1/template-expandGET /v1/sha3GET /v1/blake2GET /v1/otpGET /v1/password-entropyGET /v1/random-tokenGET /v1/entropy-checkGET /v1/email-securityGET /v1/caa-lookupGET /v1/security-headersGET /v1/tech-detectGET /v1/mime-lookupGET /v1/ssl-cipherGET /v1/invoice-wordsGET /v1/cagrGET /v1/roiGET /v1/day-countGET /v1/ratioGET /v1/geo-toolsGET /v1/image-resizeGET /v1/image-to-datauriGET /v1/image-captionGET /v1/image-hashGET /v1/favicon-generateGET /v1/content-safetyGET /v1/pii-redactGET /v1/rag-chunkPOST /v1/schema-from-samplePOST /v1/extract-structuredGET /v1/code-descGET /v1/keysGET /v1/pricesDELETE /v1/keys/{hash}POST /v1/registerGET /v1/exif-gps