Every API here is available over the APIs.io API and to AI agents over MCP.
openapi: 3.2.0
info:
description: '## Precision News API
The Precision News APIs provide access to curated news annotated with metadata tags.'
version: '1.0'
title: Bitvore Legacy Entity API
license:
name: Copyright Bitvore Corp. 2026
servers:
- url: https://api.bitvore.com/
tags:
- name: Entity
description: Entity API
paths:
/entityapi/entities:
get:
tags:
- Entity
summary: Organization Search
description: 'Search can be performed using one of two approaches, a lookup or a parameterized query. A lookup takes a single string as input to matching entities. The following are the matching rules used. The search results are ordered according to the rules.
1. Exact match on name (case insensitive)
2. Exact match on ticker
3. Exact match on domain name
4. Exact match on alias (case insensitive)
5. Starts with on name (case insensitive)
6. Starts with on ticker
7. Starts with on domain name
8. Starts with on alias (case insensitive)
An example of performing a lookup is as follows:
```js
GET /entityapi/entities?lookup=acme HTTP 1.1
Accept: application/json
```
A paramaterized query takes one or more search parameters. A parameter has a name and one or more values. The search will match the company properties and relationships with the parameters and return only those that match all input parameters. The following are the supported search parameters:
* name - One or more names to search for
* ticker - One or more tickers to search for
* domainName - One or more domain names to search for.
* location - One or more locations companies must have their headquarters in. Locations are in the format of city/state code/country. If city or state is unspecified the appropriate / delimiters must still be included, i.e., /California/United States. Must not be used with fips or zip.
* fips - One or more FIPS codes identifying counties or CBSAs (metropolitan/micropolitan statistical areas) companies must have their headquarters in. FIPS codes for counties can be found here. FIPS codes for CBSAs can be found here. Maps of CBSAs can be found here. Must not be used with location or zip.
* zip - One or more zip codes identifying ZIP Code Tabulation Areas (ZCTAs) companies must have their headquarters in. Must not be used with location or fips.
* naics - One or more NAICS codes identifying industries the companies must operate in.
* sic - One or more SIC codes identifying industries the companies must operate in.
* revRange - Revenue range (in millions) companies must fall in. The range is formated as lower-upper where lower and upper must be one of 0, 1, 10, 50, 100, 500, 1000, 10000. The upper bound can be omitted to report over 10B. Note: On 1/11/2020 the range boundary of 200 was replaced with 500 and will be no longer supported on 7/1/2020.
* empRange - Employee range companies must fall in. The range is formated as lower-upper where lower and upper must be one of 1, 10, 50, 100, 250, 500, 1000, 5000, 10000. The upper bound can be omitted to report over 10000. Note: On 1/11/2020 the range boundary of 200 was replaced by 100 and 250 and will be no longer supported on 7/1/2020.
An example of performing a parameterized query by domain name is
```js
GET /entityapi/entities?domainName=acme.com HTTP 1.1
Accept: application/json
```
0 or more companies may be returned that match the supplied query criteria. Only summary information for each matching company is supplied which includes the following fields:
* ID
* Name
* Domain Name
* Ticker
* State
* Country
* Parent
* Monitoring State
A sample successful response is:
```js
{
"success": true,
"returned": 1,
"total": 1,
"response": [
{
"id": "b0004i9h2",
"name": "LinkedIn",
"domainName": "linkedin.com",
"city": "Sunnyvale",
"state": "CA",
"country": "United States",
"monitored": "active",
"parent": {
"id": "b00001adv",
"name": "MICROSOFT CORPORATION",
"ticker": "MSFT",
"domainName": "microsoft.com",
"state": "WA",
"country": "United States",
"monitored": "active"
}
},
]
}
```
A sample unsuccessful response is:
```js
{
"success": false,
"reason": "b00000000",
"reasonSupport": "No company with BvId b00000000 found.",
"returned": 0,
"total": 1
}
```'
operationId: handleOrgLookupUsingGET
parameters:
- name: lookup
in: query
description: Lookup option. Value is used to match multiple fields.
required: false
allowEmptyValue: false
schema:
type: string
- name: name
in: query
description: One or more names to search for.
required: false
allowEmptyValue: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: ticker
in: query
description: One or more tickers to search for.
required: false
allowEmptyValue: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: domainName
in: query
description: One or more domain names to search for.
required: false
allowEmptyValue: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: location
in: query
description: One or more locations companies must have their headquarters in.
required: false
allowEmptyValue: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: fips
in: query
description: One or more FIPS codes identifying locations the companies must have their headquarters in.
required: false
allowEmptyValue: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: zip
in: query
description: One or more zip codes identifying locations the companies must have their headquarters in.
required: false
allowEmptyValue: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: naics
in: query
description: One or more NAICS codes identifying industries the companies must operate in.
required: false
allowEmptyValue: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: sic
in: query
description: One or more SIC codes identifying industries the companies must operate in.
required: false
allowEmptyValue: false
style: form
explode: true
schema:
type: array
items:
type: string
- name: revRange
in: query
description: Revenue range (in millions) companies must fall in. The range is formated as lower-upper where lower and upper must be one of 0, 1, 10, 50, 100, 200, 1000. The upper bound can be ommited to report over 1B.
required: false
allowEmptyValue: false
schema:
type: string
- name: empRange
in: query
description: Employee range companies must fall in. The range is formated as lower-upper where lower and upper must be one of 1, 10, 50, 200, 500, 1000, 5000, 10000. The upper bound can be ommited to report over 1B.
required: false
allowEmptyValue: false
schema:
type: string
- name: pageNo
in: query
description: Page number of the total result set to return, default is 1.
required: false
allowEmptyValue: false
schema:
type: integer
format: int32
default: 1
- name: pageSize
in: query
description: Number of results out of the total result set per page to return, default is 100, maximum is 1000.
required: false
allowEmptyValue: false
schema:
type: integer
format: int32
default: 100
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationSearchResponseLegacy'
originalRef: OrganizationSearchResponseLegacy
'400':
description: Invalid parameter used
content:
application/json:
schema:
$ref: '#/components/schemas/ReasonResponse'
originalRef: ReasonResponse
'401':
description: Unauthorized to view organizations
content:
application/json:
schema:
$ref: '#/components/schemas/ReasonResponse'
originalRef: ReasonResponse
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ReasonResponse'
originalRef: ReasonResponse
security:
- API key:
- Global
- BasicAuth:
- Global
- OAuth:
- Global
deprecated: false
/entityapi/entities/{id}:
get:
tags:
- Entity
summary: Organization Details
description: 'Returns detailed information about the company with the given Bitvore ID. The full set of company : fields are returned by this call. An example of retrieving the details of a company with a specified Bitvore ID is
```js
GET /entityapi/entities/b0004i9h2 HTTP 1.1
Accept: application/json
X-CLIENTAPP-APPID: BVAPI
```
A sample successful response is:
```js
{
"id": "b0004i9h2",
"name": "LinkedIn",
"domainName": "linkedin.com",
"revenue": "1000-",
"employees": "5000-10000",
"city": "Sunnyvale",
"state": "CA",
"country": "United States",
"monitored": "active",
"naicsIndustry": {
"code": "54151",
"name": "Computer Systems Design and Related Services"
},
"sicIndustry": {
"code": "737",
"name": "Computer Programming, Data Processing, And Other Computerrelated"
},
"parent": {
"id": "b00001adv",
"name": "MICROSOFT CORPORATION",
"ticker": "MSFT",
"domainName": "microsoft.com",
"state": "WA",
"country": "United States",
"linkedInUrl": "https://www.linkedin.com/company/1337",
"twitterUrl": "https://twitter.com/LinkedIn",
"monitored": "active"
},
"ultimateParent": {
"id": "b00001adv",
"name": "MICROSOFT CORPORATION",
"ticker": "MSFT",
"domainName": "microsoft.com",
"state": "WA",
"country": "United States",
"monitored": "active"
}
}
```'
operationId: handleGetOrgUsingGET
parameters:
- name: id
in: path
description: id
required: true
schema:
type: string
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/OrganizationDetails'
originalRef: OrganizationDetails
'400':
description: Invalid parameter used
content:
application/json:
schema:
$ref: '#/components/schemas/ReasonResponse'
originalRef: ReasonResponse
'401':
description: Unauthorized to view organizations
content:
application/json:
schema:
$ref: '#/components/schemas/ReasonResponse'
originalRef: ReasonResponse
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/ReasonResponse'
originalRef: ReasonResponse
security:
- API key:
- Global
- BasicAuth:
- Global
- OAuth:
- Global
deprecated: false
/entityapi/matches:
post:
tags:
- Entity
summary: Organization Matching
description: 'Attempts to find companies matching input specifications made up of a list of property values. Multiple companies can be matched in a single call. For each company to match a list of properties and values known by the client (the input specification) are passed in. If possible the system will return a single matching company for each input specification. If more than one company matches an input specification and there is not one company that is more qualified than the others all the candidates will be returned. The following are the company properties that can be used in input specifications. More than one value can be supplied for each indicating a match of any of the values will be acceptable.
* Name
* DomainName
* Ticker
* NAICSCode
* SICCode
* City
* StateCode
* Country
In the following example we''ll try to match two companies. In this case they will actually be companies with the same name but by using different properties in the specifications we can see how the system matches differently. The first specification will include the company name and the state it''s in. The second specification will include the company name and its domain name.
```js
POST /matches
Content-Type: application/json
Accept: application/json
X-BV-APIKEY: xyz123...
[
{
"Name": ["Bank of Commerce"],
"StateCode": ["OK"]
},
{
"Name": ["Bank of Commerce"],
"DomainName": ["bocokonline.com"]
}
]
```
The response to this request will have two sets of matching candidates:
```js
[
{
"spec": {
"Name": ["Bank Of Commerce"],
"StateCode": ["OK"]
},
"candidates": [
{
"org": {
"id": "d0007i2x0",
"name": "Bank of Commerce",
"domainName": "bocokonline.com",
"state": "OK",
...
},
"hits": ["Name","StateCode"]
},
{
"org": {
"id": "d00078oes",
"name": "Bank of Commerce",
"domainName": "bocokla.com",
"state": "OK",
...
},
"hits": ["Name","StateCode"]
},
{
"org": {
"id": "d0007v0mn",
"name": "BANK OF COMMERCE",
"state": "OK",
...
},
"hits": ["Name","StateCode"]
}
]
},
{
"spec": {
"Name": ["Bank Of Commerce"],
"DomainName": ["bocokonline.com"]
},
"candidates": [
{
"org": {
"id": "d0007i2x0",
"name": "Bank of Commerce",
"domainName": "bocokonline.com",
"state": "OK",
...
},
"hits": ["Name","DomainName"]
}
]
}
]
```
The first set of candidates is returned for the name/state combination. There are three companies with the input name and state code. Since that is the only input the system could not narrow the candidates down any further.
The second set of candidates is returned for the same name but with a domain name instead of a state code. This input specification matched only one company in the system which is returned.
The properties that were matched for each candidate are returned in the "hits" field. These will match the input specification properties. However, when matching names the system will attempt to match the input name against the company names in the Knowledge Graph as well as any known aliases for companies. If the input name matched an alias instead of a company name the "Alias" property will be returned in "hits".'
operationId: handleOrgMatchingUsingPOST
responses:
'200':
description: Success.
content:
application/json:
schema:
$ref: '#/components/schemas/SingleOrganizationMatchingResultLegacy'
originalRef: SingleOrganizationMatchingResultLegacy
'400':
description: Invalid parameter used.
content:
application/json:
schema:
$ref: '#/components/schemas/ReasonResponse'
originalRef: ReasonResponse
'500':
description: Internal error.
content:
application/json:
schema:
$ref: '#/components/schemas/ReasonResponse'
originalRef: ReasonResponse
security:
- API key:
- Global
- BasicAuth:
- Global
- OAuth:
- Global
deprecated: false
requestBody:
content:
application/json:
schema:
type: array
items:
$ref: '#/components/schemas/OrganizationMatchingSpecification'
originalRef: OrganizationMatchingSpecification
description: specs
required: true
/entityapi/version:
get:
tags:
- Entity
summary: Return API Version
description: Deprecated
operationId: getVersionUsingGET
responses:
'200':
description: Success
content:
application/json:
schema:
$ref: '#/components/schemas/ReasonResponse'
originalRef: ReasonResponse
'401':
description: Unauthorized to get version
content:
application/json:
schema:
$ref: '#/components/schemas/BasicResponse'
originalRef: BasicResponse
'500':
description: Internal error
content:
application/json:
schema:
$ref: '#/components/schemas/BasicResponse'
originalRef: BasicResponse
security:
- API key:
- Global
- BasicAuth:
- Global
- OAuth:
- Global
deprecated: false
components:
schemas:
SearchTerm:
type: object
properties:
searchTermType:
type: string
example: formerName
description: Search term type
enum:
- NAME
- SHORT_NAME
- LEGAL_NAME
- DBA_NAME
- LOCAL_NAME
- FORMER_NAME
- LEGACY_ALIAS
- LEGACY_HINT
- MANUAL_ALIAS
- MANUAL_HINT
- ACCENTS_STRIPPED
- TRIMMED
- LEGACY_NAME
term:
type: string
example: Big Blue
description: Search term used for entity search and for collecting intelligence data.
title: SearchTerm
description: Full information about a search term, includes both aliases and company hints.
OrganizationSummaryLegacy:
type: object
properties:
active:
type: boolean
city:
type: string
example: Irvine
description: City the organization is headquartered in
country:
type: string
example: UNITED STATES
description: Country the organization is headquartered in
domainName:
type: string
example: acme.com
description: Domain name of the organization (if website known)
id:
type: string
example: b00001aaa
description: ID (BvId) of the organization
mergedIntoId:
type: string
monitored:
type: string
example: active
description: Indicates whether the orgnaization is being actively monitored.
enum:
- inactive
- pending
- active
name:
type: string
example: ACME Corp
description: Name of the organization
parent:
description: Parent organization (if it exists)
$ref: '#/components/schemas/OrganizationSummaryLegacy'
originalRef: OrganizationSummaryLegacy
state:
type: string
example: CALIFORNIA
description: State the organization is headquartered in
ticker:
type: string
example: MSFT
description: Stock ticker of the organization (if traded)
title: OrganizationSummaryLegacy
description: Summary information about an organization.
OrganizationMatchingSpecification:
type: object
title: OrganizationMatchingSpecification
additionalProperties:
$ref: '#/components/schemas/List'
originalRef: List
OrganizationSearchResponseLegacy:
type: object
required:
- returned
- total
properties:
count:
type: integer
format: int32
example: 1
description: Deprecated, replaced by the returned property
reason:
type: string
example: Could not locate subject.
description: Text reason for the failure (if not successful)
reasonSupport:
type: string
example: Longer description of the missing subject.
description: Additional information about the failure (if not successful)
response:
type: array
description: Response payload
items:
$ref: '#/components/schemas/OrganizationSummaryLegacy'
originalRef: OrganizationSummaryLegacy
returned:
type: integer
format: int32
example: 1
description: Number of organizations returned by search, may be less than total if paging used
success:
type: boolean
example: true
description: Indicates whether the call was successful or not
total:
type: integer
format: int32
example: 10
description: Total number of organizations matching search criteria
title: OrganizationSearchResponseLegacy
description: Organization search response.
IndustrySummary:
type: object
properties:
code:
type: string
example: 55101050
description: Unique ID of the industry
name:
type: string
example: Corporate Financial Services
description: Name of the industry
title: IndustrySummary
description: Summary information about an industry.
BasicResponse:
type: object
properties:
response:
type: object
description: Response payload
success:
type: boolean
example: true
description: Indicates whether the call was successful or not
title: BasicResponse
description: Default response wrapper for API requests.
OrganizationDetails:
type: object
properties:
active:
type: boolean
aliases:
type: array
description: List of aliases for the organization
items:
type: string
city:
type: string
example: Irvine
description: City the organization is headquartered in
country:
type: string
example: UNITED STATES
description: Country the organization is headquartered in
cusip:
type: string
example: 594918104
description: Committee on Uniform Securities Identification Procedures (CUSIP)
description:
type: string
example: ACME is a manufacturer of cartoon explosives.
description: Description of the organization
domainName:
type: string
example: acme.com
description: Domain name of the organization (if website known)
dunsNumber:
type: integer
format: int64
example: 832282375
description: DUNS number
employees:
type: string
example: 10-50
description: Estimated number of employees (range based)
enum:
- 1-10
- 10-50
- 50-100
- 100-250
- 250-500
- 500-1000
- 1000-5000
- 5000-10000
- 10000-
exchange:
description: Exchange the ticker of the organization is traded on
$ref: '#/components/schemas/Exchange'
originalRef: Exchange
facebookUrl:
type: string
description: Absolute URL to the company's Facebook page
figi:
type: string
example: BBG001S5TD05
description: Financial Instrument Global Identifier (FIGI)
fundingTotal:
type: integer
format: int64
example: 12000000
description: Estimate of total funding the organization has received
id:
type: string
example: b00001aaa
description: ID (BvId) of the organization
isin:
type: string
example: US5949181045
description: International Securities Identification Number (ISIN)
lastFundingAmount:
type: integer
format: int64
example: 12000000
description: Estimate of the funding received in its last funding year
lastFundingYear:
type: integer
format: int32
example: 2014
description: Last year the organization received funding
linkedInUrl:
type: string
description: Absolute URL to the company's LinkedIn page
mergedIntoId:
type: string
monitored:
type: string
example: active
description: Indicates whether the orgnaization is being actively monitored.
enum:
- inactive
- pending
- active
naicsIndustry:
description: NAICS Industry the organization operates in
$ref: '#/components/schemas/IndustrySummary'
originalRef: IndustrySummary
name:
type: string
example: ACME Corp
description: Name of the organization
parent:
description: Parent organization (if it exists)
$ref: '#/components/schemas/OrganizationSummaryLegacy'
originalRef: OrganizationSummaryLegacy
revenue:
type: string
example: 50-100
description: Estimated annual revenue in millions (range based)
enum:
- 0-1
- 1-10
- 10-50
- 50-100
- 100-500
- 500-1000
- 1000-10000
- 10000-
searchTerms:
type: array
description: List of search terms for the organization
items:
$ref: '#/components/schemas/SearchTerm'
originalRef: SearchTerm
searchTermsAsSortedStrings:
type: array
items:
type: string
sedol:
type: string
example: 2588173
description: Stock Exchange Daily Official List (SEDOL)
sicIndustry:
description: SIC Industry the organization operates in
$ref: '#/components/schemas/IndustrySummary'
originalRef: IndustrySummary
state:
type: string
example: CALIFORNIA
description: State the organization is headquartered in
ticker:
type: string
example: MSFT
description: Stock ticker of the organization (if traded)
tickerExchange:
type: string
example: NAS
description: Stock ticker exhange
tickerRegion:
type: string
example: US
description: Stock ticker region
twitterUrl:
type: string
description: Absolute URL to the company's Twitter page
ultimateParent:
description: Ultimate parent organization (if it is not the same as the parent organization)
$ref: '#/components/schemas/OrganizationSummaryLegacy'
originalRef: OrganizationSummaryLegacy
yearClosed:
type: integer
format: int32
example: 2015
description: Year the organization went out of business if no longer in business
yearFounded:
type: integer
format: int32
example: 1968
description: Year the organization was founded
title: OrganizationDetails
description: Detailed information about an organization.
PotentialOrganizationMatchLegacy:
type: object
properties:
hits:
type: array
example:
- Name
- DomainName
description: List of the properties in the input specification that this company has matches for
items:
type: string
org:
description: Summary information for this potential match
$ref: '#/components/schemas/OrganizationSummaryLegacy'
originalRef: OrganizationSummaryLegacy
title: PotentialOrganizationMatchLegacy
description: One potential matching organization.
SingleOrganizationMatchingResultLegacy:
type: object
properties:
candidates:
type: array
description: List of candidate matches
items:
$ref: '#/components/schemas/PotentialOrganizationMatchLegacy'
originalRef: PotentialOrganizationMatchLegacy
spec:
type: object
description: Input organization specification used to find candidates
additionalProperties:
type: array
items:
type: object
title: SingleOrganizationMatchingResultLegacy
description: Results of trying to match an organization using the input specification.
ReasonResponse:
type: object
properties:
reason:
type: string
example: Could not locate subject.
description: Text reason for the failure (if not successful)
reasonSupport:
type: object
example: Longer description of the missing subject.
description: Additional information about the failure (if not successful)
response:
type: object
description: Response payload
success:
type: boolean
example: true
description: Indicates whether the call was successful or not
title: ReasonResponse
description: A response used to explain a failure or issue with the request.
Exchange:
type: object
properties:
alias:
type: string
example: NYSE
description: More commonly used acronym for the exchange
mic:
type: string
example: XNYS
description: Market Identifier Code (MIC). Deprecated in favor of the market symbol.
symbol:
type: string
example: NYQ
description: Exchange symbol
title: Exchange
securitySchemes:
API_key:
type: apiKey
name: X-BV-APIKEY
in: header
BasicAuth:
type: http
scheme: basic
OAuth:
type: oauth2
flows:
clientCredentials:
scopes:
Global: Includes all Bitvore APIs
tokenUrl: https://api.bitvore.com/oauth/accesstoken