MCP HeartbeatTHE MCP OBSERVATORY
Public workspace

Explore

Evidence for your next connection.

Independent measurements of remote MCP servers. Every observation has a timestamp.

Read-only probes

MCP server · Payments & trading

Dayze — Life Context

Life context for agents: get_context_pack + public notable packs. x402 + OAuth.

Checks passed
14 / 22

1 failed · 7 not measured

Median response
765 ms

Median of successful probes over 7 days

30-day uptime
Not measured

Share of countable probes over 30 days, including daily rollups. Auth challenges are excluded.

Discovered tools
42

Tool definitions returned by this server

Independent monitoring

Health & checks

Status history

Responded

The server completed its last measured handshake. This is an observation, not a guarantee.

Last checked
Check summary by test group
Test areaPassedFailedUnmeasured
ConnectionCan a client connect and discover tools?
500
Reliability & speedDoes it respond consistently and quickly?
013
Access & authenticationWhat is required to use this server?
102
Tool qualityAre the tool definitions usable by an agent?
400
Publisher identityCan the publisher be traced to its source?
402

Unmeasured means there is not enough evidence to decide. How these checks work

Inspect individual checks 22 recorded

Core

  • Pass
    Reachable

    Latest probe returned HTTP 200 in 702 ms.

  • Pass
    Valid handshake

    protocolVersion 2025-06-18, serverInfo.name dayze.

  • Pass
    Lists tools

    tools/list returned 42 tools.

  • Pass
    Current protocol

    Negotiated 2025-06-18. The bar is 2025-06-18 or newer.

  • Pass
    HTTPS

    The endpoint URL is https.

Performance

  • Not measured
    Fast (p50)

    Median latency 765 ms over 2 samples in 7 days. The bar is 1000 ms. Need at least 5 samples.

  • Not measured
    Consistent (p95)

    95th percentile 822 ms over 2 samples in 7 days. The bar is 3000 ms. Need at least 20 samples.

  • Not measured
    Reliable (uptime)

    2 of 2 attempts returned a tool list in 30 days (100%). The bar is 99%. Need at least 30 samples.

  • Fail
    Stable tool list

    removed add_inventory_item, add_inventory_valuation, add_people_to_list, add_person_alias, add_person_contact_method, add_subscription, add_taste_card, add_time_block, add_to_watchlist, apply_event_fact_correction, archive_asset, archive_event, archive_expense, archive_inventory_item, archive_trip, attach_asset, attach_food_photo, attach_food_visual_reference, attach_visual_reference, audit_people, backfill_place_names, bulk_dismiss_clarifications, classify_contact, cleanup_apply, cleanup_duplicate_events, cleanup_preview, commit_life_update, compare_lives, complete_todo, confirm_learned_fact, convert_contact_entity, correct_learned_fact, correct_memory_atom, create_condition, create_contact_list, create_place, create_project, create_time_capsule, create_todo, delete_event, delete_food, delete_interaction, delete_memory, delete_moment, delete_moment_preview, delete_movie_watch, delete_person, delete_person_preview, delete_place, delete_place_visit, delete_tv_watch, dismiss_clarification, enrich_place_from_google, expire_stale_learned_facts, explain_fact, find_identity_candidates, find_image_target, get_asset, get_berklee_relationship_map, get_cities_visited, get_conditions, get_countries_visited, get_current_states, get_day_notes, get_day_scores, get_dreams, get_entity_assets, get_entity_links, get_event_fact_source, get_favorite_foods, get_favorite_songs, get_finance, get_focus, get_food_log, get_food_visual_references, get_fundraising_candidates, get_health_trends, get_inventory, get_inventory_item, get_inventory_valuations, get_life_context, get_life_graph, get_location_context, get_location_history, get_money_between_people, get_movements, get_net_worth, get_people_cleanup_result, get_people_links, get_person_aliases, get_person_connections, get_person_context, get_person_interactions, get_person_neighborhood, get_person_transactions, get_photo, get_photos_for_event, get_photos_for_place, get_place, get_place_visits, get_places, get_playbook, get_project_metrics, get_projects, get_residences, get_saved_entities, get_shared_memories, get_subscriptions, get_taste_profile, get_time_blocks, get_time_capsules, get_todos, get_trades, get_transactions, get_travel_history, get_trip, get_trips, get_visual_references, get_voice_recording, get_watch_history, import_rideshare_gmail, import_uber_gmail, import_venmo_gmail, link_entities, link_inventory_person, link_people, list_clarifications, list_contact_lists, list_event_fact_corrections, list_gmail_accounts, list_learned_facts, list_voice_recordings, log_condition_checkin, log_dream, log_entry, log_favorite_song, log_movement, log_movie_watch, log_place_visit, log_project_kpi, log_travel, log_tv_watch, mark_playbook_complete, merge_memory, merge_moments, merge_near_memory, merge_people, merge_people_preview, normalize_people_apply, normalize_people_preview, notable_pack, notable_pack_premium, notable_profile, notable_search, preview_destructive_change, preview_memory_duplicates, preview_moment_duplicates, propose_life_update, read_gmail_attachment, read_gmail_message, record_health_trend, record_purchase, record_sale, reject_learned_fact, remove_people_from_list, remove_person_account, remove_person_alias, remove_person_contact_method, reopen_todo, reschedule_todo_session, resolve_clarification, resolve_place, restore_change, restore_cleanup, restore_event, restore_expense, restore_trip, retract_taste_card, save_day_note, save_day_score, save_favorite_food, save_focus, save_net_worth_entry, schedule_todo, score_people_duplicates, search_gmail, search_inventory, search_photos, search_transactions, search_voice_transcripts, set_person_account, set_primary_person_name, split_memory, start_people_cleanup, undo_contact_change, undo_event_fact_correction, unlink_people, unschedule_todo_session, update_asset, update_condition, update_contact_list, update_current_location, update_dream, update_expense, update_favorite_song, update_interaction, update_inventory_item, update_movie_watch, update_notable, update_people_link, update_person_alias, update_person_identity, update_place, update_place_visit, update_subscription, update_taste_card, update_time_block, update_todo, update_trip, update_tv_watch, upload_asset

Access

  • Pass
    Open access

    tools/list succeeded with no credential, and the record declares none.

  • Not measured
    Standard auth

    Auth is not required, so the OAuth metadata check does not apply.

  • Not measured
    Free tier cited

    No publisher quote has been checked.

Tools

  • Pass
    Tools described

    Every tool description is at least 20 characters.

  • Pass
    Valid input schemas

    Every inputSchema is a JSON Schema object.

  • Pass
    Parameters documented

    549 of 549 parameters have a description (100%). The bar is 80%.

  • Pass
    Safety hints

    Every tool sets readOnlyHint or destructiveHint.

Publisher

  • Pass
    Verified namespace

    Listed in the Official MCP Registry.

  • Pass
    Website matches publisher

    The website host matches the reverse-domain namespace.

  • Pass
    Source repo linked

    A repository URL is on file.

  • Not measured
    Repo owner matches

    This namespace is not an io.github login, so the owner comparison does not apply.

  • Pass
    Recently updated

    Updated 2026-09-11T01:01:05.771908Z, within 180 days.

  • Not measured
    Open-source licence

    The GitHub licence lookup has not returned an OSI result yet.

Start using Dayze — Life Context

Connect to this server

Choose your client, copy the configuration, then enable the server in your client’s MCP settings.

Run this command in your terminal, then restart Claude Code.

Claude Code

claude mcp add --transport http dayze-life-context https://dayze.com/api/mcp

Capabilities

Tools 42

create_goal

Create a life goal the user explicitly wants to track. Not a calendar event or streak tracker. Numeric goals are totals that build up and need target_value and target_unit; rate goals are a number per calendar month that can go down, such as monthly revenue, and need the same two fields; habit goals need habit_frequency and habit_target_count. Ask for missing facts; never invent aspirations. ($0.10; API key required)

Discovered
create_pending_reply

Pending Replies (Inbox): save a reply the user owes someone, e.g. 'what to reply to X', 'I owe X a reply'. Use this, not log_event or a task. Optional draft (the reply text), summary (one line in your own words; never the email body, subject or sender), channel, category, received_at, and source { kind, thread_id, message_id } (ids only). Links the contact only when resolve_person finds exactly one (or pass person_id); otherwise the reply is saved unlinked and person_link says why. An unsent reply for the same thread or person comes back instead of a second one (created: false, deduplicated: true); update_existing: true replaces its draft and summary. Never sends anything. Requires API key or OAuth with context.write; share tokens cannot write. ($0.10; API key required)

Discovered
create_person

Add a Dayze Contacts record, birthday included (YYYY-MM-DD, YYYY-MM, YYYY, or MM-DD if year unknown); checks duplicates first. An existing contact comes back unchanged with its person_id, not_applied (the fields you sent) and a hint. request_id is optional: without one, identical calls within 15 minutes return the first result. Advertised name create_person is stable; tools/call also accepts create_contact. ($0.10; API key required)

Discovered
create_tracker

Start a tracker for the user: title, tracker_type streak, sobriety, countdown or counter, start_date (default today), target_date for a countdown, target_days, emoji. Private. To reset one use reset_tracker. ($0.10; API key required)

Discovered
get_birthdays

Whose birthday is coming up or was just missed: the user's contacts with a birthday in a window (days_back before and days_ahead after today, 30 each, or from/to), in the account timezone. upcoming (days_until) and recent (days_since), soonest first then closest: birthday_on, age_turning (null when the year is unknown), birthday_precision, relationship, tier, is_favorite, last_in_touch, in_touch_since_birthday. Counts contacts without a birthday. Excludes Me, never-share and deceased contacts (include_deceased adds them as remembrance). ($0.05; API key required)

Discovered
get_context_pack

Life Context pack for one Dayze account (`account` names it — with more than one Dayze connection, say which account you are answering from): identity, pulse, people, next actions, memories, quizzes, recent consented place visits, and traced facts. Use include_*=false to omit default sections; current location and money stay opt-in. Spec: https://dayze.com/docs/life-context Records carry inspect_url (their Dayze page): cite with it, never build a link from an id; a record without one has no page (inspect_note says which). ($0.20; API key required)

Discovered
get_events

Authenticated user's calendar events. Prefer explicit from/to (YYYY-MM-DD). Shortcuts: today|week|month|year (calendar year)|decade. Browsing noise excluded by default. Records carry inspect_url (their Dayze page): cite with it, never build a link from an id; a record without one has no page (inspect_note says which). ($0.10; API key required)

Discovered
get_expenses

Cashflow totals at Finance FX. Use period all for all-time requests, never year. Requires OAuth or scoped credentials. ($0.10; API key required)

Discovered
get_goals

Read your owned life goals and progress. goal_id selects one; status defaults active, all includes completed goals. Each goal carries a computed progress object: kind, percent, this period, change on the previous period, and pace (null without a target date or enough history; never estimate one). Not calendar events or streak trackers. ($0.01; API key required)

Discovered
get_interactions

Bounded graph read over life_updates (PHI-54/61): traverse interaction → person/event/expense/place with source/confidence on every hop. When life_update edges are missing, projects hops from CRM interactions, event_people, and expense person FKs (PHI-100). Prefer for “who was I with at X?”, “when am I meeting Y next?”, “how much at Z?”. 93-day default window. Pass person_name, place_query, or ids. Records carry inspect_url (their Dayze page): cite with it, never build a link from an id; a record without one has no page (inspect_note says which). ($0.10; API key required)

Discovered
get_memories

Authenticated user memories from Dayze Agent. Pass query for semantic/keyword retrieval. Prefer search for event-first trip and calendar titles. Requires OAuth or a supported scoped credential. ($0.10; API key required)

Discovered
get_moments

List owned Moments by date, title, type, tag, person or place. Stable moment_id and inspect_url for each. ($0.05; API key required)

Discovered
get_pending_replies

Pending Replies (Inbox): the replies the user owes ('who do I owe a reply?'), newest first, or one by reply_id. status: unsent (default; pending + snoozed), sent, dismissed, all. Filter by person_name or person_id. Each reply has reply_id, person_name, person_id (null when unlinked), draft, summary, channel, category, source ids, status, state (unsent | sent | dismissed) and due (owed now; false while snoozed until snooze_until). Read-only. ($0.05; API key required)

Discovered
get_people

List or search the authenticated user's Dayze Contacts (private CRM; table people). query matches literal substrings of name, slug, email, occupation or context tags (no fuzzy fallback). context_tags requires all exact tags; occupation requires a substring. These filters combine with query and search the full owned contact set before pagination. Set wealth_category=reviewed for only explicitly owner-reviewed wealth-category contacts: returns id and name only, even with include_notes=true. That mode searches names only, uses offset rather than cursor, and cannot combine with occupation or context_tags. Without it, each contact includes avatar_url, photo_count, and has_photos; use get_person_photos(person_id) for the full gallery. With financial_details:read, net_worth_assessment includes category, scope, estimated range (when supported), confidence, methodology, caveat, dated source URLs, and review date. Context-only and insufficient-evidence assessments carry no personal number. birthday_precision says which parts of birthday are real: month_day means the year is unknown (stored 1900, or 1904 for Feb 29), year means only the year. Notes omitted by default (has_notes flag); pass include_notes=true for progressive fetch (credential/secret spans are redacted server-side). Supports limit (default 100, max 500) and offset; returns total and truncated. Distinct from public notable People at /people. Advertised name get_people is stable; tools/call also accepts get_contacts / list_contacts. Requires OAuth or a supported scoped credential. ($0.10; API key required)

Discovered
get_person_photos

Read a contact avatar and gallery as inline MCP images with per-asset render status. Avatar comes first. Use offset to page through photos (up to six per call); never paste raw image URLs into chat. ($0.10; API key required)

Discovered
get_sleep

Sleep: list typed sleep/nap records with duration_minutes. ($0.05; API key required)

Discovered
get_sleep_summary

Sleep: day/week/month totals and averages. ($0.05; API key required)

Discovered
get_timeline

The user's days in one read: calendar events, Moments (lived stories) and Food Diary entries for a civil date range in the account timezone (max 92 days; default today). A food entry's calendar mirror is listed once, under food. Text the connection may not see is redacted as in get_events. Each record keeps its id and inspect_url where it has a page. ($0.05; API key required)

Discovered
get_today

Today in the user's timezone: local date and time, today's events, Moments and Food Diary entries, and today's money totals by category. Use first when an agent needs the user's current day. ($0.05; API key required)

Discovered
get_trackers

Authenticated user live trackers only; expired countdowns and inactive streaks are omitted. Sobriety/streak trackers remain visible at day 0 after a reset. Merges event-backed trackers with the trackers table when present. current_value is read from the tracker's events: days for sobriety/streak, days left for a countdown, the total for a counter (value_unit), with last_event_date. Returns up to `limit` trackers (default 50, max 200; get_context_pack's active_trackers keeps 6); total and truncated say whether more exist. Requires OAuth or a supported scoped credential. ($0.10; API key required)

Discovered
log_event

MUTATES the calendar (non-food events, tasks, sleep). Replies owed ('what to reply to X') go to create_pending_reply. Woke at X: end_time. Requires title+date. No-date task: use create_todo with no date, never log_event with today. Goal steps: create_todo; schedule_todo only when told when. Soft dates keep date_precision. Past story: log_moment (+event_id), not a 2nd event. Wake-only sleep: category sleep, event_date=wake day, end_time only. Past-tense: reminder_enabled=false. Prefer log_travel for trips/residences. Share tokens cannot write. ($0.10; API key required)

Discovered
log_expense

Create an outgoing expense only. For money received (Venmo/Cash App/PayPal/Zelle) use log_transaction with direction=from and type=income. Lending a contact cash: category "IOU lend" + person_id (one call creates the IOU they owe and shows the money out once). ($0.10; API key required)

Discovered
log_food

MUTATES the authenticated user Food Diary and calendar. Use when they ate or drank — do not store this as a chat memory. Supports dish_items for multiple named dishes with optional price and rating. Example: “I had Mee Pok for late lunch with my parents” → log_food({ what: "Mee Pok", kind: "meal", meal_period: "late lunch", with: ["my parents"] }). Optional: calories (user-stated kilocalories), place/merchant, amount, consumed_at (ISO). Explicit calories override the automatic heuristic. Resolves with/Mum/Dad via person aliases; unknown names do not fail the food write. Tags companions on the mirrored event. Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)

Discovered
log_income

Record money received (Stripe, refunds, payroll, Venmo). log_transaction with type income and direction from already set (pass neither). Use external_id for Stripe/Gmail idempotency. A contact paying back an IOU: category "IOU repayment" + person_id (lowers the IOU, shows the money once). A contact lending the user cash: category "IOU lend" + person_id (creates the IOU the user owes, shows the money once). ($0.10; API key required)

Discovered
log_interaction

Contacts: log that the user was in touch with a contact ('I replied to Vadim', 'called Mum'): kind message, call, meeting, note, check_in or thought_of. Private to the owner. person_id (an owned contact) or person_name (linked only on one resolve_person match; otherwise nothing is logged and the candidates come back). With reply_id it also marks that Pending Reply sent: this interaction is the reply's one write-back (a later resolve adds no second). summary: one line in your own words, never email text or a subject. occurred_at: when it happened (ISO), default now; not in the future. A past occurred_at never moves the contact's last interaction backwards (to correct that date, use update_person last_interaction_at). Never sends anything. Requires API key or OAuth with context.write. ($0.05; API key required)

Discovered
log_moment

Save a past story or memory as a private moment. Plans go to log_event; a touchpoint with a contact to log_interaction. Requires title, and moment_date (YYYY-MM-DD, YYYY-MM or YYYY; alias date) unless event_id is given. With event_id (an owned event the story is about) it creates a NEW moment linked to that event and takes the event's date and location when you pass none; the event itself is never changed, converted or deleted, and one event can have many moments. Don't also save the story as an event. Optional: description (the longer story), moment_date_precision (exact, month, year, circa), end_date, moment_type (default memory), location_name (only a place the user said), person_ids (owned contacts; any other id saves nothing), people_names (tag saved contacts only, never created), cover_image_url / media_urls (https links), tags. Always private: there is no visibility argument; the owner shares a moment in Dayze. Fix it later with update_moment. Requires API key or OAuth with context.write. ($0.10; API key required)

Discovered
log_sleep

Sleep: log overnight or nap. Cross-midnight OK (e.g. 14:00→03:00 = 13h / 780m). ($0.10; API key required)

Discovered
log_transaction

Income/expense/transfer. from+income = received. IOU repayment/lend need category + person_id (direction from/to). Invoice: iou_type invoice. Open-IOU income needs not_iou_repayment=true. Unknown person_id errors; changes nothing. ($0.10; API key required)

Discovered
reset_tracker

Preview first, 30-day undo. Resets a sobriety/streak tracker for the authenticated user (sets current value to 0 and restarts the clock). Prefer tracker_id from get_trackers, or tracker_title fuzzy match; optional reset_at (ISO) and note go in the preview arguments. Rebuilds life_state. Reviewed and reversible: first call preview_destructive_change({ tool: "reset_tracker", arguments: { tracker_id } }), which stores the exact change without applying it. After the user confirms, call reset_tracker with preview_id, restore_window_acknowledged: true and request_id; the reviewed preview is applied exactly and a changed record is refused. Returns restore_id; restore_change({ restore_id }) undoes it for 30 days unless the record was edited since. Restore puts back the previous start date, streak and reset count. Requires API key or OAuth with context.delete. Share tokens cannot write. ($0.10; API key required)

Discovered
resolve_pending_reply

Pending Replies: mark a reply done: sent (default; the user replied, logged privately in the contact's history) or dismissed. Dayze sends nothing. By reply_id, or person_name / person_id when that person has exactly one unsent reply (otherwise the candidates come back and nothing changes). Marking sent writes one private interaction for the linked contact (not for an unlinked reply, and not twice); interaction in the result says what was written. Reopen with update_pending_reply status pending. Requires API key or OAuth with context.write. ($0.05; API key required)

Discovered
resolve_person

Resolve a nickname or surface name to a Dayze Contacts row via person_aliases → exact name → slug → unique substring. Returns avatar_url, photo_count, has_photos, and photos[{url,is_primary}] preview; use get_person_photos for full gallery. With financial_details:read, net_worth_assessment has the same sourced fields as the Contacts card; context-only evidence carries no personal number. Notes omitted unless include_notes=true (redacted). person.lists names the contact lists they are on. Prefer this before money or relationship tools when the agent only has a nickname. Advertised name resolve_person is stable; tools/call also accepts resolve_contact. ($0.05; API key required)

Discovered
search

Search the authenticated user life graph. Optional from/to (aliases start/end) are inclusive account-local civil dates on every search route; either bound may be used alone. Dated semantic and keyword records use event date, expense date, goal start date, check-in date, or the account-local creation date of contacts and memories. Deterministic routing first: food or relative dates (e.g. "what did I eat yesterday?"); timeline/current-context; money+person; who-is → resolve_person. Otherwise semantic/keyword search. Event hits include event_date and food_id when mirrored from Food Diary. Browser-history titles are excluded. Credential/secret spans are redacted. Records carry inspect_url (their Dayze page): cite with it, never build a link from an id; a record without one has no page (inspect_note says which). Requires OAuth or a supported scoped credential. ($0.15; API key required)

Discovered
search_moments

Search only owned Moment stories and titles within an optional date range. Returns stable moment_ids. ($0.05; API key required)

Discovered
search_tools

Discover Dayze MCP tools outside the core default expert listing. Returns matching opt-in tools with their toolset and how to enable them (URL ?toolsets=, tools/list params, or tools.* connection scopes). Call with no query to list available toolsets. Core everyday tools are already listed; this does not replace tools/list. ($0.00)

Discovered
update_event

MUTATES one existing calendar event the authenticated user owns. Required: event_id (UUID). Optional patch (same fields as log_event): title, date / event_date, time / event_time, end_date, end_time, location, description (alias notes), category, external_url, image_url, timezone, visibility, people / with / person_ids, scoreboard (merged; null clears), reminder_enabled (false turns the push reminder off; needs a timed event to turn on), reminder_minutes_before. Adds a bedtime to a wake-only sleep: event_time (and event_date / end_date when it was the night before). Unknown or other-user event_id returns an error and does not create a row. For food-diary meals, prefer update_food (it syncs the mirrored event). Rebuilds life_state. Requires API key or OAuth with scope context. Share tokens cannot write. ($0.10; API key required)

Discovered
update_food

MUTATES one owned Food Diary row by food_id. Same fields as log_food; omitted stay. dish_items replaces the full dish list. A dish/notes correction never creates another Finance row. expense_id null unlinks. Unknown/other-user food_id or expense_id errors and changes nothing. Share tokens cannot write. ($0.10; API key required)

Discovered
update_goal

Patch one owned goal by goal_id from get_goals. Set current_value to absolute progress, not a delta. On a rate goal current_value is this month's number and replaces the last one. Omitted fields remain unchanged. Never select a goal by a guessed ID. request_id required. ($0.10; API key required)

Discovered
update_moment

Patch one owned moment by moment_id (from log_moment); fields left out are untouched. It stays private. Requires moment_id. Patchable: title, description, moment_date, moment_date_precision, end_date, moment_type, location_name, people, event_id, images, tags. Unknown or other-user moment_id returns an error and creates nothing. person_ids / people_names, media_urls and tags replace the stored list ([] clears); event_id links an owned event (the event is not changed), empty or null unlinks. Visibility is not an argument. Returns changed_fields. Requires API key or OAuth with context.write. ($0.10; API key required)

Discovered
update_pending_reply

Pending Replies: change one reply by reply_id: its draft (replaces; null clears), summary, channel, category, received_at, person (person_id, or person_name linked only on one match), source, or status pending (reopen / unsnooze) or snoozed with snooze_until. Unknown or other-user reply_id returns not_found. To mark it sent or dismissed use resolve_pending_reply. Never sends anything. Requires API key or OAuth with context.write. ($0.10; API key required)

Discovered
update_person

MUTATES one owned Dayze contact by person_id. context_tags-only patches ok (full desired array; repeats are no-ops). last_interaction_at corrects last touch (owner-set). personal-write OAuth needs request_id (unique per write; reuse to retry). Omitted fields stay. undo_contact_change(change_id) reverts. Requires context.write; share tokens cannot write. ($0.10; API key required)

Discovered
update_sleep

Sleep: patch an existing sleep record by sleep_id. ($0.10; API key required)

Discovered
upload_photo

Upload a photo to a Life Graph entity you have (event, expense, place, person, inventory, …). Accepts image_base64, url, or ChatGPT file object `image` ({download_url, file_id}). Normally re-encodes as WebP; original_preserved and metadata_stripped describe the saved bytes. Partial results include an asset_id for repair: call upload_photo with asset_id and a new request_id, without image bytes. Answers attached: true only after readback confirms asset id, content_type, byte_size, and a viewable URL on the record — never from OCR text alone. Mobile file references without download_url fail clearly (attached: false). Person uploads also write the CRM gallery (person_photos) and avatar when set_as_avatar=true. ($0.15; API key required)

Discovered

Recent measurements

Probe history

View status
Latest stored probes. Raw probe rows are kept for 14 days.
CheckedResultResponseTools
Connected702 ms42
Connected828 ms262