Smithsonian Institution search API
Search across Smithsonian collections
Search across Smithsonian collections
openapi: 3.0.3
info:
title: Smithsonian Open Access content search API
description: 'REST API providing programmatic access to millions of digitized Smithsonian collection objects, metadata, images, and 3D models across 19 museums and research centers. All content is released under CC0 (public domain). Supports search, content retrieval, and term browsing. An API key from api.data.gov is required for all requests.
'
version: 1.0.0
contact:
name: Smithsonian Open Access Team
email: openaccess@si.edu
license:
name: CC0 1.0 Universal
url: https://creativecommons.org/publicdomain/zero/1.0/
termsOfService: https://www.si.edu/termsofuse
servers:
- url: https://api.si.edu/openaccess
description: Smithsonian Open Access API
security:
- ApiKeyAuth: []
tags:
- name: search
description: Search across Smithsonian collections
paths:
/api/v1.0/search:
get:
operationId: search
summary: Search collection objects
description: Fetches content based on a query across all Smithsonian collections.
tags:
- search
parameters:
- $ref: '#/components/parameters/Query'
- $ref: '#/components/parameters/Start'
- $ref: '#/components/parameters/Rows'
- $ref: '#/components/parameters/Sort'
- name: type
in: query
required: false
description: The type of row object. Each type conforms to a published schema.
schema:
type: string
enum:
- edanmdm
- ead_collection
- ead_component
- all
default: edanmdm
- name: row_group
in: query
required: false
description: 'The designated set of row types to filter against. Objects refers to objects, artifacts, and specimens. Archives are all archives collection and item records.
'
schema:
type: string
enum:
- objects
- archives
default: objects
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: Search results returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/v1.0/category/{cat}/search:
get:
operationId: searchByCategory
summary: Search by category
description: 'Fetches content based on a query filtered to one of the three top-level Smithsonian categories: art_design, history_culture, or science_technology.
'
tags:
- search
parameters:
- name: cat
in: path
required: true
description: The category to filter against.
schema:
type: string
enum:
- art_design
- history_culture
- science_technology
- $ref: '#/components/parameters/Query'
- $ref: '#/components/parameters/Start'
- $ref: '#/components/parameters/Rows'
- $ref: '#/components/parameters/Sort'
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: Category search results returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResponse'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
'404':
description: Not found.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
/api/v1.0/terms/{category}:
get:
operationId: getTerms
summary: Get terms by category
description: Fetches an array of terms based on a term category for use in faceted search.
tags:
- search
parameters:
- name: category
in: path
required: true
description: The term category to retrieve.
schema:
type: string
enum:
- culture
- data_source
- date
- object_type
- online_media_type
- place
- topic
- unit_code
- name: starts_with
in: query
required: false
description: Optional string prefix to filter terms.
schema:
type: string
- $ref: '#/components/parameters/ApiKey'
responses:
'200':
description: Terms returned successfully.
content:
application/json:
schema:
$ref: '#/components/schemas/TermsResponse'
'400':
description: Bad request.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
components:
parameters:
ApiKey:
name: api_key
in: query
required: true
description: API key received from https://api.data.gov/signup/
schema:
type: string
Sort:
name: sort
in: query
required: false
description: 'Sort order of the result set. Default is relevancy. newest sorts by timestamp descending. updated sorts by lastTimeUpdated descending.
'
schema:
type: string
enum:
- id
- newest
- updated
- random
default: relevancy
Query:
name: q
in: query
required: true
description: 'The query string. Accepts boolean operators (AND, OR) and fielded searches (e.g. topic:Gastropoda). See /terms endpoints for valid field types.
'
schema:
type: string
Start:
name: start
in: query
required: false
description: The starting row offset for pagination.
schema:
type: integer
minimum: 0
default: 0
Rows:
name: rows
in: query
required: false
description: Number of rows to return (0–1000).
schema:
type: integer
minimum: 0
maximum: 1000
default: 10
schemas:
SearchResponse:
type: object
properties:
status:
type: integer
description: HTTP status code.
example: 200
responseCode:
type: integer
description: API response code (1 = success, 0 = error).
example: 1
response:
type: object
properties:
rows:
type: array
description: Array of matching collection objects.
items:
$ref: '#/components/schemas/CollectionObject'
rowCount:
type: integer
description: Total number of matching records.
example: 4700000
message:
type: string
description: Human-readable response message.
example: content found
TermsResponse:
type: object
properties:
status:
type: integer
example: 200
responseCode:
type: integer
example: 1
response:
type: object
properties:
terms:
type: array
description: Array of term strings for the requested category.
items:
type: string
ErrorResponse:
type: object
properties:
status:
type: integer
description: HTTP status code.
example: 404
responseCode:
type: integer
description: API response code (0 = error).
example: 0
response:
type: object
properties:
error:
type: string
description: Error message describing the issue.
example: 'not found: the resource you were acting on could not be found'
timestamp:
type: string
description: Timestamp of the error.
example: Fri Jun 07 09:23:09 EDT 2019
CollectionObject:
type: object
description: A digitized Smithsonian collection object.
properties:
id:
type: string
description: Unique identifier for the object.
example: edanmdm-nmaahc_2012.36.4ab
title:
type: string
description: Title of the collection object.
example: Drumsticks used by Art Blakey
unitCode:
type: string
description: Code identifying the Smithsonian museum or research unit.
example: NMAAHC
linkedId:
type: string
description: Linked identifier if applicable.
type:
type: string
description: Object type (e.g. edanmdm, ead_collection).
example: edanmdm
url:
type: string
description: Canonical URL identifier for the object.
example: edanmdm:nmaahc_2012.36.4ab
content:
type: object
description: Type-specific content metadata. Structure varies by object type.
additionalProperties: true
hash:
type: string
description: Content hash of the record.
docSignature:
type: string
description: Document signature for integrity checking.
timestamp:
type: integer
format: int64
description: Unix timestamp when the record was created.
lastTimeUpdated:
type: integer
format: int64
description: Unix timestamp when the record was last updated.
version:
type: string
description: Version identifier for the record.
securitySchemes:
ApiKeyAuth:
type: apiKey
in: query
name: api_key
description: API key from https://api.data.gov/signup/
externalDocs:
description: Open Access API Documentation
url: https://edan.si.edu/openaccess/apidocs/