---
title: "ai.creation-list@1 · OpenVibe.Services"
canonical: "https://openvibe.services/docs/contracts/ai.creation-list"
updated: null
---

# ai.creation-list@1 · OpenVibe.Services

HTML: [ai.creation-list@1 · OpenVibe.Services](https://openvibe.services/docs/contracts/ai.creation-list)

# AiCreationList `ai.creation-list@1`

Generated at 2026-11-13 06:25:48 UTC from [`openvibe-contracts v0.419.0`](https://github.com/OpenVibers/OpenVibe.Contracts/tree/v0.419.0) and [`openvibe-sdk v0.161.0`](https://github.com/OpenVibers/OpenVibe.SDK/tree/v0.161.0).

- Version: 1.0.0
- Owner: ai
- Visibility: public
- Status: active
- Compatibility: backward
- Decision: [ADR-001](/docs/adr/ADR-001)
- Schema: [`https://openvibe.network/contracts/ai/creation-list.v1.json`](/docs/contracts/ai.creation-list.json)

ai.creation-list@1: the answer of GET /api/v1/creations on OpenVibe.AI — every thing AI can make that is live now, built from the registered workflows and tasks rather than a hand-kept list. The endpoint is public, cached for five minutes and answers any origin (Access-Control-Allow-Origin: \*). The same catalogue is rendered as Markdown at GET /api/v1/creations.md and listed in GET /llms.txt.

## Fields

| Field | Type | Required | Description | Constraints |
| --- | --- | --- | --- | --- |
| `creations` | [ai.creation](/docs/contracts/ai.creation) | yes | Live creations, ordered by product and then by name. |  |
| `count` | integer | yes | Number of creations in this response. | - `minimum 0` |
| `generated_at` | string | yes | When this answer was built from the registry. | - `format date-time` |

## Examples

From the contract's own test fixtures: valid ones validate, rejected ones must fail.

 Valid: creations

~~~~
{
  "creations": [
    {
      "id": "blog-post",
      "product": "blog",
      "name": "Write a blog post",
      "gives": "A topic, and optionally a brief, a tone and who it is for.",
      "returns": "A Markdown draft with a title, a standfirst and cited sources, saved as a draft you can edit.",
      "workflow": "blog.draft_post",
      "task": null,
      "access": {
        "guest": false,
        "signed_in": true,
        "floor_18": false
      },
      "costs_coins": true,
      "start_url": "https://openvibe.blog/write"
    },
    {
      "id": "icon",
      "product": "design",
      "name": "Draw an icon",
      "gives": "A name for the icon and what it stands for.",
      "returns": "Up to four line drawings in OpenVibe's hand, each with its solid twin, checked before you see them.",
      "workflow": "ai.chat",
      "task": "design.icon",
      "access": {
        "guest": true,
        "signed_in": true,
        "floor_18": false
      },
      "costs_coins": true,
      "start_url": "https://openvibe.design/icons"
    }
  ],
  "count": 2,
  "generated_at": "2026-11-09T22:15:00.000Z"
}
~~~~

Rejected: missing-creations

~~~~
{
  "count": 2,
  "generated_at": "2026-11-09T22:15:00.000Z"
}
~~~~

## Validate

~~~~
const contracts = require('openvibe-contracts');
contracts.validate('ai.creation-list@1', value);   // { valid, errors: [{ path, message }] }
~~~~
