Dartmouth College Collection API

The Collection API from Dartmouth College — 2 operation(s) for collection.

OpenAPI Specification

dartmouth-collection-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Hub Search Catalog Collection 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: Collection
paths:
  /api/search/v1/collections:
    get:
      description: Lists the collections described in the site's catalog.
      operationId: CollectionController_getSiteCollections_api/search/v1
      parameters:
      - name: token
        required: false
        in: query
        description: ArcGIS token to use when accessing the underlying ArcGIS Item that represents the site.
        schema:
          type: string
      responses:
        '200':
          description: A data object containing a list of site catalog collections.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionsResponseDto'
      summary: ''
      tags:
      - Collection
  /api/search/v1/collections/{collectionId}:
    get:
      description: Retrieves the collection from a site's catalog with a provided id/key
      operationId: CollectionController_getSiteCollectionFromId_api/search/v1
      parameters:
      - name: collectionId
        required: true
        in: path
        description: Key/id for the desired collection.
        schema:
          example: dataset
          type: string
      - name: token
        required: false
        in: query
        description: ArcGIS token to use when accessing the underlying ArcGIS Item that represents the site.
        schema:
          type: string
      responses:
        '200':
          description: A data object describing a site collection.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CollectionWithLinksDto'
      summary: ''
      tags:
      - Collection
components:
  schemas:
    CollectionsResponseLinksDto:
      type: object
      properties:
        rel:
          type: string
        type:
          type: string
        title:
          type: string
        href:
          type: string
      required:
      - rel
      - type
      - title
      - href
    RangeParamsEpoch:
      type: object
      properties:
        from:
          type: number
          description: epoch time in milliseconds
          example: 160000000
        to:
          type: number
          description: epoch time in milliseconds
          example: 170000000
      required:
      - from
      - to
    CollectionDto:
      type: object
      properties:
        id:
          type: string
          example: '12345'
        type:
          type: string
          enum:
          - Collection
        title:
          type: string
          example: Collection Title
        description:
          type: string
          example: Collection description
        itemType:
          type: string
        crs:
          type: array
          items:
            type: string
        filters:
          type: array
          items:
            $ref: '#/components/schemas/ItemSearchFiltersBlockDto'
      required:
      - id
      - type
      - title
      - description
      - itemType
      - crs
    ItemSearchFiltersBlockDto:
      type: object
      properties:
        operation:
          type: string
          enum:
          - AND
          - OR
          default: AND
        predicates:
          type: array
          items:
            $ref: '#/components/schemas/ItemSearchFiltersDto'
      required:
      - predicates
    CollectionWithLinksDto:
      type: object
      properties:
        id:
          type: string
          example: '12345'
        type:
          type: string
          enum:
          - Collection
        title:
          type: string
          example: Collection Title
        description:
          type: string
          example: Collection description
        itemType:
          type: string
        crs:
          type: array
          items:
            type: string
        filters:
          type: array
          items:
            $ref: '#/components/schemas/ItemSearchFiltersBlockDto'
        links:
          type: array
          items:
            $ref: '#/components/schemas/CollectionDtoLink'
      required:
      - id
      - type
      - title
      - description
      - itemType
      - crs
      - links
    EnvelopeDto:
      type: object
      properties:
        bbox:
          type: array
          minItems: 4
          items:
            type: number
        type:
          type: string
          description: Type of geometry filter, must be "Envelope"
          enum:
          - Envelope
        coordinates:
          description: Coordinates in either 2d bbox [xmin,ymin,xmax,ymax] or envelope [[xmin,ymax],[xmax,ymin]] formats
          anyOf:
          - type: array
            minItems: 4
            maxItems: 4
            items:
              type: number
          - type: array
            minItems: 2
            maxItems: 2
            items:
              type: array
              minItems: 2
              maxItems: 2
              items:
                type: number
      required:
      - type
      - coordinates
    GeometryFilterDto:
      type: object
      properties:
        relation:
          type: string
          description: Type of relation, defaults to "intersects"
          enum:
          - intersects
          - disjoint
          - within
          - contains
        geometry:
          anyOf:
          - $ref: '#/components/schemas/EnvelopeDto'
          allOf:
          - $ref: '#/components/schemas/GeometryDto'
      required:
      - geometry
    GeometryDto:
      type: object
      properties:
        bbox:
          type: array
          minItems: 4
          items:
            type: number
    CollectionsResponseDto:
      type: object
      properties:
        collections:
          type: array
          items:
            $ref: '#/components/schemas/CollectionDto'
        links:
          type: array
          items:
            $ref: '#/components/schemas/CollectionsResponseLinksDto'
      required:
      - collections
      - links
    ItemSearchFiltersDto:
      type: object
      properties:
        id:
          oneOf:
          - type: string
            nullable: false
            description: an id
            pattern: ^[a-f0-9]{32}$
          - type: array
            nullable: false
            description: an array of ids, any of which should match
            items:
              type: string
              nullable: false
              description: an id
              pattern: ^[a-f0-9]{32}$
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: an id
                  pattern: ^[a-f0-9]{32}$
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: an id
                  pattern: ^[a-f0-9]{32}$
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: an id
                  pattern: ^[a-f0-9]{32}$
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: an id
                  pattern: ^[a-f0-9]{32}$
        owner:
          example: dev_bas_hub_admin
          oneOf:
          - type: string
            nullable: false
            description: an owner
          - type: array
            nullable: false
            description: an array of owners, any of which should match
            items:
              type: string
              nullable: false
              description: an owner
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: an owner
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: an owner
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: an owner
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: an owner
        created:
          description: a date range
          example:
            from: 160000000
            to: 170000000
          allOf:
          - $ref: '#/components/schemas/RangeParamsEpoch'
        modified:
          description: a date range
          example:
            from: 160000000
            to: 170000000
          allOf:
          - $ref: '#/components/schemas/RangeParamsEpoch'
        title:
          example:
            all:
            - all
            - here
            - must match
            any:
            - any
            - here
            - must match
            not:
            - none
            - here
            - must match
            exact:
            - all
            - here
            - must match exactly
          oneOf:
          - type: string
            nullable: false
            description: a title string
          - type: array
            nullable: false
            description: an array of title strings, any of which should match
            items:
              type: string
              nullable: false
              description: a title string
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: a title string
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: a title string
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: a title string
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: a title string
        type:
          example:
          - Feature Service
          - Microsoft Excel
          oneOf:
          - type: string
            nullable: false
            description: a type
          - type: array
            nullable: false
            description: an array of types, any of which should match
            items:
              type: string
              nullable: false
              description: a type
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: a type
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: a type
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: a type
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: a type
        typekeywords:
          example: HubProject
          oneOf:
          - type: string
            nullable: false
            description: a typekeyword
          - type: array
            nullable: false
            description: an array of typekeywords, any of which should match
            items:
              type: string
              nullable: false
              description: a typekeyword
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: a typekeyword
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: a typekeyword
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: a typekeyword
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: a typekeyword
        description:
          example:
            all:
            - all
            - here
            - must match
            any:
            - any
            - here
            - must match
            not:
            - none
            - here
            - must match
            exact:
            - all
            - here
            - must match exactly
          oneOf:
          - type: string
            nullable: false
            description: a decription string
          - type: array
            nullable: false
            description: an array of description strings, any of which should match
            items:
              type: string
              nullable: false
              description: a description string
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: a description string
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: a description string
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: a description string
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: a description string
        tags:
          example:
          - tag 1
          - tag 2
          oneOf:
          - type: string
            nullable: false
            description: a tag
          - type: array
            nullable: false
            description: an array of tags, any of which should match
            items:
              type: string
              nullable: false
              description: a tag
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: a tag
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: a tag
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: a tag
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: a tag
        snippet:
          example: a test snippet
          oneOf:
          - type: string
            nullable: false
            description: a snippet string
          - type: array
            nullable: false
            description: an array of snippet strings, any of which should match
            items:
              type: string
              nullable: false
              description: a snippet string
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: a snippet string
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: a snippet string
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: a snippet string
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: a snippet string
        accessinformation:
          example:
            all:
            - all
            - here
            - must match
            any:
            - any
            - here
            - must match
            not:
            - none
            - here
            - must match
            exact:
            - all
            - here
            - must match exactly
          oneOf:
          - type: string
            nullable: false
            description: an accessinformation string
          - type: array
            nullable: false
            description: an array of accessinformation strings, any of which should match
            items:
              type: string
              nullable: false
              description: an accessinformation string
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: an accessinformation string
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: an accessinformation string
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: an accessinformation string
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: an accessinformation string
        access:
          example:
          - public
          - private
          anyOf:
          - type: string
            nullable: false
            enum:
            - public
            - private
            - org
            - shared
            description: an access string
          - type: array
            nullable: false
            description: an array of access strings, any of which should match
            items:
              type: string
              nullable: false
              enum:
              - public
              - private
              - org
              - shared
              description: an accessinformation string
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  enum:
                  - public
                  - private
                  - org
                  - shared
                  description: an access string
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  enum:
                  - public
                  - private
                  - org
                  - shared
                  description: an access string
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  enum:
                  - public
                  - private
                  - org
                  - shared
                  description: an access string
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  enum:
                  - public
                  - private
                  - org
                  - shared
                  description: an access string
        group:
          oneOf:
          - type: string
            nullable: false
            description: a group id
            pattern: ^[a-f0-9]{32}$
          - type: array
            nullable: false
            description: an array of group ids, any of which should match
            items:
              type: string
              nullable: false
              description: a group id
              pattern: ^[a-f0-9]{32}$
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: a group id
                  pattern: ^[a-f0-9]{32}$
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: a group id
                  pattern: ^[a-f0-9]{32}$
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: a group id
                  pattern: ^[a-f0-9]{32}$
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: a group id
                  pattern: ^[a-f0-9]{32}$
        culture:
          example:
            all:
            - all
            - here
            - must match
            any:
            - any
            - here
            - must match
            not:
            - none
            - here
            - must match
            exact:
            - all
            - here
            - must match exactly
          oneOf:
          - type: string
            nullable: false
            description: a culture string
          - type: array
            nullable: false
            description: an array of culture strings, any of which should match
            items:
              type: string
              nullable: false
              description: a culture string
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: a culture string
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: a culture string
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: a culture string
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: a culture string
        orgid:
          oneOf:
          - type: string
            nullable: false
            description: an org id
            pattern: ^[a-zA-Z0-9]{16}$
          - type: array
            nullable: false
            description: an array of org ids, any of which should match
            items:
              type: string
              nullable: false
              description: an org id
              pattern: ^[a-zA-Z0-9]{16}$
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: an org id
                  pattern: ^[a-zA-Z0-9]{16}$
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: an org id
                  pattern: ^[a-zA-Z0-9]{16}$
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: an org id
                  pattern: ^[a-zA-Z0-9]{16}$
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
                  nullable: false
                  description: an org id
                  pattern: ^[a-zA-Z0-9]{16}$
        categories:
          example: category test
          oneOf:
          - type: string
            nullable: false
            description: a category
          - type: array
            nullable: false
            description: an array of categories, any of which should match
            items:
              type: string
              nullable: false
              description: a category
          - type: object
            properties:
              all:
                type: array
                nullable: true
                description: optional array of terms that all must match
                items:
                  type: string
                  nullable: false
                  description: a category
              any:
                type: array
                nullable: true
                description: optional array of terms, only at least one must match
                items:
                  type: string
                  nullable: false
                  description: a category
              not:
                type: array
                nullable: true
                description: optional array of terms, none of which can must match
                items:
                  type: string
                  nullable: false
                  description: a category
              exact:
                type: array
                nullable: true
                description: optional array of terms, all of which must match exactly
                items:
                  type: string
       

# --- truncated at 32 KB (33 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/dartmouth/refs/heads/main/openapi/dartmouth-collection-api-openapi.yml