Properties
| Name | Type | Description |
|---|---|---|
| slug | string | URL-friendly slug for the listing |
| title | string | Title of the listing |
| status | string | Listing status |
| parentId | objectnull | Parent listing ID for hierarchical relationships. Pass null to clear. |
| relationshipType | objectnull | Relationship type (e.g., series_of, brand_of, chapter_of). Pass null to clear. |
| geo | object | Geographic data (country, admin1, city, neighborhood, coordinates) |
| canonicalFields | object | Canonical fields (queryable, indexable) |
| editorialFields | object | Editorial fields (descriptions, notes) |
| publishAt | objectnull | Scheduled publish time (ISO 8601). When set on a status:draft listing, public read endpoints surface it as published once the time has passed — no cron required, status column stays as draft until man |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/epicdirectories/json-schema/epicdirectories-update-listing-dto-schema.json",
"title": "UpdateListingDto",
"x-generated": "2026-11-10",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/epicdirectories-listings-api-openapi.yml#/components/schemas/UpdateListingDto",
"type": "object",
"properties": {
"slug": {
"type": "string",
"description": "URL-friendly slug for the listing"
},
"title": {
"type": "string",
"description": "Title of the listing"
},
"status": {
"type": "string",
"description": "Listing status",
"enum": [
"draft",
"published",
"hidden"
],
"default": "draft"
},
"parentId": {
"type": [
"object",
"null"
],
"description": "Parent listing ID for hierarchical relationships. Pass null to clear."
},
"relationshipType": {
"type": [
"object",
"null"
],
"description": "Relationship type (e.g., series_of, brand_of, chapter_of). Pass null to clear."
},
"geo": {
"type": "object",
"description": "Geographic data (country, admin1, city, neighborhood, coordinates)"
},
"canonicalFields": {
"type": "object",
"description": "Canonical fields (queryable, indexable)"
},
"editorialFields": {
"type": "object",
"description": "Editorial fields (descriptions, notes)"
},
"publishAt": {
"type": [
"object",
"null"
],
"description": "Scheduled publish time (ISO 8601). When set on a status:draft listing, public read endpoints surface it as published once the time has passed — no cron required, status column stays as draft until manually published. Pass null to clear."
}
}
}
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/epicdirectories-update-listing-dto"
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.