Your model charges to read everything sent to them. Needlepath hands it only what matters.
Needlepath provides the model with the most relevant context for your prompt. Fewer tokens in, better answers out, blazing speed, lower overall cost, measured on public tests.
Pay as you go. No commitment to get started.
Better answers. Lower bill. Blazing fast.
Scored on the NVIDIA RULER benchmark. 2,600 questions, one run, the test's official scorer. What Needlepath sends, at the r4 operating point, against sending everything.
The bill: $38.44 with Needlepath vs $69.02 sending everything, our fee included. The token figure counts the 24.0% of calls that received the complete document. Other preparation methods, measured on the same items: 1.13 to 32.4 s per item, some needing a GPU.
Read the detailed RULER results comparison
Estimate your savings here, or request a workload review and we measure the real share on your traffic. Starting point: the cost calculator's example month and the public test's 52.9%.
Three ways context goes wrong.
Every model call gets a briefing. Most teams prepare it one of two ways, and both cost more than they look.
Attention gets diluted
Every extra page costs input tokens and competes for the model's attention, whether or not it helps answer the question.
Details go missing
A summary fits nicely, and can leave out the exact name, amount or order detail the next question needs, without saying so.
Mistakes compound
When a missing detail feeds the next call, and the next, the error compounds and gets harder to trace.
When the whole file is what the moment needs, it hands over the whole file. It decides in milliseconds, with no second model deployment in the loop.
One call before every model call.
Send what you hold
Documents, tool results, chat history, memory, workflow state. Send the records as they are, with the question the model is about to answer.
Needlepath picks
Needlepath returns the records most relevant to the question, in milliseconds.
The model gets what matters
Your originals, unrewritten. When the whole set is what the question needs, the whole set goes through unchanged.
Copy, paste, run.
One key, one call before your model call, and a dashboard to watch it. The code below is the same as the docs; swap in your records and your prompt.
- 1Sign up and get an API key
Sign up for public beta today. The key is minted in the console and lives in your environment as
NEEDLEPATH_API_KEY. - 2Send your records and your prompt, get the context back, call your modelpip install needlepath
import os from needlepath import NeedlepathClient, ContextRecord, TaskSpec client = NeedlepathClient( api_key=os.environ["NEEDLEPATH_API_KEY"], operating_point="np-2026-08-r4", ) # What the agent holds for this question, one record each. For example: # every purchase order from the last two years # the supplier's contract and delivery terms # the conversation so far records = [ ContextRecord(text=po.text, kind="external_data", id=po.id, title=po.title) for po in purchase_orders ] prompt = "Which Corvane Freight purchase orders are still open past their delivery date?" result = client.select(records=records, task=TaskSpec(prompt=prompt), max_context_tokens=4000) context = result.rendered_context if result.applied else "\n\n".join(r.text for r in records) # Call your model as you already do, with the context ahead of the prompt. from openai import OpenAI answer = OpenAI().chat.completions.create( model="your-model", messages=[{"role": "user", "content": f"{context}\n\n{prompt}"}], )npm install @nextmoca/needlepath-sdkimport { NeedlepathClient } from "@nextmoca/needlepath-sdk"; import OpenAI from "openai"; const client = new NeedlepathClient({ apiKey: process.env.NEEDLEPATH_API_KEY!, operatingPoint: "np-2026-08-r4", }); // What the agent holds for this question, one record each. For example: // every purchase order from the last two years // the supplier's contract and delivery terms // the conversation so far const records = purchaseOrders.map((po) => ({ text: po.text, kind: "external_data", id: po.id, title: po.title })); const prompt = "Which Corvane Freight purchase orders are still open past their delivery date?"; const result = await client.select({ records, task: { prompt }, maxContextTokens: 4000 }); const context = result.applied ? result.response!.renderedContext : records.map((r) => r.text).join("\n\n"); // Call your model as you already do, with the context ahead of the prompt. const answer = await new OpenAI().chat.completions.create({ model: "your-model", messages: [{ role: "user", content: `${context}\n\n${prompt}` }], });pip install needlepath-langchainfrom langchain.agents import create_agent from needlepath_langchain import NeedlepathMiddleware # NEEDLEPATH_API_KEY is read from the environment. agent = create_agent( model, tools, middleware=[NeedlepathMiddleware(operating_point="np-2026-08-r4")], ) # Oversized tool results and the accumulated history are selected against the # current step before each model call. Nothing else in the agent changes. answer = agent.invoke({"messages": [("user", "Which Corvane Freight purchase orders are still open past their delivery date?")]})pip install needlepath-litellm# config.yaml guardrails: - guardrail_name: "needlepath" litellm_params: guardrail: needlepath_litellm.NeedlepathGuardrail mode: "pre_call" default_on: true operating_point: "np-2026-08-r4" history_max_tokens: 8000 preserve_recent: 2 # Then, in the proxy's environment (never api_key: in a file you commit): # export NEEDLEPATH_API_KEY="np_live_..." # litellm --config config.yaml # Every client behind the proxy gets selection with no client-side change.export NEEDLEPATH_API_KEY="np_live_..."# One record per item the agent holds: purchase orders, the supplier contract, the conversation. curl https://api.nextmoca.com/v1/context/select \ -H "Authorization: Bearer $NEEDLEPATH_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "records": [ { "id": "po-2026-0412", "kind": "external_data", "title": "PO 2026-0412, Corvane Freight", "text": "..." }, { "id": "contract-corvane", "kind": "external_data", "title": "Corvane Freight delivery terms", "text": "..." } ], "task": { "prompt": "Which Corvane Freight purchase orders are still open past their delivery date?" }, "budget": { "max_context_tokens": 4000, "operating_point": "np-2026-08-r4" }, "render": true }' # Use rendered_context from the response ahead of the prompt in your model call. - 3Watch it work
Requests, tokens metered and tokens saved, per key, in the console. When Needlepath stands aside, the whole set goes through unchanged.
Full clients, the LlamaIndex adapter and the rules every adapter follows: docs.nextmoca.com/integrations.
In our cloud, or inside yours.
Start hosted in an afternoon, or keep everything inside your network. Same engine, same results, your call.
Drop in. One API key.
Install the client, point it at your workload, and Needlepath prepares the context before every model call.
- TypeScript and Python clients
- Context selection in milliseconds
- Shadow mode first: zero-risk evaluation
Or review your workload first.
Runs where your data lives.
Deployed into your VPC or data center, next to your models, and tuned for your workloads.
- Everything in hosted, plus
- Your records never leave your network, so data residency, retention and regulatory requirements are met where they already are
- Higher throughput with lower latency
- Dedicated support
Prefer to talk first? Book a 30-minute call
The same public exam, task by task.
Each measured against sending everything.
Hyperscale operators and engineers who built and shipped agentic infrastructure at billion-dollar revenue scale. We are building Next Moca because we know what the next ten years of enterprise AI actually need.

Repeat builder. Co-founded and served as CTO of Green Piñata Toys (acquired). Director of Engineering at Oracle (OCI) and Brightcove, with prior leadership roles at Juniper, Cisco, and others. Built and scaled world-scale services for customers like ByteDance and HBO. Architect behind Next Moca's agentic orchestration and infrastructure layers. MBA (Babson), M.S. Computer Science (Penn State), B.E. Computer Engineering (University of Mumbai).

Product-driven inventor with a track record of bootstrapping new products, blending deep engineering with go-to-market focus. Director of Product at Adobe, with prior leadership roles at Microsoft, Oracle, and others. Holds multiple patents in distributed systems. Architect behind Next Moca's agentic foundations and core AI services. Executive MBA (Michigan Ross), M.S. Computer Science (USC), B.E. Computer Engineering (University of Mumbai).

Engineering and UX leader with 25+ years at Sun Microsystems and Oracle. Founding Member of Technical Staff at Next Moca, leading Agent Experiences. Expertise in UI/UX architecture, data security, and full-stack engineering.
Operators who built and shipped enterprise platforms at billion-dollar scale. They're betting on Next Moca because they've lived the problem we're solving.

Ran product and strategy at Brightcove (CPO) and Ellucian (CPO) over two decades of enterprise SaaS leadership. Now Managing Partner at ND Labs and lead investor in Next Moca.

Head of ML Platform at Capital One, operating production AI infrastructure for one of the largest regulated U.S. banks. Ph.D. in EECS from UC Berkeley, M.S. from UIUC, and B.Tech. from IIT Bombay.
See your own number.
Tell us what you are building. We reply within one business day to set up API access, or to scope a review of your workload: answer quality, token use and cost. No commitment.
Thanks. Expect us to get in touch soon.
In the meantime, you can also reach us directly at kiran@nextmoca.com or swanand@nextmoca.com.
Your research access: the benchmark deep-dive, with the full scoreboard, per-length results, and method notes.
Prefer to talk first? Book a 30-minute call. Already decided? Sign up for public beta today.
kiran@nextmoca.com · swanand@nextmoca.com · Boston, MA · Palo Alto, CA