Relevance AI Services API

The services API from Relevance AI — 10 operation(s) for services.

Operations 10

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /slack/interactions Receive Slack approval interactions · SlackInteractionsWebhook #
Ask an LLM
“How are agent approvals clicked in Slack sent back to the platform?”
“Which endpoint receives Slack block kit button actions for approving or rejecting an agent?”
Tell an agent
Forward this Slack interaction payload for agent approval: {payload}.
Submit the Slack block kit rejection payload {payload}.
GET /organizations/{organization_id}/delivery_external_id Get the AWS delivery external ID for an org · GetDeliveryExternalId #
Ask an LLM
“What external ID do I put in my AWS IAM trust policy for cross-account delivery?”
“Can I get or create my organization's delivery external ID for AssumeRole?”
Tell an agent
Get the delivery external ID for organization {organization_id}.
Give me the AssumeRole external ID for organization {organization_id}.
GET /google-calendar/events List Google Calendar events in a time range · ListGoogleCalendarEvents #
Ask an LLM
“What's on my connected Google Calendar this week?”
“Can I list events from a specific Google calendar ID?”
Tell an agent
List Google Calendar events from {start_datetime} to {end_datetime}.
Show events on calendar {calendar_id} using account {oauth_account_id}.
GET /config-flags Get all config flags for the app · GetConfigFlags #
Ask an LLM
“Which feature flags are enabled for my signed-in app?”
“Does the config flags response include a hash for caching?”
Tell an agent
Get all config flags for my authenticated app.
Fetch the full feature flag set with its content hash.
GET /config-flags/public Get public config flags without signing in · GetPublicConfigFlags #
Ask an LLM
“Which config flags can be read before a user logs in?”
“Is there an unauthenticated way to fetch public feature flags?”
Tell an agent
Get the public config flags for the login page.
Fetch only public-namespace flags without auth.
GET /s/{short_url_key} Resolve a short URL · ShortUrlRedirect #
Ask an LLM
“Where does a Relevance AI short link point to?”
“Can I follow a short URL key to its original address?”
Tell an agent
Resolve short URL {short_url_key}.
Follow the short link {short_url_key} to its original URL.
POST /datasets/{dataset_id}/get_file_upload_urls Get upload URLs for files in a dataset · GetFileUploadUrlsForDataset #
Ask an LLM
“How do I upload files into a dataset?”
“Are files uploaded to a dataset deleted when the dataset is deleted?”
Tell an agent
Get upload URLs for files {files} in dataset {dataset_id}.
Create upload links in dataset {dataset_id} for {files}, keeping the file path in the URL.
POST /services/get_temporary_public_file_upload_url Get a public one-hour file upload URL · GetTemporaryPublicFileUploadUrl #
Ask an LLM
“Can someone without an account upload a file temporarily?”
“How long does a public temporary upload last?”
Tell an agent
Give anyone, even without an account, a public upload URL for a {extension} file.
Create an unauthenticated one-hour upload link.
POST /services/get_temporary_file_upload_url Get a temporary file upload URL · GetTemporaryFileUploadUrl #
Ask an LLM
“Where do I get a temporary upload URL for a file as a signed-in user?”
“Can I set the file name when requesting a temporary upload link?”
Tell an agent
Get a temporary upload URL for file {filename}.
As a signed-in user, get a temporary upload URL for {filename} with extension {extension}.
POST /bugs/submit Submit a bug report · SubmitBugReport #
Ask an LLM
“How do I report a bug I found in the app?”
“What details are required when submitting a bug report?”
Tell an agent
Submit a {category} bug report for project {project} in region {region}: {message}.
File a bug from source {source} saying {message} for project {project}, category {category}, region {region}.

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/relevance-ai:relevance-ai-services-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

relevance-ai-services-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: Relevance AI Endpoints
  title: Relevance AI Endpoints Services API
  version: latest
  contact:
    email: dev@tryrelevance.com
servers:
- url: /latest
security:
- AuthorizationHeader:
  - Authorization
tags:
- name: Services
paths:
  /slack/interactions:
    post:
      summary: SlackInteractionsWebhook
      tags:
      - Services
      description: 'Webhook for receiving Slack interactions including block kit actions for agent approval/rejection


        ### Required permissions

        > []'
      operationId: SlackInteractionsWebhook
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SlackInteractionsWebhookInput'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SlackInteractionsWebhookOutput'
  /organizations/{organization_id}/delivery_external_id:
    get:
      summary: GetDeliveryExternalId
      tags:
      - Services
      description: 'Get or create the delivery external ID for this organization. Used for AWS IAM trust policy setup with cross-account AssumeRole.


        ### Required permissions

        > [

        {

        "actions": [

        "organizations:write",

        "organizations:read"

        ],

        "organizations": [

        {

        "params": "organization_id"

        }

        ]

        }

        ]'
      operationId: GetDeliveryExternalId
      parameters:
      - name: organization_id
        in: path
        description: ID of organization
        required: true
        schema:
          type: string
          maxLength: 240
          pattern: ^[a-zd._-]+$
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDeliveryExternalIdOutput'
  /google-calendar/events:
    get:
      summary: ListGoogleCalendarEvents
      tags:
      - Services
      description: 'List Google Calendar events within a specified time range


        ### Required permissions

        > []'
      operationId: ListGoogleCalendarEvents
      parameters:
      - in: query
        name: oauth_account_id
        schema:
          type: string
          description: OAuth account ID for Google Calendar
        description: OAuth account ID for Google Calendar
      - in: query
        name: start_datetime
        schema:
          type: string
          format: date-time
          description: Start datetime in UTC ISO 8601 format (e.g., '2024-01-15T09:00:00Z')
        description: Start datetime in UTC ISO 8601 format (e.g., '2024-01-15T09:00:00Z')
      - in: query
        name: end_datetime
        schema:
          type: string
          format: date-time
          description: End datetime in UTC ISO 8601 format (e.g., '2024-01-15T17:00:00Z')
        description: End datetime in UTC ISO 8601 format (e.g., '2024-01-15T17:00:00Z')
      - in: query
        name: calendar_id
        schema:
          type: string
          description: Calendar ID (defaults to 'primary')
        description: Calendar ID (defaults to 'primary')
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListGoogleCalendarEventsOutput'
  /config-flags:
    get:
      summary: GetConfigFlags
      tags:
      - Services
      description: 'Returns all config flags for the authenticated frontend app. Includes content_hash for ETag-based caching.


        ### Required permissions

        > []'
      operationId: GetConfigFlags
      parameters: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetConfigFlagsOutput'
  /config-flags/public:
    get:
      summary: GetPublicConfigFlags
      tags:
      - Services
      description: 'Returns only public- namespace config flags. Unauthenticated — safe for login page and pre-auth consumers.


        ### Required permissions

        > []'
      operationId: GetPublicConfigFlags
      parameters: []
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetPublicConfigFlagsOutput'
  /s/{short_url_key}:
    get:
      summary: ShortUrlRedirect
      tags:
      - Services
      description: 'Redirects from a short URL to the original URL


        ### Required permissions

        > []'
      operationId: ShortUrlRedirect
      parameters:
      - name: short_url_key
        in: path
        description: ID of short_url_key
        required: true
        schema:
          type: string
          maxLength: 240
          pattern: ^[a-zd._-]+$
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ShortUrlRedirectOutput'
  /datasets/{dataset_id}/get_file_upload_urls:
    post:
      summary: GetFileUploadUrlsForDataset
      tags:
      - Services
      description: 'specify a list of file paths. For each file path, a url upload_url is returned. files can be POSTed on upload_url to upload them. They can then be accessed on url. Upon dataset deletion, these files will be deleted.


        ### Required permissions

        > [

        {

        "actions": [

        "datasets:write"

        ],

        "datasets": [

        {

        "params": "dataset_id"

        }

        ]

        }

        ]'
      operationId: GetFileUploadUrlsForDataset
      parameters:
      - name: dataset_id
        in: path
        description: ID of dataset
        required: true
        schema:
          type: string
          maxLength: 240
          pattern: ^[a-zd._-]+$
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetFileUploadUrlsForDatasetInput'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetFileUploadUrlsForDatasetOutput'
  /services/get_temporary_public_file_upload_url:
    post:
      summary: GetTemporaryPublicFileUploadUrl
      tags:
      - Services
      description: 'Allows anyone, even unauthed users, to upload files that last for 1 hour to relevance.


        ### Required permissions

        > []'
      operationId: GetTemporaryPublicFileUploadUrl
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetTemporaryPublicFileUploadUrlInput'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTemporaryPublicFileUploadUrlOutput'
  /services/get_temporary_file_upload_url:
    post:
      summary: GetTemporaryFileUploadUrl
      tags:
      - Services
      description: '### Required permissions

        > []'
      operationId: GetTemporaryFileUploadUrl
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GetTemporaryFileUploadUrlInput'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetTemporaryFileUploadUrlOutput'
  /bugs/submit:
    post:
      summary: SubmitBugReport
      tags:
      - Services
      description: 'Submit a bug report to track issues in the application


        ### Required permissions

        > []'
      operationId: SubmitBugReport
      parameters: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitBugReportInput'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitBugReportOutput'
components:
  schemas:
    GetTemporaryPublicFileUploadUrlInput:
      type: object
      properties:
        extension:
          type: string
          default: csv
          description: Used so when file is downloaded by customers, extension is correct.
      additionalProperties: false
    GetFileUploadUrlsForDatasetOutput:
      type: object
      properties:
        files:
          type: array
          items:
            type: object
            properties:
              upload_url:
                type: string
              url:
                type: string
            additionalProperties: false
            required:
            - upload_url
            - url
      additionalProperties: false
      required:
      - files
    GetTemporaryFileUploadUrlInput:
      type: object
      properties:
        extension:
          type: string
          default: csv
          description: Used so when file is downloaded by customers, extension is correct.
        filename:
          type: string
          description: Used to identify file hosted on the temporary url.
    SubmitBugReportInput:
      type: object
      properties:
        source:
          type: string
          description: Source of the bug report (e.g., 'web-app', 'api', 'mobile')
          maxLength: 100
        message:
          type: string
          description: Detailed message describing the bug
          maxLength: 50000
        category:
          type: string
          description: Category of the bug (e.g., 'UI', 'backend', 'performance')
          maxLength: 100
        region:
          type: string
          description: Region where the bug occurred
        project:
          type: string
          description: Project ID where the bug occurred
        context:
          type: object
          description: Additional context information about the bug
          additionalProperties: true
      required:
      - source
      - message
      - category
      - region
      - project
      additionalProperties: false
    GetPublicConfigFlagsOutput:
      type: object
      properties:
        flags:
          type: object
          additionalProperties:
            type: object
            properties:
              enabled:
                type: boolean
              payload: {}
              source:
                type: string
                enum:
                - global
                - override
            required:
            - enabled
            - source
            additionalProperties: false
        version:
          type: number
        content_hash:
          type: string
      required:
      - flags
      - version
      - content_hash
      additionalProperties: false
    GetDeliveryExternalIdOutput:
      type: object
      properties:
        aws_external_id:
          type: string
          description: 'The external ID for AWS IAM trust policy. Format: relevance_-_<org_id>_-_<uuid>'
        organization_id:
          type: number
          description: The organization ID this external ID belongs to
        created_at:
          type: string
          description: Timestamp when the external ID was created
      required:
      - aws_external_id
      - organization_id
      - created_at
      additionalProperties: false
    GetTemporaryFileUploadUrlOutput:
      type: object
      properties:
        upload_url:
          type: string
        download_url:
          type: string
      additionalProperties: false
      required:
      - upload_url
      - download_url
    GetTemporaryPublicFileUploadUrlOutput:
      type: object
      properties:
        upload_url:
          type: string
        download_url:
          type: string
      additionalProperties: false
      required:
      - upload_url
      - download_url
    ListGoogleCalendarEventsOutput:
      type: object
      properties:
        events:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
                description: Event ID
              summary:
                type: string
                description: Event title/summary
              description:
                type: string
                description: Event description
              location:
                type: string
                description: Event location
              start:
                type: object
                properties:
                  dateTime:
                    type: string
                    description: Start datetime in ISO format
                  timeZone:
                    type: string
                    description: Timezone of the start time
                additionalProperties: true
              end:
                type: object
                properties:
                  dateTime:
                    type: string
                    description: End datetime in ISO format
                  timeZone:
                    type: string
                    description: Timezone of the end time
                additionalProperties: true
              attendees:
                type: array
                items:
                  type: object
                  properties:
                    email:
                      type: string
                    displayName:
                      type: string
                    responseStatus:
                      type: string
                  additionalProperties: true
                description: List of attendees
              organizer:
                type: object
                properties:
                  email:
                    type: string
                  displayName:
                    type: string
                additionalProperties: true
              htmlLink:
                type: string
                description: URL to the event in Google Calendar
              hangoutLink:
                type: string
                description: URL for the video conference (e.g., https://meet.google.com/abc-defg-hij)
              status:
                type: string
                description: Event status (confirmed, tentative, cancelled)
            additionalProperties: true
          description: List of calendar events within the specified time range
      required:
      - events
      additionalProperties: false
    SlackInteractionsWebhookInput:
      type: object
      properties:
        payload:
          type: string
          description: The raw payload from Slack
      required:
      - payload
      description: Slack interactivity payload - accepts the raw payload from Slack
      additionalProperties: true
    GetFileUploadUrlsForDatasetInput:
      type: object
      properties:
        files:
          type: array
          items:
            type: string
          description: files we be accessible under a url that will be returned in the output.
        include_file_path_in_url:
          type: boolean
          default: false
      required:
      - files
      additionalProperties: false
    ShortUrlRedirectOutput:
      type: object
      properties:
        redirect_url:
          type: string
      required:
      - redirect_url
      additionalProperties: false
    GetConfigFlagsOutput:
      type: object
      properties:
        flags:
          type: object
          additionalProperties:
            type: object
            properties:
              enabled:
                type: boolean
              payload: {}
              source:
                type: string
                enum:
                - global
                - override
            required:
            - enabled
            - source
            additionalProperties: false
        version:
          type: number
        content_hash:
          type: string
        resolved_at:
          type: string
          description: ISO-8601 timestamp of when the flags file was last written. Optional because it is absent until a flags file has been loaded.
      required:
      - flags
      - version
      - content_hash
      additionalProperties: false
    SubmitBugReportOutput:
      type: object
      properties:
        bug_id:
          type: number
      required:
      - bug_id
      additionalProperties: false
    SlackInteractionsWebhookOutput: {}
  securitySchemes:
    AuthorizationHeader:
      type: apiKey
      in: header
      name: Authorization
      description: 'Authorization credentials. Header authorization should be in the form of: project:api_key'