Your articles, as JSON, with no API key
Keep the turnkey site, plug in your own domain, or rebuild the front end entirely. The ClipToText public API exposes your published articles, categories, pages and SEO metadata.
Base URL
https://app.cliptotext.ai/api/v1/public/site/{slug}
Getting started
One request, no authentication. Replace the slug with your own site's.
Request
curl https://app.cliptotext.ai/api/v1/public/site/votre-site/articles?per_page=3
Response
{
"meta": { "api_version": "1.0.0", "response_time_ms": 20 },
"data": {
"articles": [
{
"id": 262,
"title": "...",
"slug": "...",
"url": "https://votre-site.cliptotext.ai/...",
"excerpt": "...",
"featuredImage": "...",
"publishedAt": "2026-08-02T09:14:00+00:00",
"readingTime": 7,
"category": "...",
"language": "ar"
}
]
}
}Endpoints
All GET, all relative to the base URL, all without authentication.
GET /metadataFull site configuration (title, theme, menu, SEO, social links)
Site objectGET /articlesPaginated list of published articles
articles[] + paginationGET /articles/{articleSlug}Full content of one article
Article objectGET /search?q=…Full-text search
articles[]GET /search/suggest?q=…Search suggestions
suggestions[]GET /categoriesSite categories
categories[]GET /pagesStatic pages (about, contact…)
pages[]GET /conceptsConcepts extracted from the articles
concepts[]GET /statsPublic site statistics
Stats objectGET /fullMetadata and articles in a single request
site + articles[]Two routes outside the versioned namespace
GET https://app.cliptotext.ai/api/public/site/{slug}/sitemap.xmlXML sitemap
GET https://app.cliptotext.ai/api/public/site/{slug}/feed.xmlRSS feed
Article fields
Returned by /articles and /articles/{articleSlug}:
id, siteArticleId, title, slug, excerpt, metaDescription, featuredImage, thumbnail, publishedAt, readingTime, category, views, wordCount, seoScore, language, tags, videoUrl, url, isPinned
/articles parameters
All optional.
pageInteger, defaults to 1.
per_pageInteger, defaults to 12, maximum 50. Accepted alias: perPage.
categoryCategory slug. Optional filter.
Conventions
Response envelope
Every response has the shape { "meta": { … }, "data": { … } }. The meta block contains api_version, request_id, timestamp and response_time_ms.
Rate limit
60 requests per minute per IP. Headers X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset. Going over returns HTTP 429.
Cache
Cache-Control: max-age=300, public — responses are cached for five minutes.
Pagination
HTTP Link header in RFC 5988 format, with first, next and last relations.
Errors
An unknown site returns HTTP 404 with meta.error = "Site not found".
Code examples
curl
curl https://app.cliptotext.ai/api/v1/public/site/votre-site/articles?per_page=3
Next.js (server-side)
// app/blog/page.tsx — Server Component
const SITE = "votre-site"
export default async function Blog() {
const res = await fetch(
`https://app.cliptotext.ai/api/v1/public/site/${SITE}/articles?per_page=12`,
{ next: { revalidate: 300 } }
)
const { data } = await res.json()
return (
<ul>
{data.articles.map((a) => (
<li key={a.id}>
<a href={a.url}>{a.title}</a>
</li>
))}
</ul>
)
}Publishing your articles
Publishing is driven from your ClipToText dashboard. Your articles can then be sent automatically to WordPress, Ghost, Medium, Hashnode, Webflow, Wix, Shopify, Blogger and GoHighLevel. Outgoing webhooks, configurable from the dashboard, notify your infrastructure on every publication — enough to trigger a static site rebuild or an ISR revalidation.
Good to know
- The public API is READ-ONLY. There is no API-key write access yet: articles are created from the dashboard or through the integrations above.
- Calls must be made SERVER-side (SSR, SSG, ISR, script, cron). From a browser on a third-party domain, the /api/v1/public/ namespace is restricted by CORS.
- Only published articles are exposed. Drafts never leave the API.
- Need write access or a higher quota? Get in touch. Contact us
Create your site, keep control of the front end
The turnkey site is included. The API is there the day you want your own rendering.
