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...02
Execute the analysis
POST an image URL. The depth parameter controls how much analysis the model performs.
POST
/api/v1/geolocatecURL
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 p95Classification
depth 26s median · 48s p95Analysis
depth 383s median · 151s p95Investigation
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 caselocationobjectCoordinates, reverse-geocoded address, city, country, and ready-made map linksconfidencefloatCertainty from 0 to 1 for the LEADING candidate onlyreasoningstringVisual evidence used to reach the resultvisual_cluesstring[]Individual cues the result rests on. Returned at depth 2 and aboveforensic.candidatesarrayCompeting locations with their own confidences. Read this, not just locationforensic.contradictionsarrayEvidence that argues against the leading candidatecalibrationobjectPublish policy for the run, including when to abstain. Depth 3 onlyAnalyze an image without code
NextAuthentication and key management

