> ## 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.

# Get a published public post by slug.



## OpenAPI

````yaml /api-reference/openapi.json get /public/posts/{slug}
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:
  /public/posts/{slug}:
    get:
      tags:
        - Public posts
      summary: Get a published public post by slug.
      parameters:
        - schema:
            type: string
            minLength: 1
          in: path
          name: slug
          required: true
      responses:
        '200':
          description: Default Response
          content:
            application/json:
              schema:
                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
                  postIntegrationLinks:
                    type: array
                    items:
                      type: object
                      properties:
                        integrationSet:
                          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)$
                            title:
                              type: string
                            notes:
                              nullable: true
                              type: string
                            inventorySummary:
                              type: object
                              properties:
                                totalFiles:
                                  type: integer
                                  minimum: -9007199254740991
                                  maximum: 9007199254740991
                                totalBytes:
                                  type: number
                                byFolder:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      folder:
                                        type: string
                                      fileCount:
                                        type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      totalBytes:
                                        type: number
                                      topExtensions:
                                        type: array
                                        items:
                                          type: string
                                    required:
                                      - folder
                                      - fileCount
                                      - totalBytes
                                      - topExtensions
                                    additionalProperties: false
                                byType:
                                  type: array
                                  items:
                                    type: object
                                    properties:
                                      label:
                                        type: string
                                      fileCount:
                                        type: integer
                                        minimum: -9007199254740991
                                        maximum: 9007199254740991
                                      totalBytes:
                                        type: number
                                    required:
                                      - label
                                      - fileCount
                                      - totalBytes
                                    additionalProperties: false
                              required:
                                - totalFiles
                                - totalBytes
                                - byFolder
                                - byType
                              additionalProperties: false
                          required:
                            - id
                            - title
                            - notes
                            - inventorySummary
                          additionalProperties: false
                      required:
                        - integrationSet
                      additionalProperties: false
                required:
                  - id
                  - userId
                  - slug
                  - title
                  - description
                  - status
                  - targetName
                  - targetType
                  - captureDate
                  - bortle
                  - finalImageAssetId
                  - finalThumbAssetId
                  - publishedAt
                  - createdAt
                  - updatedAt
                  - finalImageAsset
                  - finalThumbAsset
                  - postIntegrationLinks
                additionalProperties: false
        '404':
          description: Default Response
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                  message:
                    type: string
                required:
                  - code
                  - message
                additionalProperties: false

````

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