CiteFlow API access

Start public. Scale with a provisioned integration.

Use the public API to launch an AI visibility audit or read published CiteFlow content. When your workflow needs managed access, Premium, Enterprise, and approved agency integrations are scoped with our team.

Important: the public audit is not a customer-key integration. It is rate-limited by IP and designed for trying the workflow before sales provisioning.

Three access lanes

Know what is available now.

Each lane has a different purpose. The page does not invent a paid quota: integration limits and credentials are confirmed during provisioning.

Public · no auth

Free audit

Submit a company name to start an AI visibility audit. Add a website URL and email when you want more context or delivery follow-up.

EndpointPOST /api/audit
Requiredcompany_name
Limit5 audits / IP / hour
AuthNone
Provisioned · sales-led

Premium & Enterprise

For agencies, multi-brand teams, and production workflows that need managed API access, reporting, and an agreed operating envelope.

EligibilityPremium, Enterprise, approved agencies
CredentialsConfirmed by sales
LimitsConfirmed during provisioning
Request API access
Who should contact sales? Ask about managed access if you are integrating CiteFlow into an agency workflow, operating across multiple brands or countries, or need reporting and service expectations beyond the public endpoints.
Managed access request

Tell us where you want to take the API.

Share a few details and our team will review your request before following up about eligibility, credentials, and limits.

Endpoint map

Public access, clearly bounded.

These are the supported public formats. The admin endpoint below is shown for operational clarity, not as a customer integration option.

EndpointAuthWhat it doesExpected responses
POST /api/auditNoneStarts an audit; company_name is required.200, 400, 429, 500
GET /api/blog/postsNoneLists published posts, optionally filtered by language.200 with { success, posts }
GET /api/resources/listNoneLists published resources, optionally filtered by language.200 with { success, resources }

POST /api/indexnow/ping is admin-only

This operational endpoint requires a valid X-Admin-Key and returns 401 Unauthorized without it. Do not use it for a normal integration, and do not request an admin key as a substitute for paid API provisioning.

Copy-paste examples

Use the formats the routes accept.

Every example targets the production base URL. Replace the sample company and email with your own values.

Start an audit with cURL

The OpenAPI schema calls the optional website field website_url; the live route currently reads company_url, so the executable examples use company_url. email is optional too.

Request
curl -X POST https://citeflow.ma/api/audit \
  -H 'Content-Type: application/json' \
  -d '{
    "company_name": "Royal Mansour Marrakech",
    "company_url": "https://royalmansour.com",
    "email": "contact@royalmansour.com"
  }'

Success: 200 with success, a processing audit.id, and an event_id. Missing company name returns 400; the fifth request in an hour is followed by 429.

Start an audit in the browser

This uses the same JSON body as the browser form and the cURL request.

Request
const response = await fetch('/api/audit', {
  method: 'POST',
  headers: { 'Content-Type': 'application/json' },
  body: JSON.stringify({
    company_name: 'Royal Mansour Marrakech',
    company_url: 'https://royalmansour.com',
    email: 'contact@royalmansour.com'
  })
});

const data = await response.json();

Tip: use the returned audit.id to follow the existing results flow. The audit begins asynchronously with status: "processing".

Read published blog posts

Language is optional; this example requests English posts.

Request
curl 'https://citeflow.ma/api/blog/posts?lang=en'
Response shape
{
  "success": true,
  "posts": [
    { "title": "...", "slug": "...", "language": "en" }
  ]
}

Read published resources

The same language filter is available for the public resources list.

Request
curl 'https://citeflow.ma/api/resources/list?lang=en'

Response: 200 with { success, resources }. Only published resources are returned.

Admin-only IndexNow example — do not use for integrations

This request is intentionally included to make the boundary explicit. Never expose an admin key in browser code, and never ask for one as a customer API credential.

Request
curl -X POST https://citeflow.ma/api/indexnow/ping \
  -H 'Content-Type: application/json' \
  -H 'X-Admin-Key: YOUR_ADMIN_KEY' \
  -d '{
    "client_id": 123,
    "urls": ["https://example.com/updated-page"]
  }'

Without a valid key: 401 and { success: false, message: "Unauthorized" }. This endpoint is for CiteFlow administration only.

Need the machine-readable contract? See /openapi.yaml or /.well-known/openapi.yaml. The API specification is useful for public endpoint discovery; paid integration limits and credentials are still confirmed during sales provisioning.
Choose your next step

Move from proof to production deliberately.

There is no hidden key flow behind the public endpoints. Start with the public surface, then tell us what your production workflow needs.

Try the public audit

Run one audit with your company name and optional website URL. The public guard allows five audits per IP in a rolling hour.

Review the output

Use the processing response and published-content reads to validate your internal workflow before asking for managed access.

Talk to sales

For Premium, Enterprise, or approved agency integrations, contact hello@citeflow.ma for eligibility, credentials, and limits.

Ready to see your current visibility?

Run the free audit first, or contact CiteFlow if you are designing a managed integration for a team or agency.