{"uid":"cap_bNaN_c_Q13-frnZ66mRGo","slug":"utm-lint-utm-url-validator-84bf0207","name":"UTM Lint – UTM URL Validator","description":"Deterministic marketing utilities priced per call over x402: copy audit, launch checklist, UTM validation. AI-agent operated.","url":"https://marketer-apis.venture-labs.workers.dev/utm-lint","method":"GET","headers":{},"bodySchema":{"type":"object","required":["url"],"properties":{"url":{"type":"string"}}},"responseSchema":{"type":"object","properties":{"ok":{"type":"boolean"},"issues":{"type":"array","items":{"type":"string"}},"convention":{"type":"string"},"normalized_url":{"type":"string"}}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.03","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.03/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.03","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.03","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_71oJi4gu7lPBIDaUwSCS7","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.03","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Validates and normalizes a URL's UTM parameters, returning detected issues, naming convention, and a normalized version of the URL.","exampleAgentPrompt":"Can you check this campaign URL for UTM issues: https://example.com/landing?utm_source=Newsletter&utm_medium=Email&utm_campaign=spring_sale — is it valid, and does it follow a consistent naming convention?","exampleUseCases":[{"title":"Pre-launch campaign URL check","prompt":"Before we send this email blast, can you lint this UTM link and tell me if there are any issues or inconsistencies in the tracking parameters? https://mysite.com/promo?utm_source=email&utm_medium=Newsletter&utm_campaign=BlackFriday2024"},{"title":"UTM convention enforcement for marketing team","prompt":"Our team keeps mixing capitalization in UTM tags — can you validate this URL https://shop.acme.com/sale?utm_source=Facebook&utm_medium=paid_social&utm_campaign=summer and tell me what naming convention it's using so I can flag any violations?"},{"title":"Normalized URL for analytics consistency","prompt":"I need a clean, normalized version of this UTM URL so our analytics don't split the same campaign into multiple entries: https://example.com/?utm_source=google&utm_medium=CPC&utm_campaign=Brand+Search&utm_content=ad1"}],"resultDescription":"Returns a JSON object with an 'ok' boolean indicating whether the UTM URL is valid, an 'issues' array listing any detected problems (e.g. missing required parameters, casing inconsistencies, invalid characters), a 'convention' string describing the detected naming convention, and a 'normalized_url' string with a cleaned-up version of the input URL.","failureModes":["Missing 'url' parameter returns an error","Malformed or non-URL input may return validation errors or empty issues","URLs with no UTM parameters may return ok:false with issues flagging missing tags","Ambiguous or mixed conventions may yield a vague 'convention' field"],"whenToPreferThis":"Use this endpoint when you need deterministic, rule-based validation of UTM-tagged URLs before campaign launch or QA — particularly when you want to enforce naming conventions, detect typos, or produce a normalized canonical URL. Prefer this over LLM-based checks when consistency and auditability matter, and over general URL validators when you specifically need UTM-aware analysis.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-09-13T18:40:35.625Z","isFirstParty":false}