OceanirDocs
API
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

Eligible Pro accounts can create a personal key in Platform → API keys. Organization integrations need approved Enterprise access and organization-scoped credentials.

Request header

x-api-key: oceanir_4f9c2a7b1e08_1756...
Open API keys
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.

Illustrative D2 response · application/json
{
  "success": true,
  "analysis_id": "example-analysis-id",
  "location": {
    "latitude": 45.77,
    "longitude": 4.8459,
    "country": "France",
    "city": "Lyon",
    "neighborhood": "6th arrondissement",
    "address": "Lyon, France"
  },
  "confidence": 0.79,
  "reasoning": "Street signage and architecture suggest Lyon. Confirm the area with independent evidence.",
  "visual_clues": [
    {
      "label": "French street signage",
      "detail": ""
    },
    {
      "label": "Stone facades",
      "detail": ""
    }
  ],
  "model": "orca-1.5",
  "depth": 2,
  "timing_ms": 9120
}
analysis_idstring | nullSaved analysis identifier; may be null when history is not retained
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_cluesobject[]Objects with label and detail. Detail may be empty. Returned at depth 2 and above
forensic.candidatesarrayD3 only: competing candidates; optional and absent in this D2 example
forensic.contradictionsarrayD3 only: evidence 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