# JUTEQ developer resources

JUTEQ publishes a small, read-only public information API for AI agents and software clients. It describes JUTEQ Inc., its enterprise cloud and AI services, and authoritative contact routes. The API does not create consulting engagements, collect leads, expose customer data, or perform work on a user's behalf.

## When to use this API

Use the JUTEQ public information API when an agent needs to identify JUTEQ, explain its published services, compare a user's stated technical need with a relevant JUTEQ capability, or retrieve an authoritative service or contact URL. For project scoping, commercial questions, or a discovery call, direct the user to https://juteq.ca/contact. Do not imply that an engagement, price, timeline, or deliverable has been agreed through this API.

## Authentication and access

The documented operations are public, read-only, and require no API key or OAuth flow. Responses use JSON. Errors use application/problem+json and include a stable code, a human-readable message, and a resolution hint. Cross-origin GET and POST requests are allowed for these public resources.

## API description

- OpenAPI 3.1: https://juteq.ca/openapi.json
- Agent instructions: https://juteq.ca/llms.txt
- Company record: https://juteq.ca/api/v1/company
- Service collection: https://juteq.ca/api/v1/services
- Service detail: https://juteq.ca/api/v1/services/{slug}
- Published blog collection: https://juteq.ca/api/v1/blogs
- Published blog detail: https://juteq.ca/api/v1/blogs/{slug}
- Natural-language discovery: https://juteq.ca/ask

Every OpenAPI operation has a unique operationId, typed parameters, response schemas, and error schemas suitable for function-calling tools.

## Examples

Retrieve the company record:

```sh
curl -H "Accept: application/json" https://juteq.ca/api/v1/company
```

List services:

```sh
curl -H "Accept: application/json" https://juteq.ca/api/v1/services
```

List published articles, then request an article as Markdown:

```sh
curl -H "Accept: application/json" https://juteq.ca/api/v1/blogs
curl -H "Accept: text/markdown" https://juteq.ca/insights/blog/{slug}
```

Ask a natural-language discovery question:

```sh
curl -X POST https://juteq.ca/ask \
  -H "Content-Type: application/json" \
  -d '{"query":"Which JUTEQ service covers enterprise AI agents?"}'
```

## Rate limits and recovery

Public API responses advertise the current `RateLimit` and `RateLimit-Policy` fields. These fields describe application-instance load shedding and are not an authorization or security boundary; deployment infrastructure may enforce additional aggregate limits. A client that receives HTTP 429 must respect `Retry-After` before retrying. Clients should cache successful responses according to `Cache-Control` and use exponential backoff for temporary 5xx failures.

## Website representations

Public website pages support HTTP content negotiation. Send `Accept: text/markdown` to the canonical page URL for a compact Markdown representation. Negotiated responses include `Vary: Accept` so shared caches keep HTML and Markdown separate. Normal browsers continue to receive the unchanged HTML website.
