<html><body>
<style>

body, h1, h2, h3, div, span, p, pre, a {
  margin: 0;
  padding: 0;
  border: 0;
  font-weight: inherit;
  font-style: inherit;
  font-size: 100%;
  font-family: inherit;
  vertical-align: baseline;
}

body {
  font-size: 13px;
  padding: 1em;
}

h1 {
  font-size: 26px;
  margin-bottom: 1em;
}

h2 {
  font-size: 24px;
  margin-bottom: 1em;
}

h3 {
  font-size: 20px;
  margin-bottom: 1em;
  margin-top: 1em;
}

pre, code {
  line-height: 1.5;
  font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace;
}

pre {
  margin-top: 0.5em;
}

h1, h2, h3, p {
  font-family: Arial, sans serif;
}

h1, h2, h3 {
  border-bottom: solid #CCC 1px;
}

.toc_element {
  margin-top: 0.5em;
}

.firstline {
  margin-left: 2 em;
}

.method  {
  margin-top: 1em;
  border: solid 1px #CCC;
  padding: 1em;
  background: #EEE;
}

.details {
  font-weight: bold;
  font-size: 14px;
}

</style>

<h1><a href="kgsearch_v1.html">Knowledge Graph Search API</a> . <a href="kgsearch_v1.entities.html">entities</a></h1>
<h2>Instance Methods</h2>
<p class="toc_element">
  <code><a href="#search">search(languages=None, types=None, ids=None, indent=None, prefix=None, query=None, limit=None, x__xgafv=None)</a></code></p>
<p class="firstline">Searches Knowledge Graph for entities that match the constraints.</p>
<h3>Method Details</h3>
<div class="method">
    <code class="details" id="search">search(languages=None, types=None, ids=None, indent=None, prefix=None, query=None, limit=None, x__xgafv=None)</code>
  <pre>Searches Knowledge Graph for entities that match the constraints.
A list of matched entities will be returned in response, which will be in
JSON-LD format and compatible with http://schema.org

Args:
  languages: string, The list of language codes (defined in ISO 693) to run the query with,
e.g. &#x27;en&#x27;. (repeated)
  types: string, Restricts returned entities with these types, e.g. Person
(as defined in http://schema.org/Person). If multiple types are specified,
returned entities will contain one or more of these types. (repeated)
  ids: string, The list of entity id to be used for search instead of query string.
To specify multiple ids in the HTTP request, repeat the parameter in the
URL as in ...?ids=A&amp;ids=B (repeated)
  indent: boolean, Enables indenting of json results.
  prefix: boolean, Enables prefix match against names and aliases of entities
  query: string, The literal query string for search.
  limit: integer, Limits the number of entities to be returned.
  x__xgafv: string, V1 error format.
    Allowed values
      1 - v1 error format
      2 - v2 error format

Returns:
  An object of the form:

    { # Response message includes the context and a list of matching results
      # which contain the detail of associated entities.
    &quot;itemListElement&quot;: [ # The item list of search results.
      &quot;&quot;,
    ],
    &quot;@context&quot;: &quot;&quot;, # The local context applicable for the response. See more details at
        # http://www.w3.org/TR/json-ld/#context-definitions.
    &quot;@type&quot;: &quot;&quot;, # The schema type of top-level JSON-LD object, e.g. ItemList.
  }</pre>
</div>

</body></html>