jo4 integration
jo4 is a URL shortener with campaign analytics. Create, look up, list, update, bulk import and delete branded short links (custom alias, custom domain, UTM tags, expiry, password, scheduling, deep links, social preview), read click statistics, record and read conversions, run A/B tests that split traffic between destination variants, manage custom domains (add, verify, SSL), and manage webhooks and their delivery log. Referral programs, API key management, OAuth and the public click-tracking routes are not exposed. Authentication is an API key created in the jo4 app, sent in the X-Jo4-API-Key header (requests per minute per key depend on the plan).
Say what should happen.
The workflow builds itself.
What you can do with jo4
Each of these is one operation on one endpoint, available both as a workflow step and as a tool an AI agent can call on its own. Nothing bundles several operations into one action, so what a run did stays readable afterwards.
Most endpoints run on the free plan. A few, mainly the ones that publish on your behalf, need a paid plan.
Webhook, 5 operations
create_webhookCreate webhookPOSTCreates a webhook that POSTs jo4 events to an HTTPS url. events is a comma-separated string. Deliveries are signed (X-Jo4-Signature) only once you set a secret with update_webhook; the secret is never returned.delete_webhookDelete webhookDELETEDeletes a webhook by its numeric id. Its endpoint stops receiving events.get_webhookGet webhookGETGets one webhook by its slug. The signing secret is not returned.list_webhooksList webhooksGETLists your webhooks with their url, subscribed events, enabled flag, last trigger time and failure count. The signing secret is not returned.update_webhookUpdate webhookPUTUpdates a webhook by its numeric id: name, url, events, enabled, or a signing secret. Leave a field out to keep its current value. The secret is not returned.
Domain, 4 operations
add_domainAdd domainPOSTAdds a custom domain for your short links. Returns the DNS TXT record and CNAME target to create; then call verify_domain and provision_domain_ssl.delete_domainDelete domainDELETERemoves a custom domain by its numeric id.get_domainGet domainGETGets one custom domain by its numeric id: verification and SSL status and the DNS TXT and CNAME records to create.list_domainsList domainsGETLists your custom domains with their verification and SSL status and the DNS records each one needs.
Url, 4 operations
create_short_urlCreate short urlPOSTCreates a short link for longUrl (required). Optional custom alias (shortUrl), custom domain, UTM tags, expiry, password, schedule, deep links and social preview. Returns response.fullShortUrl and response.slug.delete_short_urlDelete short urlDELETEDeletes a short link by its numeric id (not its slug). The link stops redirecting.get_short_urlGet short urlGETGets one short link by its slug (the 32-character id from create_short_url, not the alias). To check whether an alias exists use check_alias_availability.update_short_urlUpdate short urlPUTUpdates a short link by its numeric id (not its slug). Send only the fields to change; leave the others out to keep their current value (the jo4 example sends only longUrl).
Variant, 4 operations
add_ab_test_variantAdd ab test variantPOSTAdds a variant to the A/B test of a short link (by slug). Returns the new variant.delete_ab_test_variantDelete ab test variantDELETERemoves a variant from the A/B test of a short link.list_ab_test_variantsList ab test variantsGETLists the variants of the A/B test of a short link (by slug), with each one's share of traffic, visitors, conversions and conversion rate.update_ab_test_variantUpdate ab test variantPUTUpdates the name, destination or traffic share of an A/B test variant. Leave a field out to keep its current value.
Ab test, 3 operations
create_ab_testCreate ab testPOSTStarts an A/B test on a short link (by slug): a variant destination receives splitPercentage of the traffic, the original destination the rest. Returns the new variant.end_ab_testEnd ab testDELETEEnds the A/B test of a short link (by slug).get_ab_testGet ab testGETGets the A/B test of a short link (by slug): status (RUNNING, PAUSED, COMPLETED, PROMOTED), visitors, conversions and revenue per variant, the best variant and whether the result is statistically significant.
Conversion, 3 operations
delete_conversionDelete conversionDELETEDeletes one recorded conversion of a short link.list_conversionsList conversionsGETLists the conversions recorded for a short link (by slug), page by page (page is zero-based, size defaults to 30).record_conversionRecord conversionPOSTRecords a conversion (a sale, sign-up or other goal) for a short link, by slug, with an optional value, currency, quantity and attribution model. Returns the stored conversion.
Event, 2 operations
get_webhook_eventGet webhook eventGETGets one webhook delivery with its status, attempts, last response code, last error and the delivered payload.list_webhook_eventsList webhook eventsGETLists past webhook deliveries with their status, attempt count, last response code and error, page by page (page is zero-based, size defaults to 20).
Stats, 2 operations
get_conversion_statsGet conversion statsGETGets conversion statistics of a short link (by slug): totals, revenue, conversion rate and breakdowns by event type, country and device, optionally between startTime and endTime (Unix ms).get_short_url_statsGet short url statsGETGets click statistics of a short link (by slug): total clicks, and breakdowns by device, browser, country, city, referrer, language and UTM values, optionally between startTime and endTime (Unix ms).
Avail, 1 operation
check_alias_availabilityCheck alias availabilityGETChecks whether a custom alias is still free to use for a new short link. Returns response.available.
Bulk import, 1 operation
bulk_import_short_urlsBulk import short urlsPOSTCreates many short links in one call (counts as one request for rate limiting). Each item takes longUrl, and optionally shortUrl, title and tags (comma-separated). Returns a per-item result.
Config, 1 operation
get_domain_configGet domain configGETGets the CNAME target custom domains must point to and the maximum number of custom domains your account may add.
Myurl, 1 operation
list_short_urlsList short urlsGETLists your short links, page by page (page is zero-based, size defaults to 30). Set withStats=true to include click totals for each link in one call.
Og preview, 1 operation
get_og_previewGet og previewGETReads the social preview metadata of a page (Open Graph and X card title, description, image, site name).
Pause, 1 operation
pause_ab_testPause ab testPOSTPauses the running A/B test of a short link (by slug). Resume it with resume_ab_test.
Promote, 1 operation
promote_ab_test_winnerPromote ab test winnerPOSTPromotes the winning variant of the A/B test of a short link (by slug). Read get_ab_test first to see the best variant.
Provision ssl, 1 operation
provision_domain_sslProvision domain sslPOSTRequests an SSL certificate for a custom domain (by numeric id). Returns the domain with its sslStatus (PENDING, PROVISIONING, ACTIVE, FAILED or EXPIRED).
Refresh metadata, 1 operation
refresh_short_url_metadataRefresh short url metadataPOSTRe-reads the title, description and images of the destination page of a short link (by numeric id) and returns the updated link.
Resume, 1 operation
resume_ab_testResume ab testPOSTResumes a paused A/B test of a short link (by slug).
Retry, 1 operation
retry_webhook_eventRetry webhook eventPOSTSends a webhook delivery again (use it on a failed one). Returns the delivery with its new status.
Url check, 1 operation
check_urlCheck urlGETChecks a URL: where it finally resolves, its redirect chain, DNS records, SSL certificate, a safety status and the response time.
Verify, 1 operation
verify_domainVerify domainPOSTChecks the DNS records of a custom domain (by numeric id) and returns its updated verification status.
Winner, 1 operation
declare_ab_test_winnerDeclare ab test winnerPOSTDeclares a given variant the winner of the A/B test of a short link (by slug).
Use jo4 from Claude Code, Cursor or Codex
Connect jo4 in LiveContext, create an API key in Settings, then add the LiveContext MCP server to your client. Its jo4 operations become tools the client can call, next to every other integration you connected.
claude mcp add --transport http livecontext https://livecontext.ai/mcp --header "X-API-Key: YOUR_API_KEY"[mcp_servers.livecontext]
url = "https://livecontext.ai/mcp"
[mcp_servers.livecontext.http_headers]
"X-API-Key" = "YOUR_API_KEY"{
"mcpServers": {
"livecontext": {
"type": "http",
"url": "https://livecontext.ai/mcp",
"headers": {
"X-API-Key": "YOUR_API_KEY"
}
}
}
}How to connect jo4
- Create your workspace
Sign up free. Nothing to install.
- Connect jo4 once
Add your jo4 connection in Settings. Every tool from this integration reuses it, and secrets are encrypted at rest and visible only to you.
- Describe the job in chat
The workflow builds itself in front of you and picks the endpoints it needs. Drag the steps yourself on the canvas whenever you would rather be explicit.
jo4 integration FAQ
What can you do with the jo4 integration?
LiveContext exposes 41 operations on jo4, covering webhook, domain, url and variant.
