Bureau of Consular Affairs Discovery API
Read-only discovery actions (packages, groups, organizations, tags).
Read-only discovery actions (packages, groups, organizations, tags).
openapi: 3.1.0
info:
title: CA Data Catalog (CKAN) Datastore Discovery API
description: 'Best-effort OpenAPI 3.1 description of the Bureau of Consular Affairs (CA) Data Catalog
API. The catalog runs on the standard CKAN platform, which exposes its functionality at
`/api/3/action/{action_name}` using both GET and POST. CKAN actions are described in the
CKAN Action API documentation.
All CA Data Catalog actions are publicly readable; write actions require an `Authorization`
header carrying a CKAN API token (obtained from the CKAN user profile).
'
version: '3.0'
contact:
name: Bureau of Consular Affairs
url: https://cadatacatalog.state.gov/dataset/
license:
name: U.S. Government Work
url: https://www.usa.gov/government-works
servers:
- url: https://cadatacatalog.state.gov/api/3
description: CA Data Catalog CKAN Action API
tags:
- name: Discovery
description: Read-only discovery actions (packages, groups, organizations, tags).
paths:
/action/site_read:
get:
tags:
- Discovery
summary: Check whether the site is readable
operationId: siteRead
responses:
'200':
description: Site readable
content:
application/json:
schema:
$ref: '#/components/schemas/SuccessBoolean'
/action/package_list:
get:
tags:
- Discovery
summary: List all dataset (package) names
operationId: packageList
parameters:
- name: limit
in: query
schema:
type: integer
- name: offset
in: query
schema:
type: integer
responses:
'200':
description: List of dataset names
content:
application/json:
schema:
$ref: '#/components/schemas/ListResult'
/action/current_package_list_with_resources:
get:
tags:
- Discovery
summary: List datasets along with their resources
operationId: currentPackageListWithResources
parameters:
- name: limit
in: query
schema:
type: integer
- name: offset
in: query
schema:
type: integer
- name: page
in: query
schema:
type: integer
responses:
'200':
description: Datasets with resources
content:
application/json:
schema:
$ref: '#/components/schemas/PackagesResult'
/action/package_show:
get:
tags:
- Discovery
summary: Retrieve a single dataset (package) by id or name
operationId: packageShow
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: use_default_schema
in: query
schema:
type: boolean
- name: include_tracking
in: query
schema:
type: boolean
responses:
'200':
description: Dataset
content:
application/json:
schema:
$ref: '#/components/schemas/PackageResult'
/action/package_search:
get:
tags:
- Discovery
summary: Search datasets with Solr query syntax
operationId: packageSearch
parameters:
- name: q
in: query
schema:
type: string
- name: fq
in: query
schema:
type: string
- name: sort
in: query
schema:
type: string
- name: rows
in: query
schema:
type: integer
- name: start
in: query
schema:
type: integer
- name: facet.field
in: query
schema:
type: string
- name: include_drafts
in: query
schema:
type: boolean
responses:
'200':
description: Search result
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResult'
/action/resource_show:
get:
tags:
- Discovery
summary: Retrieve a single resource by id
operationId: resourceShow
parameters:
- name: id
in: query
required: true
schema:
type: string
responses:
'200':
description: Resource
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceResult'
/action/resource_search:
get:
tags:
- Discovery
summary: Search resources within a dataset
operationId: resourceSearch
parameters:
- name: query
in: query
required: true
schema:
type: string
- name: fields
in: query
schema:
type: string
- name: order_by
in: query
schema:
type: string
- name: offset
in: query
schema:
type: integer
- name: limit
in: query
schema:
type: integer
responses:
'200':
description: Resource search result
content:
application/json:
schema:
$ref: '#/components/schemas/SearchResult'
/action/group_list:
get:
tags:
- Discovery
summary: List dataset groups
operationId: groupList
parameters:
- name: all_fields
in: query
schema:
type: boolean
responses:
'200':
description: Groups
content:
application/json:
schema:
$ref: '#/components/schemas/ListResult'
/action/group_show:
get:
tags:
- Discovery
summary: Retrieve a single group
operationId: groupShow
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: include_datasets
in: query
schema:
type: boolean
responses:
'200':
description: Group
content:
application/json:
schema:
$ref: '#/components/schemas/Result'
/action/organization_list:
get:
tags:
- Discovery
summary: List organizations
operationId: organizationList
parameters:
- name: all_fields
in: query
schema:
type: boolean
responses:
'200':
description: Organizations
content:
application/json:
schema:
$ref: '#/components/schemas/ListResult'
/action/organization_show:
get:
tags:
- Discovery
summary: Retrieve a single organization
operationId: organizationShow
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: include_datasets
in: query
schema:
type: boolean
responses:
'200':
description: Organization
content:
application/json:
schema:
$ref: '#/components/schemas/Result'
/action/tag_list:
get:
tags:
- Discovery
summary: List tags
operationId: tagList
parameters:
- name: query
in: query
schema:
type: string
- name: vocabulary_id
in: query
schema:
type: string
- name: all_fields
in: query
schema:
type: boolean
responses:
'200':
description: Tags
content:
application/json:
schema:
$ref: '#/components/schemas/ListResult'
/action/tag_show:
get:
tags:
- Discovery
summary: Retrieve a single tag
operationId: tagShow
parameters:
- name: id
in: query
required: true
schema:
type: string
- name: include_datasets
in: query
schema:
type: boolean
responses:
'200':
description: Tag
content:
application/json:
schema:
$ref: '#/components/schemas/Result'
components:
schemas:
Result:
type: object
properties:
help:
type: string
success:
type: boolean
result:
type: object
additionalProperties: true
PackageResult:
type: object
properties:
help:
type: string
success:
type: boolean
result:
$ref: '#/components/schemas/Package'
SuccessBoolean:
type: object
properties:
help:
type: string
success:
type: boolean
result:
type: boolean
PackagesResult:
type: object
properties:
help:
type: string
success:
type: boolean
result:
type: array
items:
$ref: '#/components/schemas/Package'
Resource:
type: object
properties:
id:
type: string
package_id:
type: string
name:
type: string
description:
type: string
format:
type: string
url:
type: string
mimetype:
type: string
size:
type: integer
created:
type: string
format: date-time
last_modified:
type: string
format: date-time
datastore_active:
type: boolean
state:
type: string
SearchResult:
type: object
properties:
help:
type: string
success:
type: boolean
result:
type: object
properties:
count:
type: integer
results:
type: array
items:
type: object
additionalProperties: true
facets:
type: object
additionalProperties: true
sort:
type: string
Package:
type: object
properties:
id:
type: string
name:
type: string
title:
type: string
notes:
type: string
author:
type: string
author_email:
type: string
maintainer:
type: string
maintainer_email:
type: string
license_id:
type: string
owner_org:
type: string
state:
type: string
type:
type: string
metadata_created:
type: string
format: date-time
metadata_modified:
type: string
format: date-time
tags:
type: array
items:
type: object
properties:
name:
type: string
display_name:
type: string
groups:
type: array
items:
type: object
resources:
type: array
items:
$ref: '#/components/schemas/Resource'
extras:
type: array
items:
type: object
properties:
key:
type: string
value:
type: string
ResourceResult:
type: object
properties:
help:
type: string
success:
type: boolean
result:
$ref: '#/components/schemas/Resource'
ListResult:
type: object
properties:
help:
type: string
success:
type: boolean
result:
type: array
items: {}
securitySchemes:
apiToken:
type: apiKey
in: header
name: Authorization
description: CKAN API token, generated from the CKAN user profile.