Hashlogics
Stack review

OpenAI API

The first call takes ten minutes. Production takes the rest

Nothing about calling the API is hard. What costs you a sprint is what happens on the day traffic doubles and the API starts returning 429.

The verdict

The OpenAI API is a sound default for text generation, classification and extraction in a product, provided you design for its tiered rate limits from the first week rather than discovering them under load.

The models are strong and the SDKs are good. Neither is the reason projects struggle. Throughput planning is.

Treat rate limits as an architectural input, the same way you would treat a database connection pool. They decide whether your feature is synchronous or queued.

In short

5 things that decide this

  1. 01Limits apply across several dimensions at once, including requests per minute, requests per day, tokens per minute and tokens per day.
  2. 02Exceeding a limit returns a 429 error, and the documented remedy is retrying with exponential backoff.
  3. 03The official SDKs automatically retry eligible rate-limit errors and honour Retry-After, so hand-rolled retry logic often duplicates work already done.
  4. 04Response headers report remaining requests and tokens, which is how you build a throughput dashboard instead of guessing.
  5. 05Usage tiers raise your limits as your account matures, so the ceiling you test against is not the ceiling you launch with.
What it is

For someone who has not shipped on it

You send text and a model returns text. That is the whole interface, and it is why a first working version takes an afternoon.

The operational surface is the part to plan. Requests are metered on more than one axis. Failures are normal rather than exceptional. And the model behind a name can change unless you pin a version.

Our use

What we have built with it

Seven of our shipped products call the OpenAI API, and they use it for different jobs. Broollie runs GPT-4o and GPT-4o-mini across a multi-tenant meeting platform in more than 38 countries. Greenlight reads laws, certifications, studies and controversies to score how sustainable a company really is, covering more than 50 ESG topics with 10 to 15 independent sources each.

Little Tree Confections is the smallest and clearest. Meeting transcripts flow through an OpenAI refinement step inside n8n, then become ClickUp tasks and Notion docs. Golancer generates daily priorities for freelancers, and ZhoopZhoop uses it in voice agents answering an auto repair shop's phone.

The pattern across all seven: the model call is a small part of the system. Retrieval, validation and the queue around it are where the engineering time actually goes.

What production adds to a model callLive
  1. CallThe easy ten minutes.
  2. LimitRequests and tokens, per minute.
  3. 429Back off, then retry.
  4. PinName the version you tested.
  5. LogPrompt, model, tokens, reply.
  6. ScoreEvals gate the next change.

Every station after the first is where the sprint goes, and skipping the last two is why AI features quietly get worse.

Where it stands

Good at

  • Time to a working prototype is unmatched, which makes it the fastest way to prove a feature is worth building properly.
  • The official SDKs handle retries for eligible rate-limit errors and respect Retry-After, so the common failure is handled for you.
  • Rate-limit headers expose remaining requests and tokens, which turns capacity planning into something you can chart.
  • A batch path exists for work that does not need an answer now, which is the right home for bulk processing.

Weak at

  • Rate limits bind on several dimensions at once, so a system comfortably inside its request budget can still fail on tokens per minute.
  • Your limits change as your account tier changes, which means load testing early gives you a number that will not match production.
  • Latency is dominated by token generation, so a chatty response format costs you response time as well as money on every single call.
  • Behaviour moves when the model behind a name moves, and without a pinned version and a scored test set you find out from users.
  • It is an external dependency in your critical path, so your feature's availability is now partly somebody else's operational record.
Questions, answered

Common questions

01How do we stop hitting rate limits?

Shape the traffic before you ask for more capacity. Queue anything a user is not actively waiting for, cap output length, and cache answers to questions that repeat. Watch the rate-limit headers for remaining requests and tokens so you see the ceiling approaching rather than meeting it.

02Should we write our own retry logic?

Usually not, because the official SDKs already retry eligible rate-limit errors and honour Retry-After. Adding your own layer on top produces double retries and a thundering herd during an incident. Read what your SDK does before writing anything.

03How do we keep behaviour stable over time?

Pin a specific model version and keep a scored test set. A version you chose does not change under you, which turns an upgrade into a decision rather than a surprise. The test set is what tells you whether the next version is safe to move to.

04What should we log on every call?

The prompt version, the model name, the tokens used and the reply, tied to the request that caused it. Cost questions, quality complaints and incident reviews all resolve from that record. Teams that log only the reply cannot answer any of the three.

Verified
Start

Anyone can ship the agent. We answer the pager.

We build AI agents and automation, then stay on under an agreed service level. A senior engineer reads every brief, and your call gets scheduled within 24 hours.

What happens next

  1. 01

    You send a brief or book a call

    Two minutes, whichever you prefer.

  2. 02

    A senior engineer replies within 24 hours

    Not a sales rep.

  3. 03

    Honest scoping, in writing

    And if we’re not the right fit, we say so.

Abdul Basit, CEO of Hashlogics

“I started Hashlogics because too many teams ship a demo, get paid, and disappear. We build to a standard we’d run ourselves — and we stay to keep it running.”

Abdul Basit · CEO · a direct line

Not ready to talk? Take the checklist.

12 questions to ask any AI agency before you sign. They separate a demo shop from a team that ships to production.

Get the checklist

Free · no newsletter