OpenAPI Specification
openapi: 3.0.3
info:
title: ConceptNet REST Concepts Query API
description: ConceptNet is a freely available multilingual knowledge graph providing computers access to common-sense knowledge. The REST API exposes the full ConceptNet 5 knowledge graph via JSON-LD endpoints. Consumers can look up concept nodes by language and term, query edges by relation type, retrieve semantically related terms ranked by Numberbatch embedding similarity, compute pairwise relatedness scores between concepts, and normalize natural-language text into canonical ConceptNet URIs. No authentication or API key is required.
version: '5.7'
license:
name: CC BY-SA 4.0
url: https://creativecommons.org/licenses/by-sa/4.0/
contact:
name: ConceptNet Users Group
url: https://groups.google.com/g/conceptnet-users
x-website: https://conceptnet.io
x-github: https://github.com/commonsense/conceptnet5
servers:
- url: https://api.conceptnet.io
description: ConceptNet public API
tags:
- name: Query
description: Complex multi-parameter edge queries
paths:
/query:
get:
operationId: queryEdges
summary: Query edges with multiple criteria
description: Performs a complex query against the ConceptNet edge store using any combination of start, end, rel, node, other, and sources parameters. All parameters are optional but at least one must be provided. Results are returned as a paginated JSON-LD edge list. This is the most flexible endpoint for slicing the knowledge graph by subject, object, relation type, or data source simultaneously.
tags:
- Query
parameters:
- name: start
in: query
description: ConceptNet URI for the subject (start) node of edges
required: false
schema:
type: string
example: /c/en/dog
- name: end
in: query
description: ConceptNet URI for the object (end) node of edges
required: false
schema:
type: string
example: /c/en/animal
- name: rel
in: query
description: Relation URI to filter by (e.g. /r/IsA or /r/UsedFor)
required: false
schema:
type: string
example: /r/IsA
- name: node
in: query
description: URI matching either the start or end position of edges. Cannot be combined with the "other" parameter using the same URI.
required: false
schema:
type: string
example: /c/en/music
- name: other
in: query
description: URI matching the position opposite to "node". Used together with "node" to find edges where node appears on one side and other appears on the other.
required: false
schema:
type: string
- name: sources
in: query
description: Source URI to restrict results to a specific data source
required: false
schema:
type: string
example: /s/resource/wordnet/3.1
- $ref: '#/components/parameters/offset'
- $ref: '#/components/parameters/limit'
responses:
'200':
description: Paginated list of matching edges
content:
application/json:
schema:
$ref: '#/components/schemas/EdgeList'
'400':
description: Invalid query parameters
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
RelationRef:
type: object
description: Reference to a ConceptNet relation type
properties:
'@id':
type: string
description: Relation URI
example: /r/IsA
label:
type: string
description: Human-readable relation name
example: IsA
Error:
type: object
description: API error response
properties:
error:
type: string
description: Error type identifier
details:
type: string
description: Human-readable error description
EdgeList:
type: object
description: Paginated list of edges
properties:
'@context':
type: array
items:
type: string
'@id':
type: string
description: URI of this query result
edges:
type: array
items:
$ref: '#/components/schemas/Edge'
view:
$ref: '#/components/schemas/Pagination'
SourceRef:
type: object
description: Reference to a data source or contributor
properties:
'@id':
type: string
description: Source URI
example: /s/resource/verbosity
ConceptRef:
type: object
description: Reference to a ConceptNet concept node
properties:
'@id':
type: string
description: ConceptNet URI
example: /c/en/dog
label:
type: string
description: Human-readable label
example: dog
language:
type: string
description: BCP-47 language code
example: en
term:
type: string
description: Concept URI (same as @id)
example: /c/en/dog
sense_label:
type: string
description: Part-of-speech or sense label if applicable
example: n
Edge:
type: object
description: A single ConceptNet assertion (knowledge edge)
properties:
'@id':
type: string
description: Unique URI identifier for this edge
example: /a/[/r/IsA/,/c/en/dog/,/c/en/animal/]
start:
$ref: '#/components/schemas/ConceptRef'
end:
$ref: '#/components/schemas/ConceptRef'
rel:
$ref: '#/components/schemas/RelationRef'
surfaceText:
type: string
nullable: true
description: Natural-language sentence the assertion was derived from
example: '[[A dog]] is a [[animal]].'
weight:
type: number
format: float
description: Confidence weight of the assertion (typically 1.0+)
example: 3.46
license:
type: string
description: Creative Commons license identifier
example: cc:by/4.0
dataset:
type: string
description: Dataset URI this assertion came from
example: /d/verbosity
sources:
type: array
items:
$ref: '#/components/schemas/SourceRef'
Pagination:
type: object
description: Pagination metadata for list responses
properties:
'@id':
type: string
description: URI of the current page
paginatedProperty:
type: string
description: Property name that contains the paginated items
example: edges
firstPage:
type: string
description: URI of the first page
nextPage:
type: string
description: URI of the next page (absent on last page)
previousPage:
type: string
description: URI of the previous page (absent on first page)
comment:
type: string
description: Human-readable summary of current result range
example: Results 1-20 of 143
parameters:
offset:
name: offset
in: query
description: Number of results to skip for pagination (0-100000)
required: false
schema:
type: integer
minimum: 0
maximum: 100000
default: 0
limit:
name: limit
in: query
description: Maximum number of results to return (0-1000)
required: false
schema:
type: integer
minimum: 0
maximum: 1000
default: 20