Balladic Feed API

The feed API from Balladic — 5 operation(s) for feed.

Operations 5

GET /feed/preflight Feed Preflight #
GET /feed Get Feed #
GET /feed/recent-tasks Get Recent Tasks #
GET /feed/overview Get Overview #
POST /feed/interactions Record Interaction #

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/balladic-com:balladic-com-feed-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

balladic-com-feed-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Balladic Feed API
  description: Balladestreger
  version: 0.11.10
tags:
- name: Feed
paths:
  /feed/preflight:
    get:
      tags:
      - Feed
      summary: Feed Preflight
      operationId: feed_preflight_feed_preflight_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedPreflightResponse'
      security:
      - HTTPBearer: []
  /feed:
    get:
      tags:
      - Feed
      summary: Get Feed
      operationId: get_feed_feed_get
      security:
      - HTTPBearer: []
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          default: 10
          title: Limit
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          default: 0
          title: Offset
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /feed/recent-tasks:
    get:
      tags:
      - Feed
      summary: Get Recent Tasks
      operationId: get_recent_tasks_feed_recent_tasks_get
      security:
      - HTTPBearer: []
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 20
          minimum: 1
          default: 4
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RecentTaskResponse'
                title: Response Get Recent Tasks Feed Recent Tasks Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /feed/overview:
    get:
      tags:
      - Feed
      summary: Get Overview
      operationId: get_overview_feed_overview_get
      security:
      - HTTPBearer: []
      parameters:
      - name: id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FeedOverviewResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /feed/interactions:
    post:
      tags:
      - Feed
      summary: Record Interaction
      operationId: record_interaction_feed_interactions_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RecordFeedInteractionRequest'
        required: true
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - HTTPBearer: []
components:
  schemas:
    TaskAugmentsResponse:
      properties:
        deadline:
          anyOf:
          - $ref: '#/components/schemas/DeadlineResponse'
          - type: 'null'
        assignments:
          anyOf:
          - items:
              $ref: '#/components/schemas/AssignmentResponse'
            type: array
          - type: 'null'
          title: Assignments
        approval:
          anyOf:
          - $ref: '#/components/schemas/ApprovalResponse'
          - type: 'null'
        dependencies:
          anyOf:
          - items:
              $ref: '#/components/schemas/DependencyResponse'
            type: array
          - type: 'null'
          title: Dependencies
        timer:
          anyOf:
          - $ref: '#/components/schemas/TimerResponse'
          - type: 'null'
        recurrence:
          anyOf:
          - $ref: '#/components/schemas/RecurrenceResponse'
          - type: 'null'
        cost:
          anyOf:
          - $ref: '#/components/schemas/CostResponse'
          - type: 'null'
        tags:
          anyOf:
          - items:
              $ref: '#/components/schemas/TaskTagResponse'
            type: array
          - type: 'null'
          title: Tags
        priority:
          anyOf:
          - $ref: '#/components/schemas/PriorityResponse'
          - type: 'null'
        containers:
          anyOf:
          - $ref: '#/components/schemas/ContainerAugmentResponse'
          - type: 'null'
        checklist:
          anyOf:
          - items:
              $ref: '#/components/schemas/ChecklistItemResponse'
            type: array
          - type: 'null'
          title: Checklist
        github:
          anyOf:
          - items:
              $ref: '#/components/schemas/ExternalLinkResponse'
            type: array
          - type: 'null'
          title: Github
        blocking:
          anyOf:
          - items:
              $ref: '#/components/schemas/BlockingResponse'
            type: array
          - type: 'null'
          title: Blocking
        comments:
          type: integer
          title: Comments
          default: 0
        comment_attachments:
          type: integer
          title: Comment Attachments
          default: 0
      type: object
      title: TaskAugmentsResponse
    BlockingResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        task_id:
          type: string
          format: uuid
          title: Task Id
        created_by:
          type: string
          format: uuid
          title: Created By
        created_at:
          type: string
          format: date-time
          title: Created At
        number:
          anyOf:
          - type: integer
          - type: 'null'
          title: Number
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
      type: object
      required:
      - id
      - task_id
      - created_by
      - created_at
      title: BlockingResponse
    FeedPreflightResponse:
      properties:
        show_overview:
          type: boolean
          title: Show Overview
        show_feed:
          type: boolean
          title: Show Feed
        show_narrative:
          type: boolean
          title: Show Narrative
      type: object
      required:
      - show_overview
      - show_feed
      - show_narrative
      title: FeedPreflightResponse
    DependencyResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        depends_on_id:
          type: string
          format: uuid
          title: Depends On Id
        created_by:
          type: string
          format: uuid
          title: Created By
        created_at:
          type: string
          format: date-time
          title: Created At
        number:
          anyOf:
          - type: integer
          - type: 'null'
          title: Number
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
      type: object
      required:
      - id
      - depends_on_id
      - created_by
      - created_at
      title: DependencyResponse
    TaskTagResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        tag:
          $ref: '#/components/schemas/TagResponse'
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - tag
      - created_at
      title: TaskTagResponse
    ApprovalResponseEntry:
      properties:
        user_id:
          type: string
          format: uuid
          title: User Id
        decision:
          $ref: '#/components/schemas/ApprovalVerdict'
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - user_id
      - decision
      - created_at
      title: ApprovalResponseEntry
    ExternalLinkResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        provider:
          type: string
          title: Provider
        kind:
          type: string
          title: Kind
        role:
          type: string
          enum:
          - mirror
          - reference
          title: Role
        binding_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Binding Id
        external_id:
          anyOf:
          - type: string
          - type: 'null'
          title: External Id
        url:
          anyOf:
          - type: string
          - type: 'null'
          title: Url
        snapshot:
          additionalProperties: true
          type: object
          title: Snapshot
        closes:
          type: boolean
          title: Closes
        status:
          type: string
          title: Status
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - provider
      - kind
      - role
      - binding_id
      - external_id
      - url
      - snapshot
      - closes
      - status
      - created_at
      title: ExternalLinkResponse
    FeedItemResponse:
      properties:
        type:
          $ref: '#/components/schemas/FeedItemType'
        subject_id:
          type: string
          format: uuid
          title: Subject Id
        project_id:
          type: string
          format: uuid
          title: Project Id
        title:
          type: string
          title: Title
        description:
          type: string
          title: Description
        metadata:
          additionalProperties: true
          type: object
          title: Metadata
        score:
          type: number
          title: Score
        created_at:
          type: string
          format: date-time
          title: Created At
        task:
          anyOf:
          - $ref: '#/components/schemas/TaskResponse'
          - type: 'null'
        project:
          anyOf:
          - $ref: '#/components/schemas/ProjectResponse'
          - type: 'null'
        action:
          anyOf:
          - $ref: '#/components/schemas/FeedActionResponse'
          - type: 'null'
      type: object
      required:
      - type
      - subject_id
      - project_id
      - title
      - description
      - metadata
      - score
      - created_at
      title: FeedItemResponse
    SuggestedActionResponse:
      properties:
        label:
          type: string
          title: Label
        subject_type:
          type: string
          title: Subject Type
        subject_id:
          type: string
          title: Subject Id
        project_id:
          type: string
          title: Project Id
        subject_slug:
          anyOf:
          - type: string
          - type: 'null'
          title: Subject Slug
        project_slug:
          anyOf:
          - type: string
          - type: 'null'
          title: Project Slug
      type: object
      required:
      - label
      - subject_type
      - subject_id
      - project_id
      title: SuggestedActionResponse
    ChecklistItemResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        title:
          type: string
          title: Title
        done:
          type: boolean
          title: Done
        position:
          type: integer
          title: Position
        created_at:
          type: string
          format: date-time
          title: Created At
        done_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Done At
      type: object
      required:
      - id
      - title
      - done
      - position
      - created_at
      - done_at
      title: ChecklistItemResponse
    ApprovalVerdict:
      type: string
      enum:
      - approved
      - denied
      title: ApprovalVerdict
    CostResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        mode:
          $ref: '#/components/schemas/CostMode'
        amount:
          type: number
          title: Amount
        currency:
          type: string
          title: Currency
        total:
          type: number
          title: Total
        tracked_seconds:
          type: integer
          title: Tracked Seconds
        timer_running_since:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Timer Running Since
        set_by:
          type: string
          format: uuid
          title: Set By
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - mode
      - amount
      - currency
      - total
      - tracked_seconds
      - timer_running_since
      - set_by
      - created_at
      title: CostResponse
    TimeEntryResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        started_at:
          type: string
          format: date-time
          title: Started At
        stopped_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Stopped At
        started_by:
          type: string
          format: uuid
          title: Started By
        duration_seconds:
          type: integer
          title: Duration Seconds
      type: object
      required:
      - id
      - started_at
      - stopped_at
      - started_by
      - duration_seconds
      title: TimeEntryResponse
    TaskState:
      type: string
      enum:
      - waiting
      - active
      - done
      title: TaskState
    FeedResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/FeedItemResponse'
          type: array
          title: Items
        total:
          type: integer
          title: Total
      type: object
      required:
      - items
      - total
      title: FeedResponse
    RecordFeedInteractionRequest:
      properties:
        items:
          items:
            $ref: '#/components/schemas/FeedInteractionItem'
          type: array
          maxItems: 50
          minItems: 1
          title: Items
        interaction_type:
          $ref: '#/components/schemas/FeedInteractionType'
        until:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Until
      type: object
      required:
      - items
      - interaction_type
      title: RecordFeedInteractionRequest
    DeadlineState:
      type: string
      enum:
      - passed
      - today
      - upcoming
      - distant
      title: DeadlineState
    TaskResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        project_id:
          type: string
          format: uuid
          title: Project Id
        column_id:
          type: string
          format: uuid
          title: Column Id
        column_title:
          anyOf:
          - type: string
          - type: 'null'
          title: Column Title
        number:
          type: integer
          title: Number
        title:
          type: string
          title: Title
        slug:
          type: string
          title: Slug
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        position:
          anyOf:
          - type: integer
          - type: 'null'
          title: Position
        container_position:
          anyOf:
          - type: integer
          - type: 'null'
          title: Container Position
        state:
          $ref: '#/components/schemas/TaskState'
        state_changed_at:
          type: string
          format: date-time
          title: State Changed At
        done_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Done At
        created_by:
          type: string
          format: uuid
          title: Created By
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        augments:
          anyOf:
          - $ref: '#/components/schemas/TaskAugmentsResponse'
          - type: 'null'
        subscribed:
          type: boolean
          title: Subscribed
          default: false
        all_tasks_done:
          type: boolean
          title: All Tasks Done
          default: false
      type: object
      required:
      - id
      - project_id
      - column_id
      - number
      - title
      - slug
      - description
      - position
      - state
      - state_changed_at
      - done_at
      - created_by
      - created_at
      - updated_at
      title: TaskResponse
    CostMode:
      type: string
      enum:
      - fixed
      - hourly
      title: CostMode
    FeedItemType:
      type: string
      enum:
      - deadline_approaching
      - task_completed
      - pending_approval
      - stale_task
      - active_conversation
      - unblocked_task
      - new_assignment
      - new_member_joined
      - approval_resolved
      - high_cost_stalled
      - critical_stuck
      - blocking_critical
      - critical_deadline
      - untouched_task
      - pr_review_requested
      - pr_checks_failing
      title: FeedItemType
    PriorityResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        level:
          $ref: '#/components/schemas/PriorityLevel'
        set_by:
          type: string
          format: uuid
          title: Set By
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - level
      - set_by
      - created_at
      title: PriorityResponse
    ContainerAugmentResponse:
      properties:
        container_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Container Id
        container_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Container Name
      type: object
      title: ContainerAugmentResponse
    AssignmentResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        user_id:
          type: string
          format: uuid
          title: User Id
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
        assigned_by:
          type: string
          format: uuid
          title: Assigned By
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - user_id
      - assigned_by
      - created_at
      title: AssignmentResponse
    ProjectResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        title:
          type: string
          title: Title
        slug:
          type: string
          title: Slug
        color:
          type: string
          title: Color
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        view_mode:
          type: string
          title: View Mode
          default: kanban
        created_by:
          type: string
          format: uuid
          title: Created By
        created_at:
          type: string
          format: date-time
          title: Created At
        updated_at:
          type: string
          format: date-time
          title: Updated At
        archived_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Archived At
        organization_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Organization Id
        installed_augments:
          items:
            type: string
          type: array
          title: Installed Augments
          default: []
      type: object
      required:
      - id
      - title
      - slug
      - color
      - description
      - created_by
      - created_at
      - updated_at
      title: ProjectResponse
    FeedActionResponse:
      properties:
        kind:
          $ref: '#/components/schemas/FeedActionKind'
        label:
          type: string
          title: Label
        user_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: User Id
      type: object
      required:
      - kind
      - label
      title: FeedActionResponse
    ApprovalResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        type:
          $ref: '#/components/schemas/ApprovalType'
        target_state:
          $ref: '#/components/schemas/TaskState'
        requested_by:
          type: string
          format: uuid
          title: Requested By
        outcome:
          anyOf:
          - $ref: '#/components/schemas/ApprovalVerdict'
          - type: 'null'
        assignees:
          items:
            type: string
            format: uuid
          type: array
          title: Assignees
        responses:
          items:
            $ref: '#/components/schemas/ApprovalResponseEntry'
          type: array
          title: Responses
        created_at:
          type: string
          format: date-time
          title: Created At
        resolved_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Resolved At
      type: object
      required:
      - id
      - type
      - target_state
      - requested_by
      - outcome
      - assignees
      - responses
      - created_at
      - resolved_at
      title: ApprovalResponse
    RecentTaskResponse:
      properties:
        task:
          $ref: '#/components/schemas/TaskResponse'
        project:
          $ref: '#/components/schemas/ProjectResponse'
        touched_at:
          type: string
          format: date-time
          title: Touched At
      type: object
      required:
      - task
      - project
      - touched_at
      title: RecentTaskResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    RecurrenceResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        iterations:
          type: integer
          title: Iterations
        interval_unit:
          anyOf:
          - type: string
          - type: 'null'
          title: Interval Unit
        interval_value:
          anyOf:
          - type: integer
          - type: 'null'
          title: Interval Value
        started_at:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Started At
        next_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Next Date
        max_iterations:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Iterations
        created_by:
          type: string
          format: uuid
          title: Created By
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - iterations
      - created_by
      - created_at
      title: RecurrenceResponse
    DeadlineResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        date:
          type: string
          format: date
          title: Date
        deadline_state:
          $ref: '#/components/schemas/DeadlineState'
        set_by:
          type: string
          format: uuid
          title: Set By
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - date
      - deadline_state
      - set_by
      - created_at
      title: DeadlineResponse
    FeedActionKind:
      type: string
      enum:
      - ping
      - open
      - reply
      - pause
      title: FeedActionKind
    FeedInteractionType:
      type: string
      enum:
      - click
      - dismiss
      - snooze
      title: FeedInteractionType
    ApprovalType:
      type: string
      enum:
      - all
      - any
      title: ApprovalType
    TimerResponse:
      properties:
        running:
          anyOf:
          - $ref: '#/components/schemas/TimeEntryResponse'
          - type: 'null'
        total_seconds:
          type: integer
          title: Total Seconds
      type: object
      required:
      - running
      - total_seconds
      title: TimerResponse
    PriorityLevel:
      type: string
      enum:
      - low
      - medium
      - high
      - critical
      title: PriorityLevel
    TagResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        name:
          type: string
          title: Name
        color:
          type: integer
          title: Color
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - name
      - color
      - created_at
      title: TagResponse
    FeedOverviewResponse:
      properties:
        id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Id
        headline:
          anyOf:
          - type: string
          - type: 'null'
          title: Headline
        body:
          type: string
          title: Body
        empty:
          type: boolean
          title: Empty
        actions:
          items:
            $ref: '#/components/schemas/SuggestedActionResponse'
          type: array
          title: Actions
        created_at:
          type: string
          format: date-time
          title: Created At
        previous_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Previous Id
        next_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Next Id
      type: object
      required:
      - body
      - empty
      - actions
      - created_at
      title: FeedOverviewResponse
    FeedInteractionItem:
      properties:
        item_type:
          $ref: '#/components/schemas/FeedItemType'
        subject_id:
          type: string
          format: uuid
          title: Subject Id
      type: object
      required:
      - item_type
      - subject_id
      title: FeedInteractionItem
  securitySchemes:
    HTTPBearer:
      type: http
      scheme: bearer