EpicDirectories Public API
The public API from EpicDirectories — 46 operation(s) for public.
Operations 74
GET
/public/v1/directories/{directory}/taxonomies/{taxonomy}/terms
List a taxonomy's terms, with a listing count each
#
GET
/public/v1/directories/{directory}/turnstile
Which Turnstile widget verifies this directory's public forms
#
POST
/public/v1/directories/{directory}/turnstile/provision
Create or reconcile this directory's own Turnstile widget
#
PATCH
/public/v1/directories/{directory}/attribute-templates/{template}
Update an attribute template
#
DELETE
/public/v1/directories/{directory}/attribute-templates/{template}
Delete an attribute template
#
DELETE
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}
Archive a listing (soft delete)
#
GET
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}
Get a listing unambiguously by type + slug
#
PATCH
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}
Update a listing by type + slug (including renaming its slug)
#
GET
/public/v1/directories/{directory}/listings/bulk
Bulk fetch all published listings for SSG / static builds
#
GET
/public/v1/directories/{directory}/recipes/{recipe}
Execute a recipe and get matching listings
#
PATCH
/public/v1/directories/{directory}/taxonomies/{taxonomy}/terms/{term}
Update a term's label / parent / metadata
#
DELETE
/public/v1/directories/{directory}/taxonomies/{taxonomy}/terms/{term}
Delete a taxonomy term
#
GET
/public/v1/directories/{directory}/taxonomies/{taxonomy}/resolve
Resolve a single raw value to a taxonomy term
#
POST
/public/v1/directories/{directory}/taxonomies/{taxonomy}/resolve-batch
Resolve a batch of raw values; report which mapped and which did not
#
POST
/public/v1/directories/{directory}/listings/batch
Batch FETCH listings by (listingType, slug) pairs (read-only)
#
GET
/public/v1/directories/{directory}/listing-aliases
The directory's redirect map — every slug a listing has moved off
#
DELETE
/public/v1/directories/{directory}/listing-aliases/{listingType}/{listingSlug}
Release a retired slug so it can be used again
#
PUT
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/attributes
Replace all attribute values on a listing
#
PUT
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/terms
Replace all taxonomy term assignments on a listing
#
PATCH
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/terms
Add and remove a listing's taxonomy terms without sending the whole set
#
GET
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/snapshots
Read a listing's source snapshots
#
POST
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/snapshots
Write a raw research/source payload to the listing's evidence locker
#
GET
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/snapshots/latest/{source}
Read the newest snapshot from one source
#
GET
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/snapshots/{snapshotId}
Read one snapshot
#
DELETE
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/snapshots/{snapshotId}
Delete one snapshot
#
POST
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/enrich
Enrich one listing from Google (geocode or Places)
#
POST
/public/v1/directories/{directory}/site-probes/sweep
Queue site probes for this directory’s listings
#
GET
/public/v1/directories/{directory}/site-probes/dead-links
Listings whose site is not answering
#
POST
/public/v1/directories/{directory}/screenshots
Queue homepage screenshots for this directory’s listings
#
POST
/public/v1/directories/{directory}/research
Gather facts from this directory’s listings’ own websites
#
GET
/public/v1/directories/{directory}/screening
Which listings point at a site that is not really there
#
POST
/public/v1/directories/{directory}/screening/apply
Tag the flagged listings, and hold the confident ones in draft
#
GET
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/media
List media assets for a listing
#
POST
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/media
Attach an image to a listing from a URL
#
POST
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/media/upload
Upload an image file directly (multipart)
#
POST
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/media/{assetId}/reprocess
Retry processing for a failed media asset
#
PATCH
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/media/{assetId}
Update media metadata (alt, caption, role, sortOrder)
#
DELETE
/public/v1/directories/{directory}/listings/{listingType}/{listingSlug}/media/{assetId}
Delete a media asset
#
POST
/public/v1/directories/{directory}/webhooks/{webhookId}/test
Fire a test ping at the webhook URL (bypasses debounce)
#
Specifications
Schemas & Data
JSONSchema
https://artifacts.apis.io/epicdirectories/json-schema/epicdirectories-create-webhook-dto-schema.json
JSONSchema
https://artifacts.apis.io/epicdirectories/json-schema/epicdirectories-sweep-research-dto-schema.json
JSONSchema
https://artifacts.apis.io/epicdirectories/json-schema/epicdirectories-update-public-listing-dto-schema.json
JSONSchema
https://artifacts.apis.io/epicdirectories/json-schema/epicdirectories-create-public-listing-dto-schema.json