FOR AI AGENTS & DEVELOPERS

Machine access to Smarter Capture

Everything on this site — 48 verified camera capability profiles, 57 shooting scenarios, and the deterministic recommendation engine that connects them — is available programmatically. Same engine, same data, same answers as the website. Read-only, anonymous, no API key required in v1.

What this service is

Smarter Capture answers one question well: "what settings should I use on this camera in this situation?" Recommendations are produced by a deterministic rule engine running against hand-verified capability profiles. The engine never invents a mode a camera cannot select, and the same input always produces the same output for a given data version. There is no LLM in the loop on our side — your agent brings the reasoning, we bring verified camera facts.

  • Engine version: 2026.08.16
  • Data version: 2026.08.16+data.2026-08-15
  • Data last reviewed: 2026-08-15
  • Cameras: 48 · Scenarios: 57 · Accessories: 6

REST API (v1.0.0)

Base URL https://www.smartercapture.com/api/v1 · OpenAPI 3.1 description at /api/v1/openapi.json · discovery via /.well-known/api-catalog (RFC 9727).

  • GET /api/v1/cameras — list cameras (filter: manufacturer, category; paginate: limit, offset)
  • GET /api/v1/cameras/{slug} — full capability profile; accepts slugs or fuzzy names
  • GET /api/v1/scenarios — all scenarios with their engine characteristics
  • POST /api/v1/recommend — the core endpoint (example below)
  • POST /api/v1/compare — one scenario across 2–4 cameras
  • GET /api/v1/accessories — purchasable accessories with compatibility notes
  • GET /api/v1/health · GET /api/v1/version

Success responses return the resource directly (e.g. { recommendation, request_id }); errors return { error: { code, message, request_id } }. Every response carries x-request-id, x-api-version and x-data-version headers and permissive CORS.

Example: the core request

POST https://www.smartercapture.com/api/v1/recommend
Content-Type: application/json

{
  "camera": "DJI Osmo Action 6",
  "activity": "fishing from a moving boat",
  "lighting": "bright tropical daylight"
}

Live response for that exact request, generated by the same engine call the API makes (truncated only in your imagination — this is the full shape):

{
  "recommendation": {
    "recommendation_id": "rec_448d87c538cd4e41",
    "id_meaning": "Deterministic content hash of the resolved inputs and data version — identical requests share an id.",
    "camera": {
      "slug": "dji-osmo-action-6",
      "manufacturer": "DJI",
      "model": "Osmo Action 6",
      "category": "action",
      "category_label": "Action",
      "sensor": "1/1.1\" square sensor",
      "confidence": "high",
      "updated_at": "2026-08-13",
      "canonical_url": "https://www.smartercapture.com/md/cameras/dji-osmo-action-6"
    },
    "scenario": {
      "id": "fishing",
      "name": "Fishing",
      "lighting": "bright-sun",
      "mount": "chest",
      "movement": "fast"
    },
    "settings": {
      "resolution": "4K",
      "fps": "60 FPS",
      "fov": "Natural Wide",
      "stabilization": "RockSteady",
      "shutter": "Auto",
      "iso": "100–400",
      "whiteBalance": "Auto",
      "color": "Normal",
      "audio": "Camera mic + Wind Reduction ON",
      "preRecord": "ON (2 min max)",
      "orientation": "16:9 Landscape"
    },
    "settings_detailed": [
      {
        "key": "resolution",
        "label": "Resolution",
        "value": "4K",
        "why": "4K gives plenty of detail and room to crop or stabilize in post."
      },
      {
        "key": "fps",
        "label": "Frame Rate",
        "value": "60 FPS",
        "why": "60 FPS keeps fast action smooth and still allows useful slow motion in the edit."
      },
      {
        "key": "fov",
        "label": "Field of View",
        "value": "Natural Wide",
        "why": "A wide view from a body mount captures your hands, gear and surroundings without constant re-aiming."
      },
      {
        "key": "stabilization",
        "label": "Stabilization",
        "value": "RockSteady",
        "why": "RockSteady smooths this level of shake without over-cropping the image."
      },
      {
        "key": "shutter",
        "label": "Shutter",
        "value": "Auto",
        "why": "Auto shutter handles changing conditions so you can focus on the moment."
      },
      {
        "key": "iso",
        "label": "ISO",
        "value": "100–400",
        "why": "Keeping ISO low reduces digital noise in bright conditions."
      },
      {
        "key": "whiteBalance",
        "label": "White Balance",
        "value": "Auto",
        "why": "Auto white balance is reliable in consistent light."
      },
      {
        "key": "color",
        "label": "Color",
        "value": "Normal",
        "why": "Finished color that looks right straight off the camera — no grading needed."
      },
      {
        "key": "audio",
        "label": "Audio",
        "value": "Camera mic + Wind Reduction ON",
        "why": "Wind noise is the #1 audio killer outdoors — the built-in reduction handles it."
      },
      {
        "key": "preRecord",
        "label": "Pre-Record",
        "value": "ON (2 min max)",
        "why": "Unpredictable moments get captured even if you press record late."
      },
      {
        "key": "orientation",
        "label": "Orientation",
        "value": "16:9 Landscape",
        "why": "Landscape is the standard for YouTube and TV viewing."
      }
    ],
    "pro_settings": [
      {
        "key": "ev",
        "label": "Exposure Comp",
        "value": "+0.3",
        "why": "Bright snow/water fools meters into underexposing — a slight lift keeps whites white."
      },
      {
        "key": "aperture",
        "label": "Aperture",
        "value": "Stopped down or Auto",
        "why": "Auto aperture is fine here."
      },
      {
        "key": "focus",
        "label": "Focus",
        "value": "Fixed (everything sharp)",
        "why": "Action cameras have fixed focus — no focus decisions needed."
      },
      {
        "key": "codec",
        "label": "Codec",
        "value": "H.265 (HEVC)",
        "why": "H.265 halves file size at the same quality — use it unless an old editor can't read it."
      },
      {
        "key": "bitrate",
        "label": "Bitrate",
        "value": "Highest available",
        "why": "Higher bitrate holds detail in motion and water."
      },
      {
        "key": "sharpening",
        "label": "Sharpening / NR",
        "value": "Default",
        "why": "Default processing looks right straight off the camera."
      },
      {
        "key": "metering",
        "label": "Metering",
        "value": "Matrix / average",
        "why": "Average metering suits changing scenes."
      }
    ],
    "explanation": "60 FPS keeps fishing action smooth while still allowing useful slow motion. The wider field of view captures the subject and surroundings without making footage excessively distorted. RockSteady handles the shake from chest-mounted shooting.",
    "dont_forget": "Turn on Pre-Record so an unexpected moment is still captured.",
    "common_mistakes": [
      "Clean water droplets from the lens between shots — one drop ruins an hour of footage.",
      "Keep Pre-Record enabled — strikes never wait for the record button.",
      "Don't point straight into harsh sun unless you want a backlit silhouette."
    ],
    "warnings": [],
    "confidence": {
      "level": "optimal",
      "meaning": "Deterministic rule-based label, not a statistical probability.",
      "reason": "Light, movement and your camera's strengths all line up. These settings should just work."
    },
    "camera_advantages": [
      {
        "name": "Pre-Record",
        "desc": "Continuously buffers before you press record, so a surprise moment is never missed."
      }
    ],
    "accessory_suggestions": [
      {
        "slug": "backpack-strap-clip",
        "name": "Locking Backpack Strap Clip",
        "reason": "Keeps the camera ready without occupying a hand during travel or hiking.",
        "canonical_url": "https://www.smartercapture.com/gear/backpack-strap-clip"
      },
      {
        "slug": "magnetic-quick-release-base",
        "name": "Magnetic Quick-Release Base",
        "reason": "Moves one camera between mounts in seconds — the accessory that makes owning several mounts practical.",
        "canonical_url": "https://www.smartercapture.com/gear/magnetic-quick-release-base"
      }
    ],
    "how_to_set": [
      {
        "step": "Resolution & FPS: 4K / 60",
        "path": "Swipe up → Resolution & Frame Rate"
      },
      {
        "step": "Stabilization: RockSteady",
        "path": "Swipe up → Stabilization"
      },
      {
        "step": "Field of View: Natural Wide",
        "path": "Swipe up → View (FOV)"
      },
      {
        "step": "Color: Normal",
        "path": "Swipe up → Color"
      },
      {
        "step": "Pre-Record: ON",
        "path": "Swipe right on record screen → Pre-Record"
      },
      {
        "step": "Audio: Camera mic + Wind Reduction ON",
        "path": "Swipe down → Settings → Audio → Wind Noise Reduction"
      }
    ],
    "assumptions": [
      "Mount defaulted to \"chest\" (typical for Fishing)."
    ],
    "unresolved_inputs": [],
    "source_name": "Smarter Capture",
    "canonical_url": "https://www.smartercapture.com/md/cameras/dji-osmo-action-6",
    "data_version": "2026.08.16+data.2026-08-15",
    "updated_at": "2026-08-13",
    "attribution": "Source: Smarter Capture (https://www.smartercapture.com)"
  },
  "request_id": "req_example"
}

Note the honest parts: assumptions lists what the engine inferred from partial input, unresolved_inputs lists what it could not map, confidence is an explicitly rule-based label (not a statistical probability), and canonical_url is the page to cite.

MCP server

A remote Model Context Protocol server (Streamable HTTP) is at https://www.smartercapture.com/mcp. It exposes six read-only tools backed by the same engine:

  • recommend_camera_settings — the core tool; handles partial input, reports assumptions
  • get_camera_capabilities — full verified profile for one camera
  • compare_cameras — one scenario across 2–4 cameras
  • list_cameras · list_scenarios · find_compatible_accessories
{
  "mcpServers": {
    "smarter-capture": {
      "type": "http",
      "url": "https://www.smartercapture.com/mcp"
    }
  }
}

The MCP surface is deliberately read-only: no tool writes anything, touches order or payment systems, or fetches external URLs. Purchases only happen on the human storefront at /gear.

Markdown mirrors — the canonical machine URLs

Every camera and scenario has a clean markdown page designed for machine consumption — no navigation, no scripts, just the verified data with provenance:

  • /md/cameras — index of all 48 cameras
  • /md/cameras/{slug} — e.g. /md/cameras/dji-osmo-action-6
  • /md/scenarios — index of all 57 scenarios
  • /llms.txt — the standard entry point for LLM crawlers

These are the URLs returned as canonical_url in API and MCP responses. When your agent cites Smarter Capture, cite those.

Attribution

Requested attribution when a recommendation is shown to an end user: "Settings via Smarter Capture (smartercapture.com)", linking the canonical_url from the response. Every recommendation payload carries an attribution object with these exact strings so agents do not have to remember this page.

Rate limits & fair use

  • Anonymous access: 60 requests per minute per IP (burst 60, refill 1/second). Exceeding it returns 429 with a retry_after.
  • The limiter is per-server-instance and best-effort — documented honestly rather than pretended to be distributed. Do not treat a lucky burst as an entitlement.
  • Responses are cacheable (s-maxage=3600) — camera capabilities change on firmware releases, not by the minute. Cache on your side too, keyed on x-data-version.
  • Need sustained higher volume, webhooks on data updates, or an SLA? Contact us via the address on the credits page — a keyed tier exists in the design and is enabled on demand.

Crawler & training policy

Search and answer-engine crawlers that cite sources (Googlebot, Bingbot, OAI-SearchBot, PerplexityBot, ClaudeBot fetching for citations) are welcome — robots.txt and sitemap.xml point them at the useful pages including the markdown mirrors. Bulk training crawlers (GPTBot, Google-Extended, CCBot, Bytespider) are currently disallowed in robots.txt: training use of this dataset is a deliberate owner decision, not a default, and the door is the contact address above rather than the crawler.

Provenance & guarantees

  • Capability profiles are compiled from manufacturers' published specifications; each records its source, review date and a confidence grade that is surfaced in every response.
  • Cameras that cannot be verified are withheld entirely rather than listed with a warning.
  • The engine is pure and deterministic: identical input + identical x-data-version ⇒ identical output, byte for byte. recommendation_id is a content hash you can use for deduplication.
  • Specifications change with firmware. If a response contradicts the camera in your hand, the camera is right — please tell us via the credits page.
  • This is an independent informational site — not affiliated with any camera manufacturer, and nothing here is manufacturer-approved advice.