Resolver API

One request. One answer. One explanation.

The API is the product; the app is a way to configure it. Everything the interface can do is an endpoint, including the parts you would rather automate.

The call

Send an address or a coordinate. Add context if your rules use it. There is nothing else to learn before the first useful answer.

Resolving one address bash

curl https://api.maplogics.com/v1/resolve \
  -H "authorization: Bearer $MAPLOGICS_KEY" \
  -H "content-type: application/json" \
  -d '{
    "address": { "line1": "1000 E Main St", "city": "Richmond",
                 "region": "VA", "postal_code": "23219" },
    "context": { "service": "plumbing" }
  }'

The rest of the surface

  • POST /v1/resolve

    One address, one decision. The endpoint everything else exists to support.

  • POST /v1/batches

    A file of addresses. Decisions come back with your original row identifiers intact.

  • GET /v1/configurations

    Which configuration is live, what is in draft, and what was live last week.

  • PUT /v1/territories/:id

    Create or replace a territory in a draft, with optimistic locking so two editors cannot silently overwrite each other.

  • POST /v1/configurations/:id/publish

    Make a draft live, atomically, after it passes validation.

How it behaves under load

Rate limits are per organization and per plan, from five requests a second on a trial to sixty on enterprise, each with a burst allowance above it. A refused request says so in a header with the time it resets, rather than timing out and leaving you guessing.

Sixty a second is a ceiling rather than a price. One organization's configuration is held in one place so decisions are consistent, and that place answers about ninety requests a second before latency starts to climb. Selling more than the architecture can do would turn a refusal you can retry into a delay you cannot.

Errors are typed. Every failure carries a stable code and a request id, and the same code means the same thing on every endpoint.

What is not built yet

There is no client library. No npm package, no Python package. The API is plain HTTPS and JSON, and an OpenAPI document is published, so generating a client is available to you today; a maintained one from us is not.

There are no per-endpoint webhooks for reads, and no streaming. Batch is the answer for volume.