OceanirDocs
Quickstart

Run your first location analysis

Send one image to the Oceanir API and receive structured coordinates, an address, and the visual evidence behind the result.

REST APIJSON responseSet a 180s client timeout
01

Provision an API key

Request reviewed API access before starting. Existing provisioned customers can use their current key.

Request header

x-api-key: oceanir_4f9c2a7b1e08_1756...
Get Pro
02

Execute the analysis

POST an image URL. The depth parameter controls how much analysis the model performs.

POST/api/v1/geolocate
cURL
curl -X POST https://oceanir.ai/api/v1/geolocate \
  -H "x-api-key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "image_url": "https://example.com/photo.jpg",
    "depth": 2
  }'
depth 110s median · 24s p95

Classification

depth 26s median · 48s p95

Analysis

depth 383s median · 151s p95

Investigation

If a host blocks server-side image fetching, send a base64-encoded JPEG as image_b64. The maximum request payload is 20 MB.

03

Read the response

Use the returned coordinates and evidence in your own investigation workflow.

200 · application/json
{
  "success": true,
  "analysis_id": "a01dae21-4f43-42d7-9d8c-02153f33ce27",
  "location": {
    "latitude": 25.73003,
    "longitude": -80.32348,
    "address": "NW 97th Ave, Doral, FL 33178",
    "city": "Doral",
    "country": "United States",
    "map_url": "https://www.google.com/maps/search/?api=1&query=25.73003,-80.32348"
  },
  "confidence": 0.79,
  "reasoning": "Wide arterial road, royal palms, Marathon gas station...",
  "visual_clues": ["royal palms", "arterial signage", "Marathon branding"],
  "forensic": {
    "candidates": [
      { "name": "NW 97th Ave, Doral", "confidence": 79 },
      { "name": "NW 58th St, Doral", "confidence": 61 }
    ],
    "contradictions": []
  },
  "model": "orca-1.5",
  "depth": 2
}
analysis_idstringStable id for this run. Use it to correlate, share, or attach to a case
locationobjectCoordinates, reverse-geocoded address, city, country, and ready-made map links
confidencefloatCertainty from 0 to 1 for the LEADING candidate only
reasoningstringVisual evidence used to reach the result
visual_cluesstring[]Individual cues the result rests on. Returned at depth 2 and above
forensic.candidatesarrayCompeting locations with their own confidences. Read this, not just location
forensic.contradictionsarrayEvidence that argues against the leading candidate
calibrationobjectPublish policy for the run, including when to abstain. Depth 3 only
Try it live
Analyze an image without code
Next
Authentication and key management