Crafting Event Finder · Schema
Submission
CompanyCraftingEventEvent DiscoveryDirectoryQuiltingKnittingMCP
Properties
| Name | Type | Description |
|---|---|---|
| id | string | |
| title | string | |
| description | stringnull | |
| summary | stringnull | |
| start_date | string | |
| end_date | stringnull | |
| start_time | stringnull | |
| end_time | stringnull | |
| timezone | stringnull | |
| recurrence | stringnull | |
| city | string | |
| state | string | |
| venue | stringnull | |
| lat | numbernull | |
| lng | numbernull | |
| location_kind | string | |
| street_address | stringnull | |
| postal_code | stringnull | |
| signup_note | stringnull | |
| languages | array | |
| hosted_by | stringnull | |
| join_platform | stringnull | |
| join_url | stringnull | |
| join_meeting_id | stringnull | |
| join_passcode | stringnull | |
| join_phone | stringnull | |
| contact_name | stringnull | |
| contact_email | stringnull | |
| contact_phone | stringnull | |
| craft_types | array | |
| event_type | stringnull | |
| tags | array | |
| url | stringnull | |
| organizer_name | stringnull | |
| price_note | stringnull | |
| is_free | booleannull | |
| origin | string | |
| source_id | stringnull | |
| source_url | stringnull | |
| confidence | numbernull | |
| source_key | stringnull | |
| organizer_email | stringnull | |
| status | string | |
| flags | array | |
| duplicate_of_event_id | stringnull | |
| update_of_event_id | stringnull | |
| suggested_series_id | stringnull | |
| review_notes | stringnull | |
| reviewed_at | stringnull | |
| published_event_id | stringnull | |
| admin_edited | boolean | |
| review_reasons | array | |
| gate_decision | stringnull | |
| gate_reasons | array | |
| gate_bucket | stringnull | |
| auto_published | boolean | |
| spot_check_at | stringnull | |
| spot_check_result | stringnull | |
| created_at | string | |
| updated_at | string | |
| submitted_by | stringnull | The signed-in account that added it, if any |
| submitter | objectnull | In queue lists: who added it and their record, or null for a scraped or anonymous submission |
| proposal | objectnull | In queue and spot-check lists: the proposed answer (the judge's stored one, else derived), or null |
| noProposalReason | stringnull | In queue and spot-check lists, when proposal is null: why, as "No suggestion: ..." |
| published_event_slug | stringnull | In spot-check lists: the published event's slug, for its public page, or null |
| published_event_status | stringnull | In spot-check lists: the published event's status now (only a published one has a public page), or null |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/craftingeventfinder-com/json-schema/craftingeventfinder-com-submission-schema.json",
"title": "Submission",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/craftingeventfinder-com-openapi.yml#/components/schemas/Submission",
"type": "object",
"properties": {
"id": {
"type": "string"
},
"title": {
"type": "string"
},
"description": {
"type": [
"string",
"null"
]
},
"summary": {
"type": [
"string",
"null"
]
},
"start_date": {
"type": "string"
},
"end_date": {
"type": [
"string",
"null"
]
},
"start_time": {
"type": [
"string",
"null"
]
},
"end_time": {
"type": [
"string",
"null"
]
},
"timezone": {
"type": [
"string",
"null"
]
},
"recurrence": {
"type": [
"string",
"null"
]
},
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"venue": {
"type": [
"string",
"null"
]
},
"lat": {
"type": [
"number",
"null"
]
},
"lng": {
"type": [
"number",
"null"
]
},
"location_kind": {
"type": "string",
"enum": [
"venue",
"online",
"hybrid",
"multi"
]
},
"street_address": {
"type": [
"string",
"null"
]
},
"postal_code": {
"type": [
"string",
"null"
]
},
"signup_note": {
"type": [
"string",
"null"
]
},
"languages": {
"type": "array",
"items": {
"type": "string"
}
},
"hosted_by": {
"type": [
"string",
"null"
]
},
"join_platform": {
"type": [
"string",
"null"
],
"enum": [
"zoom",
"meet",
"teams",
"webex",
"facebook",
"youtube",
"other",
null
]
},
"join_url": {
"type": [
"string",
"null"
]
},
"join_meeting_id": {
"type": [
"string",
"null"
]
},
"join_passcode": {
"type": [
"string",
"null"
]
},
"join_phone": {
"type": [
"string",
"null"
]
},
"contact_name": {
"type": [
"string",
"null"
]
},
"contact_email": {
"type": [
"string",
"null"
]
},
"contact_phone": {
"type": [
"string",
"null"
]
},
"craft_types": {
"type": "array",
"items": {
"type": "string"
}
},
"event_type": {
"type": [
"string",
"null"
]
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"url": {
"type": [
"string",
"null"
]
},
"organizer_name": {
"type": [
"string",
"null"
]
},
"price_note": {
"type": [
"string",
"null"
]
},
"is_free": {
"type": [
"boolean",
"null"
]
},
"origin": {
"type": "string",
"enum": [
"public",
"scrape",
"organizer"
]
},
"source_id": {
"type": [
"string",
"null"
]
},
"source_url": {
"type": [
"string",
"null"
]
},
"confidence": {
"type": [
"number",
"null"
]
},
"source_key": {
"type": [
"string",
"null"
]
},
"organizer_email": {
"type": [
"string",
"null"
]
},
"status": {
"type": "string",
"enum": [
"pending",
"approved",
"rejected"
]
},
"flags": {
"type": "array",
"items": {
"type": "string"
}
},
"duplicate_of_event_id": {
"type": [
"string",
"null"
]
},
"update_of_event_id": {
"type": [
"string",
"null"
]
},
"suggested_series_id": {
"type": [
"string",
"null"
]
},
"review_notes": {
"type": [
"string",
"null"
]
},
"reviewed_at": {
"type": [
"string",
"null"
]
},
"published_event_id": {
"type": [
"string",
"null"
]
},
"admin_edited": {
"type": "boolean"
},
"review_reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"gate_decision": {
"type": [
"string",
"null"
],
"enum": [
"publish",
"queue",
null
]
},
"gate_reasons": {
"type": "array",
"items": {
"type": "string"
}
},
"gate_bucket": {
"type": [
"string",
"null"
]
},
"auto_published": {
"type": "boolean"
},
"spot_check_at": {
"type": [
"string",
"null"
]
},
"spot_check_result": {
"type": [
"string",
"null"
],
"enum": [
"ok",
"rejected",
"edited",
null
]
},
"created_at": {
"type": "string"
},
"updated_at": {
"type": "string"
},
"submitted_by": {
"type": [
"string",
"null"
],
"description": "The signed-in account that added it, if any"
},
"submitter": {
"type": [
"object",
"null"
],
"properties": {
"id": {
"type": "string"
},
"email": {
"type": [
"string",
"null"
],
"description": "Null once the account is deleted"
},
"role": {
"type": "string",
"enum": [
"user",
"organizer",
"admin"
]
},
"trust": {
"type": "string",
"enum": [
"untrusted",
"trusted",
"blocked"
]
},
"active": {
"type": "boolean",
"description": "Not suspended or deleted"
},
"approved": {
"type": [
"integer",
"null"
],
"description": "Clean approvals in the gate's 90-day window; null when the lookup failed"
},
"rejected": {
"type": [
"integer",
"null"
],
"description": "Rejections and strikes in the same window; null when the lookup failed"
}
},
"required": [
"id",
"email",
"role",
"trust",
"active",
"approved",
"rejected"
],
"description": "In queue lists: who added it and their record, or null for a scraped or anonymous submission"
},
"proposal": {
"type": [
"object",
"null"
],
"properties": {
"action": {
"type": "string",
"enum": [
"publish",
"merge",
"reject",
"close_update",
"keep",
"hide",
"looks_right",
"fix_event"
]
},
"label": {
"type": "string",
"description": "The button's text"
},
"reason": {
"type": "string",
"description": "One plain sentence: what happened, or why it's waiting"
},
"edits": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"state": {
"type": "string"
},
"location_kind": {
"type": "string",
"enum": [
"venue",
"online",
"multi"
]
},
"venue": {
"type": "string"
},
"end_date": {
"type": "string"
},
"start_time": {
"type": "string"
},
"end_time": {
"type": "string"
}
},
"description": "For publish: the fixes the approve call sends"
},
"targetId": {
"type": "string",
"description": "For merge: the event to merge into"
},
"reasons": {
"type": "array",
"items": {
"type": "string",
"enum": [
"not_event",
"not_crafting",
"wrong_date",
"wrong_place",
"duplicate",
"other"
]
},
"description": "For reject: the reasons the reject call sends"
},
"eventEdits": {
"type": "object",
"properties": {
"start_date": {
"type": "string"
},
"end_date": {
"type": [
"string",
"null"
]
},
"start_time": {
"type": [
"string",
"null"
]
},
"end_time": {
"type": [
"string",
"null"
]
},
"city": {
"type": "string"
}
},
"description": "For fix_event: the changes resolve-check's Keep sends to the event (a nightly quality card's fix)"
}
},
"required": [
"action",
"label",
"reason"
],
"description": "In queue and spot-check lists: the proposed answer (the judge's stored one, else derived), or null"
},
"noProposalReason": {
"type": [
"string",
"null"
],
"description": "In queue and spot-check lists, when proposal is null: why, as \"No suggestion: ...\""
},
"published_event_slug": {
"type": [
"string",
"null"
],
"description": "In spot-check lists: the published event's slug, for its public page, or null"
},
"published_event_status": {
"type": [
"string",
"null"
],
"enum": [
"published",
"cancelled",
"hidden",
null
],
"description": "In spot-check lists: the published event's status now (only a published one has a public page), or null"
}
},
"required": [
"id",
"title",
"description",
"summary",
"start_date",
"end_date",
"start_time",
"end_time",
"timezone",
"recurrence",
"city",
"state",
"venue",
"lat",
"lng",
"location_kind",
"street_address",
"postal_code",
"signup_note",
"join_platform",
"join_url",
"join_meeting_id",
"join_passcode",
"join_phone",
"contact_name",
"contact_email",
"contact_phone",
"craft_types",
"event_type",
"tags",
"url",
"organizer_name",
"price_note",
"is_free",
"origin",
"source_id",
"source_url",
"confidence",
"source_key",
"organizer_email",
"status",
"flags",
"duplicate_of_event_id",
"update_of_event_id",
"suggested_series_id",
"review_notes",
"reviewed_at",
"published_event_id",
"admin_edited",
"review_reasons",
"gate_decision",
"gate_reasons",
"gate_bucket",
"auto_published",
"spot_check_at",
"spot_check_result",
"created_at",
"updated_at"
]
}
Work with this as data
Every JSON Schema 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 schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/craftingeventfinder-com-submission"
All schemas
curl "https://apis.io/api/v1/json-schemas?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.