Bazaarvoice Questions API
The Questions API from Bazaarvoice — 4 operation(s) for questions.
The Questions API from Bazaarvoice — 4 operation(s) for questions.
openapi: 3.0.0
info:
title: Bazaarvoice Content Search Answers Questions API
description: Bazaarvoice Developer Space V2.0 Content Search API. Provides programmatic search and retrieval of user-generated content (UGC) - Reviews, Questions, Answers, Contributor profiles - plus product catalog lookahead search and structured data (JSON-LD/Microdata) for products. Assembled by API Evangelist from the per-operation OpenAPI definitions published on developers.bazaarvoice.com reference pages.
version: '2.0'
contact:
name: Bazaarvoice Developer Support
url: https://developers.bazaarvoice.com/support
servers:
- url: https://content-search.eu-west-1a.bosun.qa.bazaarvoice.com/
description: QA | Content Search
- url: https://seo-stg.bazaarvoice.com/structured-data/v1
description: Staging Server
- url: https://seo.bazaarvoice.com/structured-data/v1
description: Production Server
tags:
- name: Questions
paths:
/questions/{legacyInternalId}:
get:
tags:
- Questions
summary: Get question
operationId: getQuestionById
parameters:
- name: clientId
in: header
description: Question Client ID
required: true
schema:
type: string
- name: from
in: header
description: Offset for answers
required: false
schema:
type: integer
- name: size
in: header
description: Number of answers to return
required: false
schema:
type: integer
- name: legacyInternalId
in: path
description: Question's legacy internal id
required: true
schema:
type: string
- name: questionClientId
in: query
description: client that owns the question, when not the client specified by the clientId header
required: false
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/SingleQuestionDocument'
'400':
description: Missing clientId header
'404':
description: Question not found
'500':
description: Unexpected internal error
/{clientId}/questions/{legacyInternalId}:
get:
tags:
- Questions
summary: Get question
operationId: getQuestionByIdAndClientId
parameters:
- name: clientId
in: path
description: Client ID
required: true
schema:
type: string
- name: legacyInternalId
in: path
description: Question's legacy internal id
required: true
schema:
type: string
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/SingleQuestionDocument'
'404':
description: Question not found
'500':
description: Unexpected internal error
/questions:
post:
tags:
- Questions
summary: searchQuestions
operationId: searchQuestionsUsingPOST
parameters:
- name: clientId
in: header
description: Client ID
required: true
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QuestionQuery'
description: Page, Filter & Sort
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/QuestionQueryResponse'
'400':
description: Invalid request body, or missing clientId header
'500':
description: Unexpected internal error
/{clientId}/questions:
post:
tags:
- Questions
summary: searchQuestions
operationId: searchQuestionsUsingPOSTAndClientId
parameters:
- name: clientId
in: path
description: Client ID
required: true
schema:
type: string
- name: X-Correlation-ID
in: header
description: Correlation ID
required: false
schema:
type: string
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/QuestionQuery'
description: Page, Filter & Sort
responses:
'200':
description: OK
content:
'*/*':
schema:
$ref: '#/components/schemas/QuestionQueryResponse'
'400':
description: Invalid request body
'500':
description: Unexpected internal error
components:
schemas:
QuestionQuery:
type: object
properties:
limit:
type: integer
format: int32
offset:
type: integer
format: int32
sort:
$ref: '#/components/schemas/QuestionSort'
fields:
type: array
items:
type: string
filters:
$ref: '#/components/schemas/QuestionFilters'
PrrUpdate:
type: object
properties:
hash:
type: string
timestamp:
type: string
Answer:
type: object
properties:
id:
type: string
version:
type: integer
format: int32
firstUpdateAt:
type: string
lastUpdateAt:
type: string
lastMutateAt:
type: string
client:
type: string
legacyInternalId:
type: integer
format: int32
moderationContentID:
type: string
moderationVersionID:
type: string
featured:
type: boolean
contributorNickname:
type: string
sendEmailAlertWhenPublished:
type: boolean
displayAsAnonymous:
type: boolean
text:
type: string
campaignId:
type: string
contentOriginId:
type: string
submissionTime:
type: string
firstPublishTime:
type: string
lastPublishTime:
type: string
displayLocale:
type: string
status:
type: string
contentCodes:
type: array
items:
type: string
submissionId:
type: string
externalAnswerId:
type: string
externalProductId:
type: string
cdvOrder:
type: array
items:
type: string
tagOrder:
type: array
items:
type: string
photos:
type: array
items:
$ref: '#/components/schemas/Photo'
videos:
type: array
items:
$ref: '#/components/schemas/Video'
cdvProperties:
type: object
additionalProperties:
type: string
productReferences:
type: array
items:
$ref: '#/components/schemas/Coordinate'
tagProperties:
type: object
additionalProperties:
type: array
items:
type: string
customProperties:
type: object
additionalProperties:
type: string
contributor:
$ref: '#/components/schemas/Coordinate'
question:
$ref: '#/components/schemas/Coordinate'
submissionInstant:
type: integer
format: int32
statusGroup:
type: string
TimeRange:
type: object
properties:
from:
type: string
to:
type: string
QuestionContributor:
type: object
properties:
id:
type: string
table:
type: string
version:
type: integer
format: int32
sourceVersion:
type: integer
format: int32
deleted:
type: boolean
signature:
type: string
firstUpdateAt:
type: string
lastUpdateAt:
type: string
lastMutateAt:
type: string
type:
type: string
legacyInternalId:
type: integer
format: int32
clearTextExternalId:
type: string
anonymous:
type: boolean
rank:
type: string
merit:
type: string
affiliation:
type: string
contributorBadgeEnabled:
type: boolean
contributorLocation:
type: string
campaignId:
type: string
contentOriginId:
type: string
submissionTime:
type: string
firstPublishTime:
type: string
lastPublishTime:
type: string
displayCode:
type: string
displayLocale:
type: string
status:
type: string
contentCodes:
type: array
items:
type: string
submissionId:
type: string
displayName:
type: string
sourceName:
type: string
agreedToTermsAndConditions:
type: boolean
cdvOrder:
type: array
items:
type: string
ratingOrder:
type: array
items:
type: string
photos:
type: array
items:
$ref: '#/components/schemas/Photo'
avatarPhoto:
$ref: '#/components/schemas/Photo'
productReferences:
type: array
items:
$ref: '#/components/schemas/Coordinate'
videos:
type: array
items:
$ref: '#/components/schemas/Video'
displayLastUpdate:
$ref: '#/components/schemas/PrrUpdate'
customProperties:
type: object
additionalProperties:
type: string
cdvProperties:
type: object
additionalProperties:
type: string
ratingProperties:
type: object
additionalProperties:
type: string
externalId:
type: string
AllAnswers:
type: object
properties:
answer:
$ref: '#/components/schemas/Answer'
contributor:
$ref: '#/components/schemas/QuestionContributor'
statistics:
$ref: '#/components/schemas/Statistics'
QuestionFilters:
type: object
properties:
questionId:
type: array
items:
type: string
submissionTime:
$ref: '#/components/schemas/TimeRange'
moderationTime:
$ref: '#/components/schemas/TimeRange'
brandId:
type: array
items:
type: string
categoryId:
type: array
items:
type: string
productId:
type: array
items:
type: string
activeProduct:
type: boolean
displayLocale:
type: array
items:
type: string
contentCodes:
type: array
items:
type: string
questionModerationStatusGroup:
type: array
items:
type: string
questionModerationStatus:
type: array
items:
type: string
answerModerationStatusGroup:
type: array
items:
type: string
answerModerationStatus:
type: array
items:
type: string
globalSearch:
type: string
contributorExternalId:
type: array
items:
type: string
contributorDisplayName:
type: array
items:
type: string
contributorRank:
type: array
items:
type: string
answerLegacyInternalId:
type: array
items:
type: string
answerContentCodes:
type: array
items:
type: string
answerContributorExternalId:
type: array
items:
type: string
answerContributorNickname:
type: array
items:
type: string
answerCampaignSource:
type: array
items:
type: string
withApprovedAnswers:
type: boolean
withRejectedAnswers:
type: boolean
withPendingAnswers:
type: boolean
withExpiredAnswers:
type: boolean
questionHasPhotos:
type: boolean
questionHasVideos:
type: boolean
answerHasPhotos:
type: boolean
answerHasVideos:
type: boolean
withAnswers:
type: boolean
SingleQuestionDocument:
type: object
properties:
question:
$ref: '#/components/schemas/Question'
contributor:
$ref: '#/components/schemas/QuestionContributor'
product:
$ref: '#/components/schemas/Product'
statistics:
$ref: '#/components/schemas/Statistics'
answers:
type: array
items:
$ref: '#/components/schemas/AllAnswers'
totalQueriedAnswers:
type: integer
format: int32
QuestionSort:
type: object
properties:
field:
type: string
direction:
type: string
Question:
type: object
properties:
id:
type: string
version:
type: integer
format: int32
firstUpdateAt:
type: string
lastUpdateAt:
type: string
lastMutateAt:
type: string
client:
type: string
legacyInternalId:
type: integer
format: int32
moderationContentID:
type: string
moderationVersionID:
type: string
featured:
type: boolean
contributorNickname:
type: string
sendEmailAlertWhenPublished:
type: boolean
sendEmailAlertWhenAnswered:
type: boolean
contributorLocation:
type: string
displayAsAnonymous:
type: boolean
questionSummary:
type: string
questionDetails:
type: string
campaignId:
type: string
contentOriginId:
type: string
submissionTime:
type: string
firstPublishTime:
type: string
lastPublishTime:
type: string
displayLocale:
type: string
status:
type: string
contentCodes:
type: array
items:
type: string
submissionId:
type: string
externalQuestionId:
type: string
externalProductId:
type: string
photos:
type: array
items:
$ref: '#/components/schemas/Photo'
avatarPhoto:
$ref: '#/components/schemas/Photo'
videos:
type: array
items:
$ref: '#/components/schemas/Video'
cdvOrder:
type: array
items:
type: string
cdvProperties:
type: object
additionalProperties:
type: string
tagOrder:
type: array
items:
type: string
tagProperties:
type: object
additionalProperties:
type: array
items:
type: string
customProperties:
type: object
additionalProperties:
type: string
productReferences:
type: array
items:
$ref: '#/components/schemas/Coordinate'
bestAnswer:
$ref: '#/components/schemas/Coordinate'
displayLastUpdate:
$ref: '#/components/schemas/PrrUpdate'
contributor:
$ref: '#/components/schemas/Coordinate'
about:
$ref: '#/components/schemas/Coordinate'
statusGroup:
type: string
Coordinate:
type: object
properties:
table:
type: string
id:
type: string
QuestionQueryResponse:
type: object
properties:
limit:
type: integer
format: int32
offset:
type: integer
format: int32
totalResults:
type: integer
format: int32
results:
type: array
items:
$ref: '#/components/schemas/Question'
Statistics:
type: object
properties:
positiveFeedbackCount:
type: integer
format: int32
negativeFeedbackCount:
type: integer
format: int32
helpfulnessScore:
type: integer
format: int32
characterCount:
type: integer
format: int32
productReferenceCount:
type: integer
format: int32
inappropriateFeedbackCount:
type: integer
format: int32
numPhotos:
type: integer
format: int32
numVideos:
type: integer
format: int32
hasPhotos:
type: boolean
hasVideos:
type: boolean
Product:
type: object
properties:
id:
type: string
name:
type: string
active:
type: boolean
description:
type: string
imageUrl:
type: string
brandId:
type: string
brandName:
type: string
categoryId:
type: string
categoryName:
type: string
productPageUrl:
type: string
Photo:
type: object
properties:
caption:
type: string
mediumImageId:
type: string
thumbnailImageId:
type: string
url:
type: string
thumbnailUrl:
type: string
Video:
type: object
properties:
legacyInternalId:
type: string
rawUrlInput:
type: string
caption:
type: string
videoHost:
type: string
videoId:
type: string
uploadStatus:
type: string
thumbnailUrl:
type: string
securitySchemes:
Bv-Passkey:
type: apiKey
in: header
name: Bv-Passkey
description: GEO API key for authentication