MH MediaHarvester Web Context API

Brand Design

Building Brand Assets That Are Ready to Use: Lessons from Clearbit Logo API Shutdown: Migrate to a web context API for Seamless Logo Integration

A MediaHarvester implementation guide prompted by clearbit logo api shutdown: migrate to a web context api for seamless logo integration, with a tested API workflow, visual map and practical deployment decisions.

Brand Design workflow
Domain Brand Assets Style Tokens Preview Export

Why this subject deserves an implementation guide

The starting question for this article came from a public Context.dev post titled "Clearbit Logo API Shutdown: Migrate to Context.dev for Seamless Logo Integration". Rather than reproduce that article, this guide asks what the same product problem looks like inside MediaHarvester and what can be verified in the running application.

Logo delivery looks trivial until a provider endpoint is retired or a previously cached asset disappears from a customer-facing table. Migration work is therefore an availability problem as much as an image problem.

The MediaHarvester approach

A sensible migration inventory starts with every embedded logo URL, spreadsheet formula and CRM component, then replaces vendor-specific lookups with Logo Link while verifying fallback monograms and HEAD responses.

The primary surface for this workflow is `GET /v1/web/styleguide`. It can be tried from the API playground and integrated through the local API key, SDK, CLI or MCP layer.

Workflow map

Domain Brand Assets Style Tokens Preview Export
An agency is preparing a proposal portal that should feel familiar to a new client before the first workshop.

A realistic application scenario

An agency is preparing a proposal portal that should feel familiar to a new client before the first workshop.

The workflow begins with a narrowly scoped public or authorized source, records the endpoint output and makes the result reviewable before it becomes visible to users or informs an automated decision.

Try the capability

GET /v1/web/styleguide Local API key: mh-localhost-dev-key
GET /v1/web/styleguide?domain=haberler.com

Implementation choices that matter

Do not wait for a broken logo badge to discover dependency risk. Put provider migration behind a stable internal URL contract and monitor missing-asset frequency.

This matters because a production feature is judged less by a perfect demo result than by how it behaves when an asset is missing, a source changes, a response is cached or a request is not allowed.

How to measure whether it works

Track migrated embeds, fallback rate, response availability and the number of interfaces that no longer depend directly on a retiring vendor endpoint.

The app should retain enough source and request metadata to debug poor results while applying appropriate retention and access policies for customer data.

A responsible next step

Run the included endpoint against a website you control or are authorized to process, inspect the response in Visual and JSON modes, then decide which fields deserve automation and which deserve human approval.

MediaHarvester deliberately treats blocked, verification-required, login-required, robots-disallowed and permission-required outcomes as information, not obstacles to be bypassed.

FAQ

Questions teams ask before implementing this workflow

What does this brand design workflow return?

It uses GET /v1/web/styleguide and related MediaHarvester surfaces to return structured context together with metadata appropriate to the workflow.

Can I test this locally?

Yes. Run the local service at http://127.0.0.1:8013 and send X-API-Key: mh-localhost-dev-key to protected API routes.

Does it work with private or blocked pages?

The platform is designed for publicly accessible or authorized sources. Verification, login, permission and robots restrictions are reported rather than bypassed.

Can this be automated?

The same API surfaces are available through CLI, Python and TypeScript SDKs, MCP tools and starter no-code integration templates.

How do I keep the result current?

Use cache freshness controls such as maxAgeMs where exposed, and schedule refreshes in a production worker only as frequently as the business case needs.