Skip to content

For developers and AI agents

Public content API

Every published service, product, announcement and portfolio item, as JSON. No key, no signup, no rate limit.

How it works

Every endpoint answers a GET with a JSON array, ordered the same way the website orders it. There is no authentication and no pagination. Unpublished records are never returned. The machine-readable description of everything below lives at /api/openapi.json.

List published services

Every published service, ordered by the sort order used on the website.

Response: array of Service

Field Description
name Service name.
slug URL slug, unique per service.
excerpt One or two sentence summary.
body Full service description as plain text (HTML stripped).
url Canonical URL of the service page.

List published products

Every published SaaS product, ordered by the sort order used on the website.

Response: array of Product

Field Description
name Product name.
slug URL slug, unique per product.
tag Short category label, for example the market the product serves.
excerpt One or two sentence summary.
body Full product description as plain text (HTML stripped).
features List of feature strings, or null when none are set.
url Canonical URL of the product page.
GET /api/news

List published news items

Published announcements and press releases, newest first.

Response: array of NewsItem

Field Description
title Headline.
slug URL slug, unique per item.
excerpt Standfirst / summary line.
body Full announcement as plain text (HTML stripped).
published_at Publication date, YYYY-MM-DD, or null.
url Canonical URL of the news page.

List published portfolio items

Client projects shown on the portfolio page. These have no detail pages of their own.

Response: array of PortfolioItem

Field Description
title Project or client name.
category Sector or project type, or null.
excerpt Short description, or null.
image Absolute URL of the logo or screenshot, or null.
website_url The live project URL, or null.

Other machine-readable endpoints