Crafting Event Finder Network API

The network API from Crafting Event Finder — 3 operation(s) for network.

GitHub OpenAPI

Operations 3

2 of 3 operations are conformant: apis.io called them with no credentials and the responses matched this contract. Checked 2026-11-12. how this works · status file

GET /api/network/v1/event-demand Upcoming event counts by network craft conformant #
GET /api/network/v1/feed Crafting network feed of upcoming events conformant #
GET /api/network/v1/stat-chips This site's admin stat chips, for Switchboard #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/craftingeventfinder-com:craftingeventfinder-com-network-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

craftingeventfinder-com-network-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Crafting Event Finder Network API
  version: 1.0.0
  description: Everything the site does is available here, and as MCP tools at /api/mcp.
servers:
- url: https://craftingeventfinder.com
tags:
- name: Network
paths:
  /api/network/v1/event-demand:
    get:
      summary: Upcoming event counts by network craft
      description: A daily snapshot (crafting-network/event-demand@1) of how many published events Crafting Event Finder lists in the next 60 days (today to today plus 60, Pacific), per network craft tag from the network manifest, most first then by tag. Each craft gives its label, count (distinct events with a day in the window; a repeating or running event counts once), online (online or hybrid events), earliest (the first day in the window with one) and regions (a count per US state code, with online events as `online`; a hybrid event counts in its state). A child craft rolls up to its parent's tag; an Other crafts event counts under the tags its own words name; craft-fair is never a tag, and an event with no tag is left out. Counts and dates only. The answer never depends on the caller and is recomputed at most once a day.
      tags:
      - Network
      security: []
      responses:
        '200':
          description: 200 response
          content:
            application/json:
              schema:
                type: object
                properties:
                  schema:
                    type: string
                    enum:
                    - crafting-network/event-demand@1
                  generated_on:
                    type: string
                    format: date
                  window:
                    type: object
                    properties:
                      from:
                        type: string
                        format: date
                      to:
                        type: string
                        format: date
                    required:
                    - from
                    - to
                  crafts:
                    type: array
                    items:
                      type: object
                      properties:
                        tag:
                          type: string
                        label:
                          type: string
                        count:
                          type: integer
                          minimum: 0
                        online:
                          type: integer
                          minimum: 0
                        earliest:
                          type: string
                          format: date
                        regions:
                          type: object
                          additionalProperties:
                            type: integer
                            minimum: 0
                      required:
                      - tag
                      - label
                      - count
                      - online
                      - earliest
                      - regions
                required:
                - schema
                - generated_on
                - window
                - crafts
        '500':
          description: 500 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '503':
          description: 503 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      operationId: getApiNetworkV1EventDemand
      x-operation-id-source: derived
  /api/network/v1/feed:
    get:
      summary: Crafting network feed of upcoming events
      description: 'The crafting network''s item feed (contract crafting-network/feed@1) for sister sites: Crafting Event Finder''s upcoming published events, soonest first then by id, keyset-paged with an opaque cursor (next_cursor is null on the last page). limit defaults to 50, at most 100. A repeating event shows its next occurrence''s dates; upcoming is judged by today''s UTC date. The answer never depends on the caller''s Host, IP or cookies: every url is on https://craftingeventfinder.com. craft_tags use the network vocabulary from the network manifest; a craft outside it is left out. updated_since is accepted and ignored in v1.'
      tags:
      - Network
      security: []
      parameters:
      - schema:
          type: string
          minLength: 1
          maxLength: 500
        required: false
        name: cursor
        in: query
      - schema:
          type: integer
          minimum: 1
          maximum: 100
        required: false
        name: limit
        in: query
      - schema:
          type: string
          maxLength: 100
        required: false
        name: updated_since
        in: query
      responses:
        '200':
          description: 200 response
          content:
            application/json:
              schema:
                type: object
                properties:
                  schema:
                    type: string
                    enum:
                    - crafting-network/feed@1
                  site_id:
                    type: string
                    pattern: ^[a-z][a-z0-9_]{1,31}$
                  generated_at:
                    type: string
                    format: date-time
                  items:
                    type: array
                    items:
                      type: object
                      properties:
                        item_id:
                          type: string
                          minLength: 1
                        kind:
                          type: string
                          enum:
                          - event
                          - tutorial
                          - download
                        title:
                          type: string
                          minLength: 1
                        subtitle:
                          type:
                          - string
                          - 'null'
                        url:
                          type: string
                          format: uri
                        image_url:
                          type:
                          - string
                          - 'null'
                          format: uri
                        craft_tags:
                          type: array
                          items:
                            type: string
                            pattern: ^[a-z0-9]+(-[a-z0-9]+)*$
                        published_at:
                          type: string
                          format: date-time
                        updated_at:
                          type: string
                          format: date-time
                        access:
                          type: string
                          enum:
                          - free
                          - members
                          - paid
                        event:
                          type:
                          - object
                          - 'null'
                          properties:
                            starts_on:
                              type: string
                              format: date
                            ends_on:
                              type: string
                              format: date
                            timezone:
                              type: string
                              minLength: 1
                            city:
                              type:
                              - string
                              - 'null'
                            state:
                              type:
                              - string
                              - 'null'
                            online:
                              type: boolean
                          required:
                          - starts_on
                          - ends_on
                          - timezone
                          - city
                          - state
                          - online
                        tutorial:
                          type:
                          - object
                          - 'null'
                          properties:
                            difficulty:
                              type:
                              - string
                              - 'null'
                              enum:
                              - easy
                              - medium
                              - advanced
                              - null
                            duration_minutes:
                              type:
                              - integer
                              - 'null'
                              exclusiveMinimum: 0
                          required:
                          - difficulty
                          - duration_minutes
                      required:
                      - item_id
                      - kind
                      - title
                      - subtitle
                      - url
                      - image_url
                      - craft_tags
                      - published_at
                      - updated_at
                      - access
                      - event
                      - tutorial
                  next_cursor:
                    type:
                    - string
                    - 'null'
                    minLength: 1
                required:
                - schema
                - site_id
                - generated_at
                - items
                - next_cursor
        '400':
          description: 400 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '503':
          description: 503 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      operationId: getApiNetworkV1Feed
      x-operation-id-source: derived
  /api/network/v1/stat-chips:
    get:
      summary: This site's admin stat chips, for Switchboard
      description: 'The stat chips Crafting Event Finder''s own /admin shows (crafting-network/site-chips@1), computed fresh per request from the same source, so the numbers match /admin. Needs the site''s network key as `Authorization: Bearer ` (not an account API key): no key or a wrong one is 401, a server without a key is 503. A chip with no value is left out; numbers carry `value` and `value_text`, and Last run carries `value: null` with `value_text` "published / queued" counts. Read-only, never cached.'
      tags:
      - Network
      security:
      - bearerAuth: []
      responses:
        '200':
          description: 200 response
          content:
            application/json:
              schema:
                type: object
                properties:
                  schema:
                    type: string
                    enum:
                    - crafting-network/site-chips@1
                  site_id:
                    type: string
                    pattern: ^[a-z][a-z0-9_]{1,31}$
                  generated_at:
                    type: string
                    format: date-time
                  chips:
                    type: array
                    items:
                      type: object
                      properties:
                        id:
                          type: string
                          maxLength: 64
                          pattern: ^[a-z0-9]+(?:[_-][a-z0-9]+)*$
                        label:
                          type: string
                          minLength: 1
                          maxLength: 60
                          pattern: \S
                        value:
                          type:
                          - number
                          - 'null'
                        value_text:
                          type: string
                          minLength: 1
                          maxLength: 24
                          pattern: \S
                        caption:
                          type:
                          - string
                          - 'null'
                          minLength: 1
                          maxLength: 40
                          pattern: \S
                        sr_value:
                          type:
                          - string
                          - 'null'
                          minLength: 1
                          maxLength: 200
                          pattern: \S
                        change:
                          type:
                          - object
                          - 'null'
                          properties:
                            direction:
                              type: string
                              enum:
                              - up
                              - down
                              - flat
                            text:
                              type: string
                              minLength: 1
                              maxLength: 80
                              pattern: \S
                          required:
                          - direction
                          - text
                        series:
                          type:
                          - array
                          - 'null'
                          items:
                            type: number
                          maxItems: 30
                        admin_url:
                          type: string
                          format: uri
                      required:
                      - id
                      - label
                      - value
                      - value_text
                      - admin_url
                    maxItems: 40
                required:
                - schema
                - site_id
                - generated_at
                - chips
        '401':
          description: 401 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
        '503':
          description: 503 response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
      operationId: getApiNetworkV1StatChips
      x-operation-id-source: derived
components:
  schemas:
    ApiError:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
            message:
              type: string
            details: {}
          required:
          - code
          - message
      required:
      - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: 'API key from /admin/api-keys: Authorization: Bearer cef_<scope>_...'
    cookieAuth:
      type: apiKey
      in: cookie
      name: cef_session