Q&A Video Maker GPT by AnswerStage · Ações GPT
AnswerStage REST API
AnswerStage Questions, Notes, Logos, Themes - Actions for ChatGPT
GET /questionslistQuestionsList questions, or retrieve one or more specific questions.
POST /questionscreateQuestionSave a new question
GET /notes/{qcode}getNotesRetrieve any saved talking points, speaking outline, or script associated with a question as specified by its qcode
POST /notessaveNotesSave the talking points, speaking outline, or script associated with a question as specified by its qcode
GET /logoslistLogosList potential logos to include in the branding of the video.
POST /logosselectLogoSelect a logo image to include in the branded AnswerStage Q&A video.
POST /gpt-logosuploadLogoUpload or create a logo image for your video. JPG and PNG are supported logo file types.
POST /themesselectThemeSelect the theme to use in the production of the branded AnswerStage Q&A video.
GET /userStatususerStatusShows which Logo and which Theme have been selected by the user. This method MUST be called by the GPT BEFORE prompting the user for Logo or Theme, so the user can be asked to decide whether to keep what they have selected or pick something different.
PATCH /accounts/mesetUserInfoSet or update the name and email address for the user's AnswerStage account.
Esquema API original
{
"openapi": "3.1.0",
"info": {
"title": "AnswerStage REST API",
"version": "V1-0007",
"description": "AnswerStage Questions, Notes, Logos, Themes - Actions for ChatGPT",
"contact": {
"email": "service@answerstage.com"
}
},
"servers": [
{
"url": "https://answerstage.com/v1"
}
],
"paths": {
"/questions": {
"get": {
"description": "List questions, or retrieve one or more specific questions.",
"operationId": "listQuestions",
"x-openai-isConsequential": false,
"parameters": [
{
"name": "qcodes",
"in": "query",
"description": "An optional comma-delimited list of qcodes for the questions to fetch",
"required": false,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "200 response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Question"
}
}
}
}
}
},
"security": [
{
"defaultApiKey": []
}
]
},
"post": {
"description": "Save a new question",
"operationId": "createQuestion",
"x-openai-isConsequential": false,
"requestBody": {
"description": "Question to be saved",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The text of the question as it will be displayed to the contributor and in any video produced using a response to the question.",
"examples": [
"What are some of the advantages of electric vehicles?"
]
}
}
}
}
}
},
"responses": {
"200": {
"description": "200 response",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/Question"
}
}
}
}
}
},
"security": [
{
"defaultApiKey": []
}
]
}
},
"/notes/{qcode}": {
"get": {
"description": "Retrieve any saved talking points, speaking outline, or script associated with a question as specified by its qcode",
"operationId": "getNotes",
"x-openai-isConsequential": false,
"parameters": [
{
"name": "qcode",
"in": "path",
"required": true,
"schema": {
"type": "string",
"examples": [
"ABC123"
]
}
}
],
"responses": {
"200": {
"description": "200 response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"version": {
"const": 2
},
"action": {
"const": "get"
},
"qcode": {
"type": "string",
"description": "The qCode value for the question these notes apply to",
"examples": [
"abcdef"
]
},
"question": {
"type": "string",
"description": "The text of the question these notes apply to",
"examples": [
"How does your product help the ultimate consumer?"
]
},
"payload": {
"type": "object",
"properties": {
"talkingPoints": {
"type": "string",
"description": "The speaking notes suggesting topics to guide the responder in crafting a response to the question"
},
"outline": {
"type": "string",
"description": "The outline of the points a responder should make, generally organized in the order the speaker will cover them"
},
"speech": {
"type": "string",
"description": "The full script that a responder should read aloud when responding"
}
},
"required": [
"talkingPoints",
"outline",
"speech"
]
}
},
"required": [
"version",
"action",
"qcode",
"question",
"payload"
]
}
}
}
}
},
"security": [
{
"defaultApiKey": []
}
]
}
},
"/notes": {
"post": {
"description": "Save the talking points, speaking outline, or script associated with a question as specified by its qcode",
"operationId": "saveNotes",
"x-openai-isConsequential": false,
"requestBody": {
"description": "Speaking notes to be saved.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"version": {
"const": 2
},
"action": {
"const": "save"
},
"qcode": {
"type": "string",
"description": "The qCode value for the question these notes apply to",
"examples": [
"abcdef"
]
},
"question": {
"type": "string",
"description": "The text of the question these notes apply to",
"examples": [
"How does your product help the ultimate consumer?"
]
},
"payload": {
"type": "object",
"properties": {
"talkingPoints": {
"type": "string",
"description": "The speaking notes suggesting topics to guide the responder in crafting a response to the question"
},
"outline": {
"type": "string",
"description": "The outline of the points a responder should make, generally organized in the order the speaker will cover them"
},
"speech": {
"type": "string",
"description": "The full script that a responder should read aloud when responding"
}
},
"required": [
"talkingPoints",
"outline",
"speech"
]
}
},
"required": [
"version",
"action",
"qcode",
"question",
"payload"
]
}
}
}
},
"responses": {
"200": {
"description": "200 response",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"status": {
"type": "string"
}
}
}
}
}
}
},
"security": [
{
"defaultApiKey": []
}
]
}
},
"/logos": {
"get": {
"description": "List potential logos to include in the branding of the video.",
"operationId": "listLogos",
"x-openai-isConsequential": false,
"parameters": [
{
"name": "domainName",
"in": "query",
"description": "A domain name to use when identifying potential logos. The user should be prompted for a domain name and then this API should be called. The user is then presented with the images of the returned potential logos and asked to choose one for their video.",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "Each item in the prospectiveLogoURLs array is the URL of a logo image. That image should be displayed to the user.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"NoteForAssistant": {
"type": "string",
"description": "Contains contextual text intended to help interpret the other returned data.."
},
"prospectiveLogoURLs": {
"type": "array",
"description": "An array of prospective logo URLs.",
"items": {
"type": "string"
}
}
}
}
}
}
}
},
"security": [
{
"defaultApiKey": []
}
]
},
"post": {
"description": "Select a logo image to include in the branded AnswerStage Q&A video.",
"operationId": "selectLogo",
"x-openai-isConsequential": false,
"requestBody": {
"description": "Send the URL of the logo selected by the URL from the list created by the GET request. Can also be used if the user types in logo URL.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"logoURL": {
"type": "string",
"description": "The full URL of the logo image selected by the user, including https and the domain name.",
"examples": [
"https://images.example.com/myLogo.png"
]
}
},
"required": [
"logoURL"
]
}
}
}
},
"responses": {
"200": {
"description": "200 response",
"content": {}
}
},
"security": [
{
"defaultApiKey": []
}
]
}
},
"/gpt-logos": {
"post": {
"description": "Upload or create a logo image for your video. JPG and PNG are supported logo file types.",
"operationId": "uploadLogo",
"x-openai-isConsequential": false,
"requestBody": {
"description": "Send the user-uploaded or DALL-E-created logo image.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"openaiFileIdRefs": {
"type": "array",
"description": "Array that contains one item that references a single logo image file that was either uploaded by the user or generated by DALL-E.",
"items": {
"type": "string"
}
}
},
"required": [
"openaiFileIdRefs"
]
}
}
}
},
"responses": {
"200": {
"description": "200 response",
"content": {}
}
},
"security": [
{
"defaultApiKey": []
}
]
}
},
"/themes": {
"post": {
"description": "Select the theme to use in the production of the branded AnswerStage Q&A video.",
"operationId": "selectTheme",
"x-openai-isConsequential": false,
"requestBody": {
"description": "Send the themeId (as returned from the GET request) of the user-selected theme in the body of the POST request.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"themeId": {
"type": "string",
"description": "The themeId (from the themeId returned in the GET request listing the themes) for the theme selected by the user.",
"examples": [
"Blue-Skyline"
]
}
}
}
}
}
},
"responses": {
"200": {
"description": "200 response",
"content": {}
}
},
"security": [
{
"defaultApiKey": []
}
]
}
},
"/userStatus": {
"get": {
"description": "Shows which Logo and which Theme have been selected by the user. This method MUST be called by the GPT BEFORE prompting the user for Logo or Theme, so the user can be asked to decide whether to keep what they have selected or pick something different.",
"operationId": "userStatus",
"x-openai-isConsequential": false,
"parameters": [],
"responses": {
"200": {
"description": "Contains information about the Logo and Theme selected by the user. Properties will be empty if user has not selected the item. Please store the response after calling so it can be used to inform the prompting for Logo and Theme (including displaying the images referenced by selectedLogoURL and themeThumbnailURL).",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"NoteForAssistant": {
"type": "string",
"description": "Contains contextual text intended to help the GPT interpret the other returned data."
},
"selectedTheme": {
"type": "object",
"properties": {
"themeId": {
"type": "string",
"description": "If user has selected a Theme, contains the unique internal ID for the Theme. Otherwise, it is empty."
},
"themeName": {
"type": "string",
"description": "If user has selected a Theme, contains Name for this Theme. Otherwise, it is empty."
},
"themeThumbnailURL": {
"type": "string",
"description": "If user has selected a Theme, contains URL of the thumbnail image for this theme. Otherwise, it is empty. This image should be displayed to the user to help them decide whether to change the selected Theme."
}
}
},
"selectedLogoURL": {
"type": "string",
"description": "If the user has already selected a Logo, this contains the URL of that Logo. Otherwise, it is empty. This image should be displayed to the user to help them decide whether to change the selected Logo."
},
"userInfo": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The user's name, to be used for display when inviting others to record videos. The name is an attribute of the user's AnswerStage account"
},
"email": {
"type": "string",
"description": "The email address associated with the user's AnswerStage account. AnswerStage will use this address to notify the user when video production has completed, and the user will need to use this address to log in to the AnswerStage app to use the video production tools"
}
}
}
}
}
}
}
}
},
"security": [
{
"defaultApiKey": []
}
]
}
},
"/accounts/me": {
"patch": {
"description": "Set or update the name and email address for the user's AnswerStage account.",
"operationId": "setUserInfo",
"x-openai-isConsequential": false,
"requestBody": {
"description": "The user's name and email address.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"nickname": {
"type": "string",
"description": "The user's (or organization's) name to be associated with the user's AnswerStage account. It is used for display in invitations to respond.",
"examples": [
"John Doe",
"Acme Inc."
]
},
"emailAddress": {
"type": "string",
"description": "The email address to be associated with the user's AnswerStage account. It is used to send notifications when video production is complete, and it is required if the user wishes to log into the AnswerStage app to review completed videos or use the AnswerStage production tools",
"examples": [
"JohnDoe@example.com"
]
},
"accountType": {
"type": "string",
"description": "This is a required field and it should always be set to 'new'. The existence or value of this field should be hidden from the user"
}
},
"required": [
"nickname",
"emailAddress",
"accountType"
]
}
}
}
},
"responses": {
"200": {
"description": "200 response",
"content": {}
}
},
"security": [
{
"defaultApiKey": []
}
]
}
}
},
"components": {
"schemas": {
"Question": {
"title": "Question",
"allOf": [
{
"type": "object",
"properties": {
"qCode": {
"type": "string",
"description": "The identifier for a question. Omit when creating a new Question. Readonly.",
"examples": [
"6X6CED"
]
},
"dateAdded": {
"type": "string",
"description": "Date in ISO format. Readonly.",
"examples": [
"2023-05-26T17:48:08.534Z"
]
}
}
},
{
"$ref": "#/components/schemas/BaseQuestion"
}
]
},
"BaseQuestion": {
"title": "NewQuestion",
"allOf": [
{
"type": "object",
"properties": {
"text": {
"type": "string",
"description": "The text of the question as it will be displayed to the contributor and in any video produced using a response to the question.",
"examples": [
"What are some of the advantages of electric vehicles?"
]
},
"link": {
"type": "string",
"description": "The URL to the AnswerStage App landing page for recording a response to this question.",
"examples": [
"https://answerstage.app/ABC123"
]
}
}
},
{
"$ref": "#/components/schemas/QuestionProperties"
}
]
},
"QuestionProperties": {
"description": "Question and Interview Properties",
"type": "object",
"properties": {
"maxAnswerSeconds": {
"type": "integer",
"description": "Maximum response length in seconds.",
"examples": [
120
]
},
"instructions": {
"type": "string",
"description": "Optional instructions to display to contributor.",
"examples": [
"Please speak clearly and look at the camera."
]
},
"aiEnabled": {
"type": "boolean",
"description": "Whether or not to allow contributor to use AI-generated talking points."
},
"allowVoiceOnly": {
"type": "boolean",
"description": "Whether or not to allow contributor to record a non-video response.",
"exampled": [
false
]
},
"dueDate": {
"type": "string",
"description": "Date to display to contributors to urge them to respond in a timely manner.",
"examples": [
"2024-03-17T00:00:00.000Z"
]
},
"fields": {
"$ref": "#/components/schemas/ProfileFields"
}
}
},
"ProfileFields": {
"description": "Profile fields requested from or supplied by Contributor",
"type": "array",
"items": {
"type": "object",
"properties": {
"var": {
"type": "string",
"description": "Field identifier",
"examples": [
"name"
],
"enum": [
"name",
"emailAddress",
"title",
"company",
"custom",
"photo"
]
},
"position": {
"type": "integer",
"description": "Ordinal position for display of this field",
"examples": [
1
]
},
"required": {
"type": "boolean",
"description": "Whether or not Contributor must provide a value for this field",
"examples": [
true
]
},
"private": {
"type": "boolean",
"description": "Private fields will not appear in produced videos. For example, specify emailAddress as a private field so that the value can be collected and returned to the Producer without its appearing in a video.",
"examples": [
false
]
},
"label": {
"type": "string",
"description": "Text used when displaying this field. Value may be readonly.",
"examples": [
"Display Name"
]
},
"customLabel": {
"type": "boolean",
"description": "Whether or not this field supports a custom value for the label.",
"examples": [
false
]
}
},
"required": [
"var"
]
}
}
},
"securitySchemes": {
"defaultApiKey": {
"type": "apiKey",
"description": "The API key provided"
}
}
}
}