Install Jentic One Beta
Jentic One is a self-hosted execution layer for AI agents. It lets your agent call the elmah.io API, or any other public or private API you need. You set the rules, the agent never sees your credentials, and every call is logged.
Two steps, two machines. Install the instance in a safe environment, then register your agent from wherever it runs.
Step 1: Jentic One Host machine
# On the machine that will host your Jentic One instance:
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Felmah.io%2Felmah" | shStep 2: Agent machine
# On the machine where your agent runs (keep this separate from the instance):
curl -fsSL "https://jentic.com/install.sh?src=apis&api=%2Fapis%2Felmah.io%2Felmah" | sh
jentic register # connects your agent to your Jentic One instanceJentic One is in public beta. The setup above keeps your agent separate from the instance, which is what you want before using real credentials: an agent running as the same OS user as Jentic One can read its stored keys directly. Just evaluating? A single local install is fine to start. See the secure deployment guide for the tiers.
What an agent can do with elmah.io API.
Ingest error and log messages via POST /v3/messages/{logId} including bulk submission with /v3/messages/{logId}/_bulk
Mark a single message or a queryable batch as fixed using the _fix endpoints
List and delete logs, and disable or enable a log without deleting it
Record deployment markers via /v3/deployments to correlate releases with error spikes
GET STARTED
Submit heartbeats from scheduled jobs and monitor missed heartbeats
Upload source maps for minified JavaScript stack-trace symbolication
Diagnose ingestion problems with GET /v3/logs/{id}/_diagnose
Patterns agents use elmah.io API for, with concrete tasks.
★ Application Error Logging
Ship error and log entries from a web application into elmah.io for triage and search. POST /v3/messages/{logId} accepts a single message and /v3/messages/{logId}/_bulk handles batched submissions during high-volume incidents. Once ingested, GET /v3/messages/{logId} supports query-based filtering so an on-call engineer can drill into a specific error class. Designed for production traffic of millions of messages per day per log.
POST a message with severity=Error and title='NullReferenceException at /checkout' to log_id=abc123, then query the log for the last 10 messages with the same title
Deployment Tracking and Release Correlation
Record a deployment marker at every release so error spikes can be attributed to specific deploys. POST /v3/deployments creates the marker, and GET /v3/deployments lists prior releases for the dashboard. Combined with the messages endpoints, this lets a release-engineering tool answer 'which deploy introduced this error class?' programmatically.
POST a deployment with version='2026.6.10', then list deployments and confirm the new entry is at the top
Heartbeat Monitoring for Scheduled Jobs
Use elmah.io as a dead-man's-switch for cron jobs and scheduled workers by calling POST /v3/heartbeats/{logId}/{id} on every successful run. Missed heartbeats raise an alert in elmah.io, which lets an SRE team detect silent failures in batch jobs without building a separate uptime system.
Send a heartbeat with reason='nightly billing run completed' for log_id=abc123 and heartbeat_id=billing-nightly
Triaging and Marking Errors Fixed
Build an internal triage tool that lets engineers mark errors as fixed in bulk after a deploy. POST /v3/messages/{logId}/_fix accepts a query so a single call can mark every NullReferenceException in /checkout as fixed, while POST /v3/messages/{logId}/{id}/_fix handles single-message fixes. Hide endpoints exist for noisy errors that should be suppressed without claiming a fix.
Mark all messages in log_id=abc123 with title='NullReferenceException at /checkout' as fixed via POST /v3/messages/{logId}/_fix
AI Agent Integration via Jentic
Build an AI on-call agent that pages an engineer when a new error class spikes, then drafts a fix and marks the matching messages as fixed once a PR merges. Through Jentic, the agent searches by intent, loads the message-fix schema, and executes without holding the elmah.io api_key in its prompt.
Search Jentic for 'mark elmah messages as fixed', load the schema for POST /v3/messages/{logId}/_fix, and mark messages matching the resolved error query as fixed
24 endpoints — elmah.
METHOD
PATH
DESCRIPTION
/v3/messages/{logId}
Create a new message
/v3/messages/{logId}/_bulk
Create one or more new messages
/v3/messages/{logId}/_fix
Mark a list of messages as fixed by query
/v3/deployments
Create a deployment marker
/v3/heartbeats/{logId}/{id}
Create a heartbeat
/v3/logs/{id}/_diagnose
Diagnose ingestion problems for a log
/v3/sourcemaps/{logId}
Upload a source map
/v3/messages/{logId}
Create a new message
/v3/messages/{logId}/_bulk
Create one or more new messages
/v3/messages/{logId}/_fix
Mark a list of messages as fixed by query
/v3/deployments
Create a deployment marker
/v3/heartbeats/{logId}/{id}
Create a heartbeat
/v3/logs/{id}/_diagnose
Diagnose ingestion problems for a log
/v3/sourcemaps/{logId}
Upload a source map
What agents get from Jentic-routed access to this vendor.
Setup
Wiring elmah.io by hand means handling its API-key auth, appending the api_key query parameter to every call, and mapping message, deployment, and heartbeat operations yourself. Through Jentic you install once, import the elmah.io API from the API Directory, store the API key once, and your agent calls it.
Permission scoping
elmah.io puts the log id in the URL path (/v3/messages/{logId}, /v3/heartbeats/{logId}/{id}), so a rule can pin your agent to one log. You choose the operations it may call, so bulk writes or marking messages fixed are not included unless you add them.
Credential isolation
Your elmah.io API key is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
Intent-based discovery
Agents search Jentic by intent such as 'send an error log' or 'record a deployment marker', and Jentic returns the matching elmah.io operation with its input schema so the agent calls the right endpoint without browsing the reference docs.
Alternatives and complements available in the Jentic catalogue.
Specific to using elmah.io API through Jentic.
What authentication does the elmah.io API use?
The elmah.io API uses an API key passed as a query parameter named api_key on every request. Through Jentic, the api_key is stored encrypted in the vault and appended to outgoing requests at execution time so the agent never sees the raw key. See https://docs.elmah.io/where-is-my-api-key/ for where to find your key.
Can I bulk-submit messages to elmah.io?
Yes. POST /v3/messages/{logId}/_bulk accepts an array of messages in a single request, which is the recommended path for ingestion clients shipping more than a few messages per second to a single log.
How do I mark a class of errors as fixed at once?
Use POST /v3/messages/{logId}/_fix with a query in the body to fix every matching message in one call. Single-message fixes go through POST /v3/messages/{logId}/{id}/_fix instead.
Does elmah.io support deployment markers?
Yes. POST /v3/deployments records a deployment with version, description, and user metadata, and GET /v3/deployments lists prior markers. The dashboard overlays markers on error charts so spikes can be attributed to releases.
How do I send a heartbeat for a scheduled job through Jentic?
Run the Jentic search query 'send an elmah.io heartbeat', load the input schema for POST /v3/heartbeats/{logId}/{id}, then execute with the heartbeat ID and a status. Missed heartbeats raise alerts in the elmah.io dashboard.
Is the uptime-checks endpoint generally available?
GET /v3/uptimechecks is documented as currently in closed beta in the API spec; contact elmah.io support to be enrolled. The other endpoints in this API are generally available.
Can I limit what my agent is allowed to do with the elmah.io API?
Yes. Because you run Jentic One yourself, your own rules decide which elmah.io operations and credentials the agent may use. Since elmah.io puts the log id in the URL path for calls like POST /v3/messages/{logId} and POST /v3/heartbeats/{logId}/{id}, you can pin the agent to a single log, and you choose the exact operations it may call. That means writes such as bulk ingestion via /v3/messages/{logId}/_bulk or marking messages fixed via /v3/messages/{logId}/_fix are excluded unless you grant them.
For Agents
Ingest and query application error logs in elmah.io: create messages, mark messages as fixed, manage logs and deployments, and submit heartbeats. Authenticated with an api_key query parameter.
Use for: I need to send a new error log to elmah.io, Mark an error message as fixed, List all logs in the elmah.io account, Record a deployment marker for the latest release
Not supported: Does not handle metrics, distributed tracing, real-user monitoring, or paging on-call engineers - use for application error logging, deployment markers, and heartbeat monitoring only.
elmah.io is an error-logging and uptime-monitoring service for .NET, JavaScript, and other web applications. The public REST API exposes 24 endpoints across logs, messages, deployments, heartbeats, installations, source maps, and uptime checks - every integration that ships log entries to elmah.io speaks this API. Authentication is a single api_key passed as a query parameter against https://api.elmah.io. The API is the only supported way to ingest log messages, mark them as fixed, and read deployment markers programmatically.