Planable Stories API

The Stories API from Planable — 1 operation(s) for stories.

OpenAPI Specification

planable-stories-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Planable Public Campaigns Stories API
  version: 1.0.0
  description: REST API for managing Planable companies, workspaces, pages, posts and more.
servers:
- url: https://api.planable.io/api/v1
security:
- bearerAuth: []
tags:
- name: Stories
paths:
  /stories:
    post:
      tags:
      - Stories
      summary: Create an Instagram story
      description: Creates a single-media Instagram story. GIFs and non-Instagram pages are not supported. Set `notify` to `false` to suppress external notifications; internal activity feed entries are always recorded.
      security:
      - bearerAuth:
        - write
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                workspaceId:
                  type: string
                  minLength: 1
                pageId:
                  type: string
                  minLength: 1
                media:
                  type: string
                  format: uri
                stickers:
                  type: array
                  items:
                    type: object
                    properties:
                      type:
                        type: string
                        enum:
                        - text
                        - location
                        - link
                        - music
                        - mention
                        - hashtags
                        - questions
                        - notes
                        - other
                      value:
                        type: string
                    required:
                    - type
                    - value
                  default: []
                scheduledAt:
                  type: string
                  format: date-time
                labels:
                  type: array
                  items:
                    type: string
                  default: []
                teamOnly:
                  type: boolean
                approved:
                  type: boolean
                approvedBy:
                  type: string
                  minLength: 1
                publishAtScheduledDate:
                  type: boolean
                  default: false
                notify:
                  type: boolean
                  default: true
                internalNote:
                  type: string
                  maxLength: 8000
              required:
              - workspaceId
              - pageId
              - media
      responses:
        '201':
          description: Story created
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      id:
                        type: string
                      workspaceId:
                        type: string
                      pageId:
                        type: string
                      type:
                        type: string
                      classification:
                        type: string
                        enum:
                        - story
                      media:
                        type:
                        - string
                        - 'null'
                        format: uri
                      scheduledAt:
                        type:
                        - string
                        - 'null'
                        format: date-time
                      scheduledSet:
                        type: boolean
                      status:
                        type: string
                      approved:
                        type: boolean
                      approvedBy:
                        type: array
                        items:
                          type: object
                          properties:
                            userId:
                              type: string
                            approvedAt:
                              type: string
                              format: date-time
                          required:
                          - userId
                          - approvedAt
                      createdAt:
                        type: string
                        format: date-time
                    required:
                    - id
                    - workspaceId
                    - pageId
                    - type
                    - classification
                    - media
                    - scheduledAt
                    - scheduledSet
                    - status
                    - approved
                    - createdAt
                required:
                - data
        '400':
          description: Validation error
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '404':
          description: Workspace or page not found
        '429':
          description: Rate limit exceeded
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '500':
          description: Internal server error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
components:
  schemas:
    ErrorResponse:
      type: object
      properties:
        error:
          type: object
          properties:
            code:
              type: string
              enum:
              - VALIDATION_ERROR
              - UNAUTHORIZED
              - FORBIDDEN
              - NOT_FOUND
              - METHOD_NOT_ALLOWED
              - RATE_LIMITED
              - POST_ALREADY_PUBLISHED
              - PUBLISHING_IN_PROGRESS
              - WORKSPACE_LIMIT_REACHED
              - INTERNAL
            message:
              type: string
            requestId:
              type: string
          required:
          - code
          - message
          - requestId
      required:
      - error
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: pln_*