KonbiniAPI X API

Seven X (Twitter) endpoints covering public profiles, user post timelines, the Highlights tab, single posts, and X Communities including community metadata, posts and media — all as visible to a logged-out viewer. Shipped in v1.2.0 (May 2026), with Communities and timeline pagination added in v1.5.0 (August 2026).

OpenAPI Specification

konbiniapi-x-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Konbini X API
  version: 1.0.0
  description: 'Social media API that normalizes Instagram, TikTok, X, Reddit, and LinkedIn data into a consistent ActivityStreams 2.0 format.


    Every authenticated response includes `X-Credits-Remaining` and `X-Credits-Used` headers. Each successful request costs 1 credit. Requests that fail with 400, 5xx, or upstream errors are refunded (X-Credits-Used: 0).'
  contact:
    name: KonbiniAPI
    email: hello@konbiniapi.com
    url: https://konbiniapi.com
servers:
- url: https://api.konbiniapi.com
  description: Production
security:
- apiKey: []
tags:
- name: X
  description: X (Twitter) data endpoints
paths:
  /v1/x/users/{username}:
    get:
      operationId: xGetUser
      tags:
      - X
      summary: Get user profile
      description: Returns profile information for a public X account including bio, follower counts, verification flags, and profile images.
      parameters:
      - schema:
          type: string
          description: X username (with or without @ symbol)
          example: Austen
        required: true
        description: X username (with or without @ symbol)
        name: username
        in: path
      responses:
        '200':
          description: Returns the X user profile
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      '@context':
                        type: array
                        prefixItems:
                        - type: string
                          enum:
                          - https://www.w3.org/ns/activitystreams#
                        - type: string
                          enum:
                          - https://konbiniapi.com/ns/social#
                        description: ActivityStreams JSON-LD context
                        example:
                        - https://www.w3.org/ns/activitystreams#
                        - https://konbiniapi.com/ns/social#
                      type:
                        type: string
                        description: ActivityStreams object type
                        example: Person
                      id:
                        type: string
                        format: uri
                        description: Profile URL
                        example: https://x.com/KhabyLame
                      url:
                        type: string
                        format: uri
                        description: Profile URL
                        example: https://x.com/KhabyLame
                      entityId:
                        type: string
                        description: X user ID
                        example: '1379925457689268227'
                      name:
                        type: string
                        description: Display name
                        example: Khaby lame
                      preferredUsername:
                        type: string
                        description: Username or handle
                        example: KhabyLame
                      summary:
                        type: string
                        description: Bio text
                        example: Let's Go
                      attachment:
                        type: array
                        items:
                          $ref: '#/components/schemas/XLink'
                        description: Profile links
                      published:
                        type: string
                        format: date-time
                        description: Account creation date in ISO 8601 format
                        example: '2010-12-01T19:13:23.000Z'
                      isPrivate:
                        type: boolean
                        description: Whether account is protected
                        example: false
                      isVerified:
                        type: boolean
                        description: Whether account has legacy verification
                        example: false
                      isPaidVerified:
                        type: boolean
                        description: Whether account has X Premium verification
                        example: true
                      followerCount:
                        type: integer
                        description: Number of followers
                        example: 372131
                      followingCount:
                        type: integer
                        description: Number of accounts followed
                        example: 8
                      likeCount:
                        type: integer
                        description: Number of likes made by the user
                        example: 60
                      postCount:
                        type: integer
                        description: Number of public posts
                        example: 267
                      mediaCount:
                        type: integer
                        description: Number of media posts
                        example: 242
                      listedCount:
                        type: integer
                        description: Number of public X Lists the account appears in
                        example: 215
                      location:
                        type: string
                        description: User location
                        example: Chivasso, Italy
                      icon:
                        $ref: '#/components/schemas/XImage'
                      image:
                        type: array
                        items:
                          allOf:
                          - $ref: '#/components/schemas/XImage'
                          - description: Image resource with optional dimensions
                        description: Banner image and other non-avatar profile images
                    required:
                    - '@context'
                    - type
                    - id
                    - url
                    - entityId
                    - name
                    - preferredUsername
                    - isPrivate
                    - isVerified
                    - isPaidVerified
                    - followerCount
                    - followingCount
                    - likeCount
                    - postCount
                    - mediaCount
                required:
                - data
        '400':
          description: Bad Request — Invalid parameters
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - validation_error
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Validation error
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '401':
          description: Unauthorized — Missing or invalid API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - missing_api_key
                          - invalid_api_key
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Invalid API key
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '402':
          description: Payment Required — Credits exhausted
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - credits_exhausted
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Credits exhausted. Upgrade your plan at konbiniapi.com
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '403':
          description: Forbidden — API key disabled or expired
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - api_key_disabled
                          - api_key_expired
                          description: Machine-readable error code
                        message:
                          type: string
                          example: API key is disabled
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '404':
          description: Not Found
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - not_found
                          - route_not_found
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Not found
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '413':
          description: Content Too Large — Request body exceeds 1 MB
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - validation_error
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Request body too large
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '500':
          description: Internal Server Error
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - internal_error
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Internal error
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '502':
          description: Bad Gateway — Upstream platform error
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - platform_error
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Platform error
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '503':
          description: Service Unavailable
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - service_unavailable
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Service unavailable
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '504':
          description: Gateway Timeout — Upstream platform timed out
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - platform_error
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Platform error
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
  /v1/x/users/{username}/posts:
    get:
      operationId: xGetUserPosts
      tags:
      - X
      summary: Get user posts
      description: 'Returns public posts from a user''s profile as visible to not logged in users. This feed is not guaranteed to be chronological and is often a ranked public selection. Pages may overlap: a pinned post is repeated on every page, so deduplicate by id when paging.'
      parameters:
      - schema:
          type: string
          description: X username (with or without @ symbol)
          example: Austen
        required: true
        description: X username (with or without @ symbol)
        name: username
        in: path
      - schema:
          type: string
          description: Pagination cursor
          example: '0'
        required: false
        description: Pagination cursor
        name: cursor
        in: query
      responses:
        '200':
          description: Returns public posts from an X user profile
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  data:
                    type: object
                    properties:
                      '@context':
                        type: array
                        prefixItems:
                        - type: string
                          enum:
                          - https://www.w3.org/ns/activitystreams#
                        - type: string
                          enum:
                          - https://konbiniapi.com/ns/social#
                        description: ActivityStreams JSON-LD context
                        example:
                        - https://www.w3.org/ns/activitystreams#
                        - https://konbiniapi.com/ns/social#
                      type:
                        type: string
                        description: ActivityStreams collection type
                        example: OrderedCollectionPage
                      partOf:
                        type: string
                        format: uri
                        description: URL of the full collection
                        example: https://api.konbiniapi.com/v1/x/users/KhabyLame/posts
                      totalItems:
                        type:
                        - integer
                        - 'null'
                        description: Total number of items, null if unknown
                        example: null
                      cursor:
                        type:
                        - string
                        - 'null'
                        description: Current page cursor, null on first page
                        example: null
                      nextCursor:
                        type:
                        - string
                        - 'null'
                        description: Cursor for the next page, null on last page
                        example: DAABCgABHOkX2xF__-8LAAIAAAATMj
                      next:
                        type:
                        - string
                        - 'null'
                        format: uri
                        description: URL for the next page, null on last page
                        example: https://api.konbiniapi.com/v1/x/users/KhabyLame/posts?cursor=DAABCgABHOkX2xF__-8LAAIAAAATMj
                      itemCount:
                        type: integer
                        description: Number of items returned in this page
                        example: 30
                      orderedItems:
                        type: array
                        items:
                          $ref: '#/components/schemas/XPost'
                        description: Items in this page
                    required:
                    - '@context'
                    - type
                    - partOf
                    - totalItems
                    - cursor
                    - nextCursor
                    - next
                    - itemCount
                    - orderedItems
                required:
                - data
        '400':
          description: Bad Request — Invalid parameters
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - validation_error
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Validation error
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '401':
          description: Unauthorized — Missing or invalid API key
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - missing_api_key
                          - invalid_api_key
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Invalid API key
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '402':
          description: Payment Required — Credits exhausted
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - credits_exhausted
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Credits exhausted. Upgrade your plan at konbiniapi.com
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '403':
          description: Forbidden — API key disabled or expired
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - api_key_disabled
                          - api_key_expired
                          description: Machine-readable error code
                        message:
                          type: string
                          example: API key is disabled
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '404':
          description: Not Found
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - not_found
                          - route_not_found
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Not found
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '413':
          description: Content Too Large — Request body exceeds 1 MB
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - validation_error
                          description: Machine-readable error code
                        message:
                          type: string
                          example: Request body too large
                          description: Human-readable error message
                      required:
                      - code
                      - message
                    description: List of errors
                  data:
                    type: 'null'
                    description: Always null for error responses
                required:
                - errors
                - data
        '500':
          description: Internal Server Error
          headers:
            X-Credits-Remaining:
              schema:
                type: integer
              description: Credits remaining after this request
            X-Credits-Used:
              schema:
                type: integer
              description: Credits consumed (1 if charged, 0 if refunded on error)
          content:
            application/json:
              schema:
                type: object
                properties:
                  errors:
                    type: array
                    items:
                      type: object
                      properties:
                        code:
                          type: string
                          enum:
                          - internal_error
                          d

# --- truncated at 32 KB (139 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/konbiniapi/refs/heads/main/openapi/konbiniapi-x-api-openapi.yml