The Direct Index City API
The City API from The Direct Index — 8 operation(s) for city.
The City API from The Direct Index — 8 operation(s) for city.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/directindex-org:directindex-org-city-api"
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.
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: 3.2.0
info:
title: Directindex Org City API
version: '0.2'
contact:
url: https://directindex.org/
description: 'Operations tagged City across 2 of this provider''s published API definitions: openapi.json, directindex-org-openapi.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://directindex.org
security:
- {}
- apiKey: []
tags:
- name: City
paths:
/api/city/{slug}:
get:
summary: 'A city index: stats and every business ranked'
parameters:
- name: slug
in: path
required: true
schema:
type: string
example: lisbon
responses:
'200':
description: City index
'404':
description: No index for this city
tags:
- City
operationId: getApiCityBySlug
x-operation-id-source: derived
servers:
- url: https://directindex.org
/city/{slug}/{month}:
get:
summary: 'A city''s monthly snapshot: the state of its sites at the end of that month…'
parameters:
- name: slug
in: path
required: true
schema:
type: string
example: lisbon
- name: month
in: path
required: true
schema:
type: string
example: 2026-10
- name: format
in: query
required: true
schema:
type: string
enum:
- json
responses:
'200':
description: Snapshot
'404':
description: No such city or month
tags:
- City
operationId: getCityBySlugByMonth
x-operation-id-source: derived
servers:
- url: https://directindex.org
/api/city/{slug}/places:
get:
summary: Places in a city that take a booking or an order on their own website or…
parameters:
- name: slug
in: path
required: true
schema:
type: string
example: lisbon
- name: q
in: query
required: false
schema:
type: string
example: pizza
description: A cuisine, a dish or a few words
- name: want
in: query
required: false
schema:
type: string
enum:
- book
- order
- any
default: any
- name: limit
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 25
default: 10
- name: lat
in: query
required: false
schema:
type: number
description: 'With lon: only places within radius_m of this point, each with distance_m'
- name: lon
in: query
required: false
schema:
type: number
- name: radius_m
in: query
required: false
schema:
type: integer
minimum: 50
maximum: 50000
default: 1000
- name: open_now
in: query
required: false
schema:
type: boolean
description: Only places open right now by their hours, in the city's zone; unreadable hours stay in with open_now null
- name: verified_only
in: query
required: false
schema:
type: boolean
description: 'Only links a browser verified: an agent reached the step before confirming'
- name: vendor
in: query
required: false
schema:
type: string
example: zenchef
description: Only places on this booking or ordering vendor, by slug
responses:
'200':
description: Places with booking and ordering links on their own domain or their vendor's
tags:
- City
operationId: getApiCityBySlugPlaces
x-operation-id-source: derived
servers:
- url: https://directindex.org
/city/{slug}/assistants.json:
get:
summary: 'Where the assistants send people in a city: the league table of destinations…'
parameters:
- name: slug
in: path
required: true
schema:
type: string
example: lisbon
responses:
'200':
description: 'City league: answers, shareDirect, shareMarketplace, topMarketplace, assistants[], destinations[] (key, label, kind, count, share, byAssistant)'
'404':
description: No index for this city
tags:
- City
operationId: getCityBySlugAssistantsJson
x-operation-id-source: derived
servers:
- url: https://directindex.org
/city/{slug}/recommended:
get:
summary: The places the assistants name per question asked in a city, with who named…
parameters:
- name: slug
in: path
required: true
schema:
type: string
example: lisbon
responses:
'200':
description: Page with ItemList JSON-LD
'404':
description: No index for this city
tags:
- City
operationId: getCityBySlugRecommended
x-operation-id-source: derived
servers:
- url: https://directindex.org
/city/{slug}/map.json:
get:
summary: A city index's map counts by grade and its neighbourhood table; the SVG is at…
parameters:
- name: slug
in: path
required: true
schema:
type: string
example: berlin
responses:
'200':
description: Map data
'404':
description: No such index
tags:
- City
operationId: getCityBySlugMapJson
x-operation-id-source: derived
servers:
- url: https://directindex.org
/city/{slug}/direct.json:
get:
summary: 'The daily feed of a city index: every business with a direct booking or…'
parameters:
- name: slug
in: path
required: true
schema:
type: string
example: lisbon
responses:
'200':
description: 'Feed: city, built_at, count, places[]'
'404':
description: No index for this city
tags:
- City
operationId: getCityBySlugDirectJson
x-operation-id-source: derived
servers:
- url: https://directindex.org
/api/city/{slug}/changes:
get:
summary: 'What changed in a city index over the last days: findings fixed or new, grades…'
parameters:
- name: slug
in: path
required: true
schema:
type: string
example: lisbon
- name: days
in: query
required: false
schema:
type: integer
minimum: 1
maximum: 365
default: 30
responses:
'200':
description: Changes, newest first, each with the business's report page
'404':
description: No index for this city
tags:
- City
operationId: getApiCityBySlugChanges
x-operation-id-source: derived
servers:
- url: https://directindex.org
components:
securitySchemes:
apiKey:
type: http
scheme: bearer
bearerFormat: di_live_ followed by 32 hex characters
description: 'Optional. Raises the new-scan limit to the key''s own (300 an hour on the agency plan) and attributes the call to the key; reads need no key and stay unlimited. Keys come with the agency plan: https://directindex.org/agency. Details: https://directindex.org/auth.md'
x-refined-from:
- openapi.json
- directindex-org-openapi.json