@investorlift/godmode. It is in beta, and its version starts at 0. It wraps every
endpoint of this reference as one method. Every guide on this site shows each request in five forms: curl, Node.js,
Python, TypeScript and the CLI. The TypeScript tab is the package. The CLI tab is the official command-line tool,
@investorlift/cli (CLI).
Investorlift generates the package from the same OpenAPI document that generates this reference. A new field or
endpoint reaches the package at the next release. A field the package does not know yet still comes back in the
response.
1
Install the package
2
Put the key in your shell
GM_API_KEY. You can also pass apiKey to the constructor. Get an API key explains
the console.3
Make one call
4
Find the method
The client has one group per resource. The method name is on each endpoint page, under the request, in the
TypeScript tab. A method with an id in the path takes the id first. The parcel search takes its body.
5
Page a list
pages() gives each page. items() gives each row. Both follow page.next_cursor until it is null. See
Pagination.A list that costs credits requires maxPages, because every page adds to the bill. A list that costs 0 credits takes
no bound. A 400 invalid_cursor stops the loop with an error. The client never starts again from page 1 on its own.6
Catch an error
GodModeError. It carries status, code, title, detail, recovery,
requestId, errors and extras. The recovery sentence is the same one the Errors page
shows. A code the package does not know yet keeps its wire value in code. A request that gets no answer is a
ConnectionError, a plain Error.Retries
The client follows the rule on Rate limits and the recovery sentence ofinternal_error on Errors, and no other rule.
- On a
429the client waitsRetry-Afterseconds and sends the identical request again, at mostmaxRetriestimes. - On a
503 pool_saturatedor503 ledger_unavailablethe client does the same. The API charged nothing. - On a
500 internal_errorthe client sends the request again once. - On a connection failure before any answer the client sends the request again once.
- The client never retries a
504, any other4xx, or a timeout.
maxRetries bounds every one of these retries. Set maxRetries: 0 to turn them all off. A Retry-After longer than
maxRetryDelayMs throws at once: RateLimitedError on a 429, ServerError on a 503.
Check for a refresh
etag. The client does not cache. It gives you datasetVersion for your cache key. The
cache window is the rule.
Options
appName goes at the end of the User-Agent header. The client sends its own name, its version and the Node
version first. Each call also takes { etag, signal, timeoutMs, maxRetries, headers } as its last argument.
What the package does not do
- It does not run in a browser.
- It does not read the CSV export of a lender’s loans. That export is a plain request from the Growth plan. The endpoint page shows it.
- It does not connect to the MCP endpoint. An AI client uses its own MCP client.
- It does not cache answers and does not enforce the plan limits. The API reports both in the headers.
- It does not validate a response at run time. The types come from the contract.
The command-line tool
The official command-line tool,@investorlift/cli, runs every method of this package as one command from a shell,
with no code: investorlift deals summary --lat 33.476917 --lng -111.920385 --radius-miles 2. It reads the same key,
prints a table, JSON, CSV or NDJSON, and states the cost of every call on stderr. CLI explains it.
Versions and other languages
GodMode.version is the package. GodMode.apiVersion is the API version that generated the package. A minor API
change is a minor package release. A removal follows the 30-day notice of the Developer Agreement.
Investorlift marks the method deprecated one minor release before it goes.
A Python package follows when the request log shows Python callers. Until then, the Python tab on every page shows
requests, and the OpenAPI document at https://api.investorlift.com/openapi.json generates a client with
openapi-python-client.