openapi: 3.1.0 info: title: Salesforce Einstein GPT API description: >- Generative AI API powered by large language model integration for creating personalized content across Salesforce. Einstein GPT (now part of Einstein Copilot and Einstein Generative AI) provides endpoints for text generation, prompt management, and AI-powered content creation. version: 58.0.0 contact: name: Salesforce Developer Support url: https://developer.salesforce.com/ license: name: Salesforce Master Subscription Agreement url: https://www.salesforce.com/company/legal/agreements/ termsOfService: https://www.salesforce.com/company/legal/agreements/ servers: - url: https://{instance}.salesforce.com/services/data/v58.0 description: Salesforce Instance variables: instance: default: login description: Your Salesforce instance domain. security: - oauth2: [] tags: - name: Feedback description: Provide feedback on generated content - name: Generations description: Generate AI-powered content - name: Models description: Manage and list available generative AI models - name: Prompt Templates description: Manage prompt templates for content generation paths: /einstein/llm/prompt/generations: post: operationId: generateFromPrompt summary: Salesforce Einstein Generate content from a prompt description: >- Generates AI content using a prompt template. Provide a prompt template ID and field values to generate personalized content. tags: - Generations requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerationRequest' responses: '200': description: Successful generation response. content: application/json: schema: $ref: '#/components/schemas/GenerationResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /einstein/llm/prompt/completions: post: operationId: completePrompt summary: Salesforce Einstein Complete a prompt description: >- Sends a raw prompt to the configured LLM and returns the completion. This provides direct access to the language model without using a template. tags: - Generations requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CompletionRequest' responses: '200': description: Successful completion response. content: application/json: schema: $ref: '#/components/schemas/GenerationResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /einstein/llm/prompt/chat/generations: post: operationId: chatGeneration summary: Salesforce Einstein Generate a chat response description: >- Generates a conversational AI response using a chat-based prompt with message history context. tags: - Generations requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ChatGenerationRequest' responses: '200': description: Successful chat generation response. content: application/json: schema: $ref: '#/components/schemas/GenerationResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /einstein/llm/prompt/templates: get: operationId: listPromptTemplates summary: Salesforce Einstein List prompt templates description: Returns a list of all prompt templates in the org. tags: - Prompt Templates parameters: - name: pageSize in: query description: Number of templates to return per page. schema: type: integer default: 25 - name: page in: query description: Page token for pagination. schema: type: string responses: '200': description: Successful response with prompt templates. content: application/json: schema: $ref: '#/components/schemas/PromptTemplateCollection' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createPromptTemplate summary: Salesforce Einstein Create a prompt template description: Creates a new prompt template for content generation. tags: - Prompt Templates requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PromptTemplateInput' responses: '201': description: Prompt template created successfully. content: application/json: schema: $ref: '#/components/schemas/PromptTemplate' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' /einstein/llm/prompt/templates/{templateId}: get: operationId: getPromptTemplate summary: Salesforce Einstein Get a prompt template description: Returns details of a specific prompt template. tags: - Prompt Templates parameters: - $ref: '#/components/parameters/TemplateId' responses: '200': description: Successful response with template details. content: application/json: schema: $ref: '#/components/schemas/PromptTemplate' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' patch: operationId: updatePromptTemplate summary: Salesforce Einstein Update a prompt template description: Updates an existing prompt template. tags: - Prompt Templates parameters: - $ref: '#/components/parameters/TemplateId' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PromptTemplateInput' responses: '200': description: Template updated successfully. content: application/json: schema: $ref: '#/components/schemas/PromptTemplate' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' delete: operationId: deletePromptTemplate summary: Salesforce Einstein Delete a prompt template description: Deletes a prompt template. tags: - Prompt Templates parameters: - $ref: '#/components/parameters/TemplateId' responses: '204': description: Template deleted successfully. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /einstein/llm/models: get: operationId: listModels summary: Salesforce Einstein List available models description: >- Returns a list of available generative AI models that can be used for content generation. tags: - Models responses: '200': description: Successful response with available models. content: application/json: schema: $ref: '#/components/schemas/ModelCollection' '401': $ref: '#/components/responses/Unauthorized' /einstein/llm/models/{modelId}: get: operationId: getModel summary: Salesforce Einstein Get model details description: Returns details of a specific generative AI model. tags: - Models parameters: - $ref: '#/components/parameters/ModelId' responses: '200': description: Successful response with model details. content: application/json: schema: $ref: '#/components/schemas/GenerativeModel' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /einstein/llm/feedback: post: operationId: submitFeedback summary: Salesforce Einstein Submit feedback on generated content description: >- Submits feedback on AI-generated content to improve future generation quality. tags: - Feedback requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FeedbackInput' responses: '201': description: Feedback submitted successfully. content: application/json: schema: $ref: '#/components/schemas/FeedbackResponse' '400': $ref: '#/components/responses/BadRequest' '401': $ref: '#/components/responses/Unauthorized' components: securitySchemes: oauth2: type: oauth2 description: Salesforce OAuth 2.0 authentication. flows: authorizationCode: authorizationUrl: https://login.salesforce.com/services/oauth2/authorize tokenUrl: https://login.salesforce.com/services/oauth2/token scopes: api: Full access to Salesforce APIs einstein_gpt: Access to Einstein Generative AI features parameters: TemplateId: name: templateId in: path required: true description: Unique identifier for the prompt template. schema: type: string ModelId: name: modelId in: path required: true description: Unique identifier for the generative AI model. schema: type: string responses: BadRequest: description: Bad request. content: application/json: schema: $ref: '#/components/schemas/Error' Unauthorized: description: Unauthorized. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: Resource not found. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: GenerationRequest: type: object properties: promptTemplateDevName: type: string description: Developer name of the prompt template to use. inputParams: type: object description: Key-value pairs of input parameters for the template. additionalProperties: type: string isPreview: type: boolean description: If true, returns the resolved prompt without calling the LLM. default: false additionalConfig: type: object properties: maxTokens: type: integer description: Maximum number of tokens in the response. temperature: type: number description: Sampling temperature (0.0 to 2.0). applicationName: type: string description: Application context for the generation. required: - promptTemplateDevName - inputParams CompletionRequest: type: object properties: prompt: type: string description: The prompt text to complete. modelId: type: string description: ID of the model to use. additionalConfig: type: object properties: maxTokens: type: integer temperature: type: number topP: type: number stopSequences: type: array items: type: string required: - prompt ChatGenerationRequest: type: object properties: promptTemplateDevName: type: string description: Developer name of the chat prompt template. inputParams: type: object additionalProperties: type: string messages: type: array description: Conversation history for context. items: type: object properties: role: type: string enum: - user - assistant - system content: type: string additionalConfig: type: object properties: maxTokens: type: integer temperature: type: number required: - messages GenerationResponse: type: object properties: id: type: string description: Unique generation identifier. generationId: type: string description: ID of this generation for feedback purposes. prompt: type: string description: The resolved prompt that was sent to the model. generation: type: object properties: id: type: string generatedText: type: string description: The generated content. contentQuality: type: object properties: scanToxicity: type: object properties: isDetected: type: boolean categories: type: array items: type: object properties: categoryName: type: string score: type: number parameters: type: object properties: finish_reason: type: string token_usage: type: object properties: prompt_tokens: type: integer completion_tokens: type: integer total_tokens: type: integer PromptTemplate: type: object properties: id: type: string developerName: type: string masterLabel: type: string description: type: string promptText: type: string description: The template text with merge field placeholders. type: type: string enum: - salesGeneration - fieldGeneration - recordSummary - chatGeneration - flexibleGeneration description: Type of prompt template. relatedEntity: type: string description: Salesforce object the template relates to. activeVersionId: type: string status: type: string enum: - Active - Draft - Inactive createdDate: type: string format: date-time lastModifiedDate: type: string format: date-time PromptTemplateInput: type: object properties: developerName: type: string masterLabel: type: string description: type: string promptText: type: string type: type: string enum: - salesGeneration - fieldGeneration - recordSummary - chatGeneration - flexibleGeneration relatedEntity: type: string required: - developerName - masterLabel - promptText - type PromptTemplateCollection: type: object properties: promptTemplates: type: array items: $ref: '#/components/schemas/PromptTemplate' totalSize: type: integer nextPageUrl: type: string GenerativeModel: type: object properties: id: type: string name: type: string label: type: string provider: type: string description: Model provider name. modelType: type: string enum: - gpt-4 - gpt-3.5-turbo - claude - custom description: Type of the model. capabilities: type: array items: type: string description: Capabilities supported by the model. status: type: string enum: - Active - Inactive ModelCollection: type: object properties: models: type: array items: $ref: '#/components/schemas/GenerativeModel' totalSize: type: integer FeedbackInput: type: object properties: generationId: type: string description: ID of the generation to provide feedback on. feedback: type: string enum: - THUMBS_UP - THUMBS_DOWN description: Feedback signal. feedbackText: type: string description: Optional text feedback. source: type: string description: Source of the feedback. required: - generationId - feedback FeedbackResponse: type: object properties: id: type: string generationId: type: string feedback: type: string createdDate: type: string format: date-time Error: type: object properties: message: type: string errorCode: type: string fields: type: array items: type: string