{"schema_version":"1.1.0","sign_convention":"negative mm/yr = subsidence (sinking); positive = uplift","units":{"primary":"mm_yr","also":"in_yr","factor_mm_to_in":0.0393701,"selector_param":"units=mm|in"},"assessment_code":{"enum":["rapid_subsidence","notable_subsidence","stable","mild_uplift","strong_uplift"],"thresholds_mm_yr":{"rapid_subsidence":"v <= -8","notable_subsidence":"-8 < v <= -3","stable":"-3 < v < 3","mild_uplift":"3 <= v < 8","strong_uplift":"v >= 8"}},"trend":{"enum":["subsiding","stable","uplifting"]},"data_freshness":{"enum":["current","recent","stale","very_stale","unknown"],"days":{"current":"<=120","recent":"<=365","stale":"<=730","very_stale":">730"}},"calibration":{"enum":["gps_tied","relative"]},"geocode_match_type":{"enum":["coordinates","rooftop_interpolated","street_interpolated","area_centroid"],"scores":{"coordinates":1.0,"rooftop_interpolated":0.9,"street_interpolated":0.7,"area_centroid":0.4}},"motion_status":{"discriminator":"status","enum":["ok","no_data","no_coverage","stale_data","low_confidence","low_geocode_precision","no_new_data"],"billed":["ok"],"note":"every non-ok status is FREE (cost_usd:0). Discriminate on 'status'."},"batch_item_status":{"enum":["ok","no_data","no_coverage","no_new_data","skipped_for_budget","insufficient_credits","invalid_item","invalid_address","unprocessed"]},"async_job_status":{"enum":["queued","processing","done","error"]},"error_codes":{"note":"JSON errors are {error(code), message, retryable, doc_url, request_id}","enum":["unauthorized","login_required","insufficient_credits","spend_cap_reached","forbidden_referer","account_suspended","rate_limited","address_not_found","need_address_or_coords","invalid_coordinates","bad_request","too_many_items","job_not_found","key_not_found","frame_not_found","invalid_email","disposable_email","email_exists","bad_mock"]},"mcp_arg_map":{"note":"MCP tool args differ from REST param names","check_ground_motion":"explain->brief; supports dry_run/max_age_days/min_confidence/since; NOT units/fields/include/mock","get_motion_history":"from_date->reference_date, to_date->reference_date2 (both required for a delta)","get_account":"-> GET /api/v1/balance","check_portfolio":"addresses[] only (no per-item gates)"},"free_gates":["dry_run","max_age_days","min_confidence","since","min_geocode_score"],"payload_control":["compact","fields","units"],"decision_tree":"get_coverage (free) or motion?dry_run=1 (free) to confirm coverage+cost -> motion to buy ($0.40) -> route on assessment_code. Misses & gated results are free.","index":"https://sibfly.com/api/v1","docs":"https://sibfly.com/llms.txt"}