Agents & API docsContext and tools

Applification API docs for agents.

Using an agent to explore my work or products? It can read the OpenAPI reference, call the developer sandbox, find client work, read my writing, explore products and help prepare an enquiry.

Start without an account

Everything here is a free tier. There is no sign-up, API key, trial period or sales contact, so an agent can go from finding this page to a successful call on its own.

The sandbox is the live API. Every request is read-only with no side effects, so there is no separate test environment to request. One request confirms that end to end and lists what to try next.

curl --fail --show-error 'https://www.applification.net/api/v1/sandbox'
Free tier
Every endpoint under /api/v1, without time limit. The catalog records this as freeTier true and price 0.
API keys
None are issued or read. Requests carrying credentials are treated as anonymous.
Sandbox
GET /api/v1/sandbox returns status ok, the onboarding facts with a URL that verifies each one, and suggested next requests.
Make the first call

See what your agent can read

Choose a part of the site to explore, or add a few search words. Results include a short summary and a source link. Your agent can then read the details it needs.

This reader works without JavaScript. It opens public information and makes no changes.

Use it through your browser

A browser agent with WebMCP support can use search_site to find relevant evidence, then read_content to read a result. For example, it can find client work involving production AI interfaces.

{ "query": "production AI", "type": "client-work" }

On the contact page, your agent can fill an editable enquiry using the details you provide. You review it and decide whether to send. The public information tools also work through the HTTP API.

Install a skill

Skills give a coding agent ready-made instructions for a task. Applification publishes its skills on skills.sh from public GitHub repositories, so one command installs them into Claude Code, Cursor, Codex and other agents.

  • applification-site: Read public information about Dave Hudson and Applification Ltd, who provide senior contract AI product engineering (React, Next.js, TypeScript) for small product teams on remote UK contracts, plus the open-source products Contexture and Voiced. Use when a user asks whether Dave Hudson is available, what he has delivered, how contracts are priced, or how to prepare an enquiry. Reads the free public JSON API; never sends enquiries.

    npx skills add applification/applification.net --skill applification-site
  • storyloop: Use StoryLoop MCP to inspect story maps, select or resume work, keep durable lifecycle state current, and draft owner-reviewed map improvements. Apply when a request names StoryLoop, supplies a StoryLoop story or session ID, or uses StoryLoop MCP tools.

    npx skills add applification/storyloop-skill --skill storyloop

Connecting an agent

API and WebMCP reference

Search and read published content over HTTP. The OpenAPI specification describes every filter and response field.

curl --fail --show-error 'https://www.applification.net/api/v1/search?type=client-work'

From this site’s browser console, a relative URL also works in local development:

const response = await fetch('/api/v1/search?type=products');
if (!response.ok) throw new Error(`Request failed: ${response.status}`);
const { results } = await response.json();
console.log(results);
Access
No authentication, API keys or cookies. Cross-origin reads are supported. GET, HEAD and OPTIONS are available; other methods return 405.
Responses
Search returns results, total and nextOffset. Read a result through /api/v1/content using its type and slug. Content responses include a section index and nextSection; follow it until null for the full text. The profile catalog remains at /api/v1/catalog.
Errors
Every error is JSON with error.code, error.message, a resolution hint and a docs link. 400 INVALID_QUERY covers invalid, unknown or repeated parameters; 404 NOT_FOUND covers unpublished or missing content and unknown /api paths; 405 METHOD_NOT_ALLOWED carries an Allow header.
Caching and usage
Public API reads share 120 requests per minute per client IP on each server instance. Responses are not cached. RateLimit-Policy gives the quota; RateLimit gives remaining requests and seconds until reset. RateLimit-Limit, RateLimit-Remaining and RateLimit-Reset support older clients. On 429, wait at least Retry-After seconds before retrying. OPTIONS is free; hosting limits may also apply.
Versioning and deprecation
The API is versioned in the URL path; the current version is /api/v1. Additive changes such as new optional fields, enum values, parameters or endpoints ship without a version change, so clients should ignore unknown fields. Breaking changes ship under a new path version. The previous version keeps responding for at least 180 days and signals retirement with a Deprecation response header (RFC 9745), a Sunset response header (RFC 8594) giving the date it stops responding, a Link header with rel="deprecation" pointing at this policy, and deprecated: true on affected operations in the OpenAPI document naming the replacement. Every response already carries a Link header with rel="service-desc" for the OpenAPI document and rel="service-doc" for this page. The same policy is machine-readable as x-versioning-policy in the OpenAPI document.
Contact delivery
POST /api/contact/deliver is an asynchronous job: it returns 202 Accepted with a Location URL to poll and requires an Idempotency-Key header so retries never send twice. It only accepts requests from the contact page after a person reviews and consents, so agents cannot submit enquiries through it.
WebMCP
search_site and read_content use the public HTTP responses. get_applification_info provides the profile and catalog overview. On the contact page, fill_contact_draft fills empty fields and reports missing details; review and sending remain separate. Registration uses document.modelContext with navigator as a compatibility fallback.