openapi: 3.0.0
info:
title: Hub Search Catalog OgcItem API
description: 'Welcome to the Search API. This guide describes how to use the Search API to programmatically query, filter, and search a catalog. Use this explorer to test API endpoints and search the site''s catalog without needing to use the site''s client search interface. Common uses cases include rendering features on a map in other tools including ArcGIS Map Viewer, GIS desktop applications, OWSLib, and more.
The Search API conforms to the new OGC API - Records specification. For further details including definitions and example use cases, see the <a href="https://doc.arcgis.com/en/hub/content/federate-data-with-external-catalogs.htm#GUID-EAF833F8-FADA-4EC7-A1CA-F704DC987362">web help</a>.'
version: 1.0.0
contact: {}
servers:
- url: https://hub.arcgis.com
description: ArcGIS Hub Search API (used by Dartmouth Open Data portal data-dartmouth.opendata.arcgis.com)
tags:
- name: OgcItem
paths:
/api/search/v1/collections/{collectionId}/items:
get:
description: Returns items from the specified site catalog collection that match specified filters
operationId: OgcItemController_getSiteCollectionItems_api/search/v1
parameters:
- name: collectionId
required: true
in: path
description: Key/id of the collection for which item should be filtered and returned.
schema:
example: dataset
type: string
- name: q
required: false
in: query
description: A general text search filter.
schema:
title: q
type: string
- name: bbox
required: false
in: query
description: A bbox filter, must be 4 comma-separated coordinates
schema:
title: bbox
type: string
- name: filter
required: false
in: query
description: query parameter that represents a parse-able string of filter expressions, structured according to the <a href="https://portal.ogc.org/files/96288">Common Query Language Specification of the OGC Features API</a>. If filter values must include whitespace, try wrapping the value in single quotes.
schema:
title: filter
type: string
examples:
equals:
summary: Equals
value: type='Feature Service'
greaterThan:
summary: Greater Than
value: created > 1670531235
greaterThanOrEquals:
summary: Greater Than Or Equals
value: created >= 1670531235
LessThan:
summary: Less Than
value: created < 1670531235
lessThanOrEquals:
summary: Less Than Or Equals
value: created <= 1670531235
in:
summary: IN
value: tags IN (tag1, 'tag2', tag3)
notIn:
summary: NOT IN
value: tags NOT IN (tag1, 'tag2', tag3)
betweenAnd:
summary: BETWEEN AND
value: created BETWEEN 1670531235 AND 1770531235
notBetweenAnd:
summary: NOT BETWEEN AND
value: created NOT BETWEEN 1670531235 AND 1770531235
like:
summary: LIKE
value: description LIKE 'moby*'
'null':
summary: IS NULL
value: source IS NULL
notNull:
summary: IS NOT NULL
value: owner IS NOT NULL
and:
summary: AND
value: tags NOT IN (tag1, 'tag2', tag3) AND owner IS NOT NULL
or:
summary: OR
value: tags NOT IN (tag1, 'tag2', tag3) OR owner IS NOT NULL
not:
summary: NOT
value: tags NOT IN (tag1, 'tag2', tag3) NOT owner IS NULL
subExpressions:
summary: Subexpressions
value: ((type='Feature Service' AND access=public) OR (type='Web Mapping Application' AND access=shared))
- name: limit
required: false
in: query
description: The number of results to return.
schema:
title: limit
type: integer
minimum: 0
maximum: 100
- name: startindex
required: false
in: query
description: The initial index of the results to return, starting at 1.
schema:
title: startindex
type: integer
minimum: 1
- name: type
required: false
in: query
description: The type of resource.
schema:
title: type
type: string
description: the type of the underlying resource
- name: title
required: false
in: query
description: The title of resource to return.
schema:
title: title
type: string
description: the title of the underlying resource
- name: recordId
required: false
in: query
description: The recordId of resource to return. recordId could be itemId or itemId_layerId
schema:
title: recordId
type: string
description: id of the record
- name: sortBy
required: false
in: query
description: Sort results by specific fields. Prefixed by either "+" for ascending or "-" for descending. If no prefix is provided, "+" is assumed.
schema:
title: sortBy
type: string
- name: tags
required: false
in: query
description: Tags for items search
schema:
example: 'true'
type: string
- name: token
required: false
in: query
description: Token to use when accessing the underlying ArcGIS Item that represents the site.
schema:
title: token
type: string
- name: openData
required: false
in: query
description: Boolean flag to get items that are shared to Opendata group
schema:
example: 'true'
type: string
responses:
'200':
description: A FeatureCollection object describing items (in GeoJSON) returned when searching the provided collection
content:
application/json:
schema:
$ref: '#/components/schemas/OgcItemResponseDto'
summary: ''
tags:
- OgcItem
/api/search/v1/collections/{collectionId}/items/{itemId}:
get:
operationId: OgcItemController_getSiteCollectionItemById_api/search/v1
parameters:
- name: collectionId
required: true
in: path
schema:
example: dataset
type: string
- name: itemId
required: true
in: path
schema:
type: string
- name: token
required: false
in: query
description: token for use in authentication/authorization
schema:
title: token
type: string
responses:
'200':
description: ''
content:
application/json:
schema:
$ref: '#/components/schemas/OgcItemDto'
tags:
- OgcItem
/api/search/v1/collections/{collectionId}/items/{recordId}/related:
get:
description: Returns related items to recordId from the specified site catalog collection that match specified filters
operationId: OgcItemController_getRelatedOgcItemsById_api/search/v1
parameters:
- name: collectionId
required: true
in: path
description: Key/id of the collection for which item should be filtered and returned.
schema:
example: dataset
type: string
- name: q
required: false
in: query
description: A general text search filter.
schema:
title: q
type: string
- name: bbox
required: false
in: query
description: A bbox filter, must be 4 comma-separated coordinates
schema:
title: bbox
type: string
- name: filter
required: false
in: query
description: query parameter that represents a parse-able string of filter expressions, structured according to the <a href="https://portal.ogc.org/files/96288">Common Query Language Specification of the OGC Features API</a>. If filter values must include whitespace, try wrapping the value in single quotes.
schema:
title: filter
type: string
examples:
equals:
summary: Equals
value: type='Feature Service'
greaterThan:
summary: Greater Than
value: created > 1670531235
greaterThanOrEquals:
summary: Greater Than Or Equals
value: created >= 1670531235
LessThan:
summary: Less Than
value: created < 1670531235
lessThanOrEquals:
summary: Less Than Or Equals
value: created <= 1670531235
in:
summary: IN
value: tags IN (tag1, 'tag2', tag3)
notIn:
summary: NOT IN
value: tags NOT IN (tag1, 'tag2', tag3)
betweenAnd:
summary: BETWEEN AND
value: created BETWEEN 1670531235 AND 1770531235
notBetweenAnd:
summary: NOT BETWEEN AND
value: created NOT BETWEEN 1670531235 AND 1770531235
like:
summary: LIKE
value: description LIKE 'moby*'
'null':
summary: IS NULL
value: source IS NULL
notNull:
summary: IS NOT NULL
value: owner IS NOT NULL
and:
summary: AND
value: tags NOT IN (tag1, 'tag2', tag3) AND owner IS NOT NULL
or:
summary: OR
value: tags NOT IN (tag1, 'tag2', tag3) OR owner IS NOT NULL
not:
summary: NOT
value: tags NOT IN (tag1, 'tag2', tag3) NOT owner IS NULL
subExpressions:
summary: Subexpressions
value: ((type='Feature Service' AND access=public) OR (type='Web Mapping Application' AND access=shared))
- name: limit
required: false
in: query
description: The number of results to return.
schema:
title: limit
type: integer
minimum: 0
maximum: 100
- name: startindex
required: false
in: query
description: The initial index of the results to return, starting at 1.
schema:
title: startindex
type: integer
minimum: 1
- name: type
required: false
in: query
description: The type of resource.
schema:
title: type
type: string
description: the type of the underlying resource
- name: title
required: false
in: query
description: The title of resource to return.
schema:
title: title
type: string
description: the title of the underlying resource
- name: recordId
required: false
in: query
description: The recordId of resource to return. recordId could be itemId or itemId_layerId
schema:
title: recordId
type: string
description: id of the record
- name: sortBy
required: false
in: query
description: Sort results by specific fields. Prefixed by either "+" for ascending or "-" for descending. If no prefix is provided, "+" is assumed.
schema:
title: sortBy
type: string
- name: tags
required: false
in: query
description: Tags for items search
schema:
example: 'true'
type: string
- name: token
required: false
in: query
description: Token to use when accessing the underlying ArcGIS Item that represents the site.
schema:
title: token
type: string
- name: openData
required: false
in: query
description: Boolean flag to get items that are shared to Opendata group
schema:
example: 'true'
type: string
responses:
'200':
description: A FeatureCollection object describing related items to recordId (in GeoJSON) returned when searching the provided collection
content:
application/json:
schema:
$ref: '#/components/schemas/OgcItemResponseDto'
summary: ''
tags:
- OgcItem
/api/search/v1/collections/{collectionId}/items/{recordId}/connected:
get:
description: Returns connected items to recordId from the specified site catalog collection that match specified filters
operationId: OgcItemController_getConnectedOgcItemsById_api/search/v1
parameters:
- name: collectionId
required: true
in: path
description: Key/id of the collection for which item should be filtered and returned.
schema:
example: dataset
type: string
- name: q
required: false
in: query
description: A general text search filter.
schema:
title: q
type: string
- name: bbox
required: false
in: query
description: A bbox filter, must be 4 comma-separated coordinates
schema:
title: bbox
type: string
- name: filter
required: false
in: query
description: query parameter that represents a parse-able string of filter expressions, structured according to the <a href="https://portal.ogc.org/files/96288">Common Query Language Specification of the OGC Features API</a>. If filter values must include whitespace, try wrapping the value in single quotes.
schema:
title: filter
type: string
examples:
equals:
summary: Equals
value: type='Feature Service'
greaterThan:
summary: Greater Than
value: created > 1670531235
greaterThanOrEquals:
summary: Greater Than Or Equals
value: created >= 1670531235
LessThan:
summary: Less Than
value: created < 1670531235
lessThanOrEquals:
summary: Less Than Or Equals
value: created <= 1670531235
in:
summary: IN
value: tags IN (tag1, 'tag2', tag3)
notIn:
summary: NOT IN
value: tags NOT IN (tag1, 'tag2', tag3)
betweenAnd:
summary: BETWEEN AND
value: created BETWEEN 1670531235 AND 1770531235
notBetweenAnd:
summary: NOT BETWEEN AND
value: created NOT BETWEEN 1670531235 AND 1770531235
like:
summary: LIKE
value: description LIKE 'moby*'
'null':
summary: IS NULL
value: source IS NULL
notNull:
summary: IS NOT NULL
value: owner IS NOT NULL
and:
summary: AND
value: tags NOT IN (tag1, 'tag2', tag3) AND owner IS NOT NULL
or:
summary: OR
value: tags NOT IN (tag1, 'tag2', tag3) OR owner IS NOT NULL
not:
summary: NOT
value: tags NOT IN (tag1, 'tag2', tag3) NOT owner IS NULL
subExpressions:
summary: Subexpressions
value: ((type='Feature Service' AND access=public) OR (type='Web Mapping Application' AND access=shared))
- name: limit
required: false
in: query
description: The number of results to return.
schema:
title: limit
type: integer
minimum: 0
maximum: 100
- name: startindex
required: false
in: query
description: The initial index of the results to return, starting at 1.
schema:
title: startindex
type: integer
minimum: 1
- name: type
required: false
in: query
description: The type of resource.
schema:
title: type
type: string
description: the type of the underlying resource
- name: title
required: false
in: query
description: The title of resource to return.
schema:
title: title
type: string
description: the title of the underlying resource
- name: recordId
required: false
in: query
description: The recordId of resource to return. recordId could be itemId or itemId_layerId
schema:
title: recordId
type: string
description: id of the record
- name: sortBy
required: false
in: query
description: Sort results by specific fields. Prefixed by either "+" for ascending or "-" for descending. If no prefix is provided, "+" is assumed.
schema:
title: sortBy
type: string
- name: tags
required: false
in: query
description: Tags for items search
schema:
example: 'true'
type: string
- name: token
required: false
in: query
description: Token to use when accessing the underlying ArcGIS Item that represents the site.
schema:
title: token
type: string
- name: openData
required: false
in: query
description: Boolean flag to get items that are shared to Opendata group
schema:
example: 'true'
type: string
responses:
'200':
description: A FeatureCollection object describing connected items to recordId (in GeoJSON) returned when searching the provided collection
content:
application/json:
schema:
$ref: '#/components/schemas/OgcItemResponseDto'
summary: ''
tags:
- OgcItem
components:
schemas:
OgcItemDto:
type: object
properties:
id:
type: string
title: id
type:
type: string
title: type
enum:
- Feature
geometry:
title: geometry
oneOf:
- title: GeoJSON Point
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- Point
coordinates:
type: array
minItems: 2
items:
type: number
bbox:
type: array
minItems: 4
items:
type: number
- title: GeoJSON LineString
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- LineString
coordinates:
type: array
minItems: 2
items:
type: array
minItems: 2
items:
type: number
bbox:
type: array
minItems: 4
items:
type: number
- title: GeoJSON Polygon
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- Polygon
coordinates:
type: array
items:
type: array
minItems: 4
items:
type: array
minItems: 2
items:
type: number
bbox:
type: array
minItems: 4
items:
type: number
- title: GeoJSON MultiPoint
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- MultiPoint
coordinates:
type: array
items:
type: array
minItems: 2
items:
type: number
bbox:
type: array
minItems: 4
items:
type: number
- title: GeoJSON MultiLineString
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- MultiLineString
coordinates:
type: array
items:
type: array
minItems: 2
items:
type: array
minItems: 2
items:
type: number
bbox:
type: array
minItems: 4
items:
type: number
- title: GeoJSON MultiPolygon
type: object
required:
- type
- coordinates
properties:
type:
type: string
enum:
- MultiPolygon
coordinates:
type: array
items:
type: array
items:
type: array
minItems: 4
items:
type: array
minItems: 2
items:
type: number
bbox:
type: array
minItems: 4
items:
type: number
properties:
type: object
title: properties
time:
type: object
title: time
required:
- id
- type
- geometry
- properties
- time
OgcItemResponseDto:
type: object
properties:
type:
type: string
title: type
enum:
- FeatureCollection
timestamp:
type: string
title: timestamp
format: date-time
numberReturned:
type: number
title: numberReturned
numberMatched:
type: number
title: numberMatched
features:
title: features
type: array
items:
$ref: '#/components/schemas/OgcItemDto'
required:
- type
- timestamp
- numberReturned
- numberMatched
- features