Public interface

Context Factory API

Use ordinary HTTP to find public context artifacts or inspect an ordered collection. Responses contain metadata and source links, never file bodies.

PublicRead-onlyNo keyNo signup

Base URL

Base URL
https://api.contextfactory.dev/v1

Send public GET requests. No account, no API key, and no Authorization header.

Your first request

Terminal
curl "https://api.contextfactory.dev/v1/artifacts?q=agent+guidance&type=skill&limit=10"
{
  "artifacts": [{
    "id": "123456789ABC",
    "name": "Context Factory",
    "description": "Search the public Context Factory catalog.",
    "type": "skill",
    "canonicalUrl": "https://contextfactory.dev/a/123456789ABC",
    "source": {
      "kind": "github_repository",
      "owner": "Context-Factory",
      "repository": "context-factory-skill",
      "path": "SKILL.md",
      "ref": "main",
      "containerUrl": "https://github.com/Context-Factory/context-factory-skill",
      "directoryUrl": "https://github.com/Context-Factory/context-factory-skill",
      "fileUrl": "https://github.com/Context-Factory/context-factory-skill/blob/main/SKILL.md",
      "rawUrl": "https://raw.githubusercontent.com/Context-Factory/context-factory-skill/main/SKILL.md"
    },
    "attributes": { "license": "MIT" }
  }],
  "page": { "cursor": null, "hasMore": false }
}

Endpoints

  • GET /artifacts: search or browse artifacts.
  • GET /artifacts/:artifactId: resolve one artifact.
  • GET /collections/:collectionId: resolve a collection and its ordered artifacts.

Search and filter

Filters are q, type, owner, and exact repository in owner/repository form. Search results are relevance ordered; browsing without q returns newest first. Treat cursors as opaque and reuse the same filters to page.

Terminal
curl "https://api.contextfactory.dev/v1/artifacts?cursor=CURSOR&limit=10"

An empty result is successful and returns {"artifacts":[]}.

Resolve one artifact

Terminal
curl "https://api.contextfactory.dev/v1/artifacts/123456789ABC"
{
  "id": "123456789ABC",
  "name": "Context Factory",
  "description": "Search the public Context Factory catalog.",
  "type": "skill",
  "canonicalUrl": "https://contextfactory.dev/a/123456789ABC",
  "source": {
    "kind": "github_repository",
    "owner": "Context-Factory",
    "repository": "context-factory-skill",
    "path": "SKILL.md",
    "ref": "main",
    "containerUrl": "https://github.com/Context-Factory/context-factory-skill",
    "directoryUrl": "https://github.com/Context-Factory/context-factory-skill",
    "fileUrl": "https://github.com/Context-Factory/context-factory-skill/blob/main/SKILL.md",
    "rawUrl": "https://raw.githubusercontent.com/Context-Factory/context-factory-skill/main/SKILL.md"
  },
  "attributes": { "license": "MIT" }
}

Resolve a collection

Terminal
curl "https://api.contextfactory.dev/v1/collections/ABCDEFGHJKLM?type=skill&limit=20"
{
  "id": "ABCDEFGHJKLM",
  "name": "Web Skills",
  "canonicalUrl": "https://contextfactory.dev/u/123456789ABC/c/ABCDEFGHJKLM",
  "owner": {
    "id": "123456789ABC",
    "name": "Example owner",
    "githubHandle": "example",
    "canonicalUrl": "https://contextfactory.dev/u/123456789ABC"
  },
  "artifactCount": 8,
  "artifacts": [ ... ],
  "page": { "cursor": null, "hasMore": false }
}

Collection artifacts keep the owner-defined order. The same filters narrow the returned page without changing that order.

Errors

{
  "error": {
    "code": "invalid_request",
    "message": "Request parameters are invalid.",
    "details": { "issues": [ ... ] }
  }
}

Invalid filters, IDs, limits, or cursors return 400. Missing artifacts and collections return 404. Temporary server failures return 500.

OpenAPI and Postman

The OpenAPI 3.1 document is the source of truth. Import the Postman collection and set its baseUrl variable to the base URL above.