> ## 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 post by slug for owner editing.



## OpenAPI

````yaml /api-reference/openapi.json get /posts/by-slug/{slug}/edit
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/by-slug/{slug}/edit:
    get:
      tags:
        - Posts
      summary: Get a post by slug for owner editing.
      parameters:
        - schema:
            type: string
            minLength: 1
          in: path
          name: slug
          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
                      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
                  linkedIntegrationSets:
                    type: array
                    items:
                      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
                  gearBySetId:
                    type: object
                    additionalProperties:
                      type: array
                      items:
                        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)$
                          name:
                            type: string
                          description:
                            nullable: true
                            type: string
                          isPrimary:
                            type: boolean
                          members:
                            type: array
                            items:
                              type: object
                              properties:
                                gearItemId:
                                  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)$
                                role:
                                  nullable: true
                                  type: string
                                category:
                                  type: string
                                  enum:
                                    - CAMERA
                                    - TELESCOPE
                                    - MOUNT
                                    - GUIDER
                                    - FILTER
                                    - ACCESSORY
                                    - SOFTWARE
                                    - OTHER
                                manufacturer:
                                  type: string
                                model:
                                  type: string
                                notes:
                                  nullable: true
                                  type: string
                              required:
                                - gearItemId
                                - role
                                - category
                                - manufacturer
                                - model
                                - notes
                              additionalProperties: false
                        required:
                          - id
                          - name
                          - description
                          - isPrimary
                          - members
                        additionalProperties: false
                required:
                  - post
                  - linkedIntegrationSets
                  - gearBySetId
                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.