> ## Documentation Index
> Fetch the complete documentation index at: https://docs.nebyoulous.space/llms.txt
> Use this file to discover all available pages before exploring further.

# Publish an owned post.



## OpenAPI

````yaml /api-reference/openapi.json post /posts/{id}/publish
openapi: 3.0.3
info:
  title: Nebyoulous API
  description: >-
    REST API behind the Nebyoulous web app, CLI, and MCP server. Requests that
    act on your data need a bearer token.
  version: 0.0.0
servers:
  - url: https://api.nebyoulous.space
    description: Production
security: []
tags:
  - name: System
    description: Service health.
  - name: Account
    description: The signed-in user and their profile.
  - name: Integration sets
    description: Sets of frames for one target.
  - name: Uploads
    description: Presigned uploads into an integration set.
  - name: Assets
    description: Download, view, preview, and delete uploaded files.
  - name: Stacking and analysis
    description: >-
      Stack jobs, frame analysis, and frame QA. All run asynchronously: submit,
      then poll.
  - name: Exports
    description: Export an integration set as an archive.
  - name: Gear and rigs
    description: Equipment items and the rigs built from them.
  - name: Planner
    description: Nightly scores, saved locations, and sessions.
  - name: Catalog
    description: The deep-sky object catalog.
  - name: Light pollution
    description: Sky brightness for a location.
  - name: Posts
    description: Your drafts and published posts.
  - name: Public posts
    description: Published posts anyone can read.
  - name: Comments and annotations
    description: Threads and replies on published posts.
  - name: Mentions
    description: Mentions of you in comments.
  - name: Advisor usage
    description: Your advisor usage ledger.
paths:
  /posts/{id}/publish:
    post:
      tags:
        - Posts
      summary: Publish an owned post.
      parameters:
        - schema:
            type: string
            format: uuid
            pattern: >-
              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
          in: path
          name: id
          required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  post:
                    type: object
                    properties:
                      id:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      userId:
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      slug:
                        type: string
                      title:
                        type: string
                      description:
                        nullable: true
                        type: string
                      status:
                        type: string
                        enum:
                          - DRAFT
                          - PUBLISHED
                      targetName:
                        nullable: true
                        type: string
                      targetType:
                        nullable: true
                        type: string
                        enum:
                          - GALAXY
                          - NEBULA
                          - STAR_CLUSTER
                          - PLANETARY_NEBULA
                          - OTHER
                      captureDate:
                        nullable: true
                        type: string
                      bortle:
                        nullable: true
                        type: integer
                        minimum: -9007199254740991
                        maximum: 9007199254740991
                      finalImageAssetId:
                        nullable: true
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      finalThumbAssetId:
                        nullable: true
                        type: string
                        format: uuid
                        pattern: >-
                          ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                      publishedAt:
                        nullable: true
                        type: string
                      createdAt:
                        type: string
                      updatedAt:
                        type: string
                      finalImageAsset:
                        nullable: true
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          userId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          integrationSetId:
                            nullable: true
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          postId:
                            nullable: true
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          kind:
                            type: string
                            enum:
                              - INTEGRATION
                              - FINAL_IMAGE
                              - FINAL_THUMB
                              - STACK
                              - FRAME_THUMB
                          relativePath:
                            type: string
                          filename:
                            type: string
                          contentType:
                            type: string
                          sizeBytes:
                            type: number
                          s3Key:
                            type: string
                          status:
                            type: string
                            enum:
                              - PRESIGNED
                              - UPLOADED
                          checksum:
                            nullable: true
                            type: string
                          createdAt:
                            type: string
                          updatedAt:
                            type: string
                        required:
                          - id
                          - userId
                          - integrationSetId
                          - postId
                          - kind
                          - relativePath
                          - filename
                          - contentType
                          - sizeBytes
                          - s3Key
                          - status
                          - checksum
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                      finalThumbAsset:
                        nullable: true
                        type: object
                        properties:
                          id:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          userId:
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          integrationSetId:
                            nullable: true
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          postId:
                            nullable: true
                            type: string
                            format: uuid
                            pattern: >-
                              ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$
                          kind:
                            type: string
                            enum:
                              - INTEGRATION
                              - FINAL_IMAGE
                              - FINAL_THUMB
                              - STACK
                              - FRAME_THUMB
                          relativePath:
                            type: string
                          filename:
                            type: string
                          contentType:
                            type: string
                          sizeBytes:
                            type: number
                          s3Key:
                            type: string
                          status:
                            type: string
                            enum:
                              - PRESIGNED
                              - UPLOADED
                          checksum:
                            nullable: true
                            type: string
                          createdAt:
                            type: string
                          updatedAt:
                            type: string
                        required:
                          - id
                          - userId
                          - integrationSetId
                          - postId
                          - kind
                          - relativePath
                          - filename
                          - contentType
                          - sizeBytes
                          - s3Key
                          - status
                          - checksum
                          - createdAt
                          - updatedAt
                        additionalProperties: false
                    required:
                      - id
                      - userId
                      - slug
                      - title
                      - description
                      - status
                      - targetName
                      - targetType
                      - captureDate
                      - bortle
                      - finalImageAssetId
                      - finalThumbAssetId
                      - publishedAt
                      - createdAt
                      - updatedAt
                      - finalImageAsset
                      - finalThumbAsset
                    additionalProperties: false
                required:
                  - post
                additionalProperties: false
        '400':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: false
        '401':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: false
      security:
        - bearerAuth: []
components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        An access token issued by a Nebyoulous sign-in: the web session,
        `nebyoulous login`, or an MCP OAuth grant.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.