Bigtincan Story API

The Story API from Bigtincan — 11 operation(s) for story.

Operations 11

POST /v1/story/add/tag/{story_perm_id} Tag a story. #
DELETE /v1/story/archive/{revision_id} Archive a story. #
POST /v1/story/comment/{revision_id} Comment on a story. #
GET /v1/story/search Search for stories. #
POST /v1/story/share/{revision_id} Share a story. #
POST /v1/story/upload/file Upload a file to attach to a new or existing story. #
GET /v1/story/{story_perm_id}/widgets Get widgets in the template data of a story. #
GET /v1.1/story/get/{story_perm_id} Retrieve a story. #
GET /v1.2/story/all Retrieve stories. #
POST /v1.2/story/add Publish a story. #
PUT /v1.2/story/edit/{revision_id} Update a story. #

Documentation

Specifications

Other Resources

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/bigtincan-story-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 email required.

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

OpenAPI Specification

bigtincan-story-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bigtincan Hub Public Story API
  version: '1.0'
  description: 'The Bigtincan Hub Public API provides programmatic access to the Bigtincan sales enablement platform: stories, files, channels, tabs, groups, users, tags, bookmarks, forms, public file shares, search, CRM story recommendations, interaction tracking and admin management.'
  contact:
    name: Bigtincan Support
    url: https://www.bigtincan.com/contact/
  termsOfService: https://www.bigtincan.com/eula/
servers:
- url: https://pubapi.bigtincan.com/
security:
- oauth2_password: []
- oauth2_authorization_code: []
tags:
- name: Story
paths:
  /v1/story/add/tag/{story_perm_id}:
    post:
      tags:
      - Story
      summary: Tag a story.
      description: Tag a story.
      operationId: post-v1-story-add-tag-by-story-perm-id
      parameters:
      - name: story_perm_id
        in: path
        description: Story Perm ID
        required: true
        schema:
          type: string
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '200':
          description: Tag object
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              type: object
              properties:
                tag:
                  type: string
                  description: Tag name
              required:
              - tag
  /v1/story/archive/{revision_id}:
    delete:
      tags:
      - Story
      summary: Archive a story.
      description: Archive a story.
      operationId: delete-v1-story-archive-by-revision-id
      parameters:
      - name: revision_id
        in: path
        description: Active story revision ID
        required: true
        schema:
          type: string
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '200':
          description: Story archived
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /v1/story/comment/{revision_id}:
    post:
      tags:
      - Story
      summary: Comment on a story.
      description: Comment on a story.
      operationId: post-v1-story-comment-by-revision-id
      parameters:
      - name: revision_id
        in: path
        description: Story revision ID
        required: true
        schema:
          type: string
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '200':
          description: Comment object
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Add_Comment_Request'
        description: Comment object
        required: true
  /v1/story/search:
    get:
      tags:
      - Story
      summary: Search for stories.
      description: "DEPRECATED: use /search/stories instead. Search for stories.\n\n    Generic Search (For example find all documents with term 'test')\n    Send 'test' as the keyword.\n\n    Search Types\n    - Stories returns stories.\n    - Files returns files.\n    - Tags returns stories and files with the requested tag.\n\n    You can search in following sections. Fields for each search type will be as follows:\n    Stories - title, description\n    Files - filename, content, extension\n    Comments - comment, user\n    Meetings - title, description\n    People - firstname, lastname, email, jobtitle, skill\n    Tags - tagNotes - title,content\n\n    Examples:\n    Request format for searching text 'test' only in story title - fields[0]=title or you can even send fields=title if\n    there is only one field Request format for searching text 'test' in both story title and description -\n    fields[0]=title, fields[1]=description Fields depend on type selected\n\n    Filters\n    The following aggregation filters are provided:\n    tab, channel, author, range and (tag - for stories or mime - for files)\n\n    The search result contains aggregated results with id, term and count which can be used to narrow down searchresults\n\n    Example:\n    To filter search results by specific tabs:\n    Keyword: test\n    Filters would contain the JSON object:\n    {'tab_id':['dbAUxa', 'sFicvuF']}\n\n    If you want to drill down further by channel and author:\n\n    Filters would contain the JSON object:\n    {'tab_id':['dbAUxa', 'sFicvuF'], 'channel_id':['cuydsy', 'dsoivwP], 'author_id':['XMudha'], 'range':[{'unit':'months','value':1}]}\n\n    Date Filter\n    You can specify three units - days, weeks and months.\n\n    Example:\n    Last Month - date filter to be used for last month is [{'unit':'months','value':1}]\n    Last Week - [{'unit':'weeks','value':1}]\n    Last 24 Hours - [{'unit':'days','value':1}]\n    Last 6 Months - [{'unit':'months', 'value':6}]\n    "
      operationId: get-v1-story-search
      parameters:
      - name: keyword
        in: query
        description: Keywords
        required: true
        schema:
          type: string
      - name: page
        in: query
        description: 'Pagination: current page'
        required: false
        schema:
          type: integer
      - name: limit
        in: query
        description: 'Pagination: results per page. Max 100'
        required: false
        schema:
          type: integer
      - name: fields
        in: query
        description: JSON object of Fields within search type
        required: false
        schema:
          type: string
      - name: type
        in: query
        description: Search Type
        required: false
        schema:
          type: string
          enum:
          - stories
          - files
          - tags
      - name: filters
        in: query
        description: JSON object with array of IDs - List of possible filters are described above
        required: false
        schema:
          type: string
      - name: date_filter
        in: query
        description: JSON object of Date filter
        required: false
        schema:
          type: string
      - name: exclude_internal_files
        in: query
        description: Exclude internal files like btc, btcf, btca, btce
        required: false
        schema:
          type: boolean
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '200':
          description: A list of stories
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /v1/story/share/{revision_id}:
    post:
      tags:
      - Story
      summary: Share a story.
      description: Share a story.
      operationId: post-v1-story-share-by-revision-id
      parameters:
      - name: revision_id
        in: path
        description: Story revision ID
        required: true
        schema:
          type: string
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '200':
          description: Share sent
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Share_Story_Request'
        description: Share object
        required: true
  /v1/story/upload/file:
    post:
      tags:
      - Story
      summary: Upload a file to attach to a new or existing story.
      description: "Upload a file to attach to a new or existing story.\n\n    Upon success an array of objects will be returned with the following keys: filename, description, category, size\n\n    Upon failure an array of objects will be returned with the following keys: code, message, filename\n\n    The order in which files were uploaded is maintained when output is returned."
      operationId: post-v1-story-upload-file
      parameters:
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '200':
          description: File object
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                upload_type:
                  type: string
                  enum:
                  - file
                  description: Upload type
                files:
                  type: string
                  description: Files
                  format: binary
              required:
              - upload_type
              - files
  /v1/story/{story_perm_id}/widgets:
    get:
      tags:
      - Story
      summary: Get widgets in the template data of a story.
      description: Get widgets in the template data of a story.
      operationId: get-v1-story-by-story-perm-id-widgets
      parameters:
      - name: story_perm_id
        in: path
        description: Story perm id
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Recommendations
        '401':
          $ref: '#/components/responses/401'
        '422':
          $ref: '#/components/responses/422'
  /v1.1/story/get/{story_perm_id}:
    get:
      tags:
      - Story
      summary: Retrieve a story.
      description: Retrieve a story.
      operationId: get-v1-1-story-get-by-story-perm-id
      parameters:
      - name: story_perm_id
        in: path
        description: Story Perm ID
        required: true
        schema:
          type: string
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '200':
          description: Story object
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /v1.2/story/all:
    get:
      tags:
      - Story
      summary: Retrieve stories.
      description: Retrieve stories. Story access limited to the requester's group associations.
      operationId: get-v1-2-story-all
      parameters:
      - name: channel_id
        in: query
        description: Channel ID
        required: false
        schema:
          type: string
      - name: page
        in: query
        description: 'Pagination: current page'
        required: false
        schema:
          type: integer
      - name: limit
        in: query
        description: 'Pagination: results per page. Max 100'
        required: false
        schema:
          type: integer
          default: 10
      - name: sort_by
        in: query
        description: Sort by fields
        required: false
        schema:
          type: string
          enum:
          - date
          - likes
          - most_read
          - least_read
          - author_first_name
          - author_last_name
          - priority_order
          - content_score
          - title
      - name: include_comments
        in: query
        description: Include comments to story
        required: false
        schema:
          type: boolean
          default: false
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '200':
          description: A list of stories
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
  /v1.2/story/add:
    post:
      tags:
      - Story
      summary: Publish a story.
      description: "Publish a story.\n\n    Sharing bitmask:\n    The field 'sharing_bitmask' is a combination of the following bits:\n    - No sharing: 0\n    - Device sharing: 1\n    - Share with Audit: 2"
      operationId: post-v1-2-story-add
      parameters:
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '201':
          description: Story object
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Add_Story_Request'
        description: Story object
        required: true
  /v1.2/story/edit/{revision_id}:
    put:
      tags:
      - Story
      summary: Update a story.
      description: "Update a story.\n\n    How to edit files\n    You can use either of following ways to edit files and you cannot mix both ways together:\n    1. files/new_files\n    files: the existing files you want to keep, [] means removing all existing files\n    new_files: the new files you want to add\n\n    2. append_files/remove_files\n    append_files: files you want to append/add\n    remove_files: files you want to remove from the existing files\n\n    Sharing bitmask:\n    The field 'sharing_bitmask' is a combination of the following bits:\n    - No sharing: 0\n    - Device sharing: 1\n    - Share with Audit: 2"
      operationId: put-v1-2-story-edit-by-revision-id
      parameters:
      - name: revision_id
        in: path
        description: Story revision ID
        required: true
        schema:
          type: string
      - $ref: '#/components/schemas/As-User'
        name: As-User
        in: header
        required: false
      responses:
        '201':
          description: Story object
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Update_Story_Request'
        description: Story object
        required: true
components:
  schemas:
    Update_Story_Request:
      required:
      - name
      - channels
      properties:
        title:
          description: Story title
          type: string
        channels:
          description: Channels
          type: array
          items:
            properties:
              id:
                description: Channel ID
                type: string
              is_alias:
                description: Channel Alias
                type: boolean
                default: false
            type: object
        description:
          type: string
        excerpt:
          type: string
        new_files:
          description: New files
          type: array
          items:
            $ref: '#/components/schemas/Story_File_Edit_Request_Object'
            type: object
        files:
          description: Existing files
          type: array
          items:
            $ref: '#/components/schemas/Story_File_Edit_Request_Object'
            type: object
        append_files:
          description: Append files to the story
          type: array
          items:
            $ref: '#/components/schemas/Story_File_Edit_Request_Object'
            type: object
        remove_files:
          description: Remove files from the story
          type: array
          items:
            properties:
              filename:
                type: string
            type: object
        events:
          description: Event objects
          type: array
          items:
            $ref: '#/components/schemas/Story_Event_Request_Object'
            type: object
        tags:
          description: Tag objects
          type: array
          items:
            $ref: '#/components/schemas/Story_Tag_Request_Object'
            type: object
        sharing_bitmask:
          type: integer
        is_password_protected:
          type: boolean
          default: false
        can_annotate:
          type: boolean
          default: true
        is_notifications_enabled:
          type: boolean
          default: true
        is_publicly_accessible:
          type: boolean
          default: false
        quicklink_url:
          type: string
        quicklink_fallback:
          type: string
        quickfile:
          type: boolean
          default: false
        cover_art_url:
          type: string
        expires_at:
          type: integer
          default: 0
        expires_at_tz:
          type: string
          default: ''
      type: object
    Add_Story_Request:
      required:
      - name
      - channels
      properties:
        title:
          description: Story title
          type: string
        channels:
          description: Channels
          type: array
          items:
            properties:
              id:
                description: Channel ID
                type: string
              is_alias:
                description: Channel Alias
                type: boolean
                default: false
            type: object
        description:
          type: string
        excerpt:
          type: string
        new_files:
          description: Files
          type: array
          items:
            $ref: '#/components/schemas/Story_File_Request_Object'
            type: object
        events:
          description: Events
          type: array
          items:
            $ref: '#/components/schemas/Story_Event_Request_Object'
            type: object
        tags:
          description: Tag objects
          type: array
          items:
            $ref: '#/components/schemas/Story_Tag_Request_Object'
            type: object
        sharing_bitmask:
          type: integer
        is_password_protected:
          type: boolean
          default: false
        can_annotate:
          type: boolean
          default: true
        is_notifications_enabled:
          type: boolean
          default: true
        is_publicly_accessible:
          type: boolean
          default: false
        quicklink_url:
          type: string
        quicklink_fallback:
          type: string
        quickfile:
          type: boolean
          default: false
        cover_art_url:
          type: string
          default: ''
        expires_at:
          type: integer
          default: 0
        expires_at_tz:
          type: string
          default: ''
      type: object
    Story_Event_Request_Object:
      required:
      - title
      - tz
      - start
      - end
      - all_day
      properties:
        id:
          type: string
        title:
          type: string
        tz:
          type: string
        start:
          description: Unix timestamp
          type: integer
        end:
          description: Unix timestamp
          type: integer
        all_day:
          description: All day event
          type: boolean
      type: object
    As-User:
      description: Perform action on behalf of this user ID.
      type: string
    Story_Tag_Request_Object:
      required:
      - name
      properties:
        name:
          type: string
      type: object
    Language_Code:
      type: string
      default: en-us
      enum:
      - en-us
      - en-gb
      - zh-cn
      - zh-hk
      - fr
      - it
      - ja
      - ko
      - pt-br
      - ru
      - es
      - th
      - da
      - de
      - 'no'
      - sv
      - tr
      - vi
    Share_Story_Request:
      required:
      - subject
      - emails
      properties:
        subject:
          description: Share subject
          type: string
        note:
          description: Share description
          type: string
        lang_code:
          $ref: '#/components/schemas/Language_Code'
        emails:
          description: Email addresses
          type: array
          items:
            type: string
        cc_emails:
          description: CC email addresses
          type: array
          items:
            type: string
        file_id:
          description: File IDs
          type: array
          items:
            type: string
      type: object
    Story_File_Edit_Request_Object:
      required:
      - filename
      - description
      - share_status
      properties:
        filename:
          type: string
        description:
          type: string
        share_status:
          type: string
          enum:
          - mandatory
          - optional
          - blocked
        file_group:
          type: string
        allow_pitch_builder:
          description: Allow file to be added to pitch builder.
          type: boolean
          default: true
        prevent_editing:
          description: Prevent editing within pitch builder. allow_pitch_builder needs to be set to true to set this value to true.
          type: boolean
          default: false
        tags:
          description: Tag objects
          type: array
          items:
            $ref: '#/components/schemas/Story_Tag_Request_Object'
            type: object
      type: object
    Story_File_Request_Object:
      required:
      - filename
      - description
      - share_status
      properties:
        filename:
          type: string
        description:
          type: string
        share_status:
          type: string
          enum:
          - mandatory
          - optional
          - blocked
        allow_pitch_builder:
          description: Allow file to be added to pitch builder.
          type: boolean
          default: true
        prevent_editing:
          description: Prevent editing within pitch builder. allow_pitch_builder needs to be set to true to set this value to true.
          type: boolean
          default: false
        tags:
          description: Tag objects
          type: array
          items:
            $ref: '#/components/schemas/Story_Tag_Request_Object'
            type: object
      type: object
    Add_Comment_Request:
      required:
      - comment
      properties:
        comment:
          description: Comment
          type: string
        reply_to_id:
          description: Reply to comment ID
          type: string
      type: object
  responses:
    '403':
      description: Forbidden
    '422':
      description: Validation error
    '401':
      description: Unauthorized
    '400':
      description: Bad request
  securitySchemes:
    oauth2_password:
      type: oauth2
      flows:
        password:
          scopes: {}
          tokenUrl: https://pubapi.bigtincan.com/services/oauth2/token
      description: 'Client ID + Client Secret + API Key exchanged at /services/oauth2/token with grant_type=password. Returns access_token + refresh_token. The As-User header is available only with this flow. Source: https://pubapi.bigtincan.com/doc/interactive/'
    oauth2_authorization_code:
      type: oauth2
      flows:
        authorizationCode:
          scopes: {}
          authorizationUrl: https://pubapi.bigtincan.com/services/oauth2/authorize
          tokenUrl: https://pubapi.bigtincan.com/services/oauth2/token
      description: 'Interactive Bigtincan Hub user login. The As-User header is disabled for this flow. Source: https://pubapi.bigtincan.com/doc/interactive/'