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

# Submit a Community Script

> Submits a new script to the community repository by providing a URL to a raw `.rsc` file on GitHub. The system will then fetch the script content and associated repository metadata.



## OpenAPI

````yaml /api/en/scripts.yaml post /scripts/community-scripts
openapi: 3.0.3
info:
  title: Altostrat Scripts API
  version: 1.0.0
  description: >-
    The Altostrat Scripts API is the microservice responsible for creating,
    managing, and executing MikroTik RouterOS scripts across your network
    infrastructure.


    It serves as the core automation engine within the Altostrat SDX platform,
    empowering developers to programmatically deploy configuration changes,
    perform operational tasks, and leverage AI for script generation. This API
    is the foundation for network automation and agentic AI capabilities.


    This API allows you to programmatically manage:

    - **Scheduled Scripts:** The primary resource for defining a script, its
    target devices, and a future execution time, complete with authorization
    workflows and progress tracking.

    - **Script Templates:** Reusable, version-controlled script blueprints that
    can be either private to an organization or shared globally to enforce
    standardization and best practices.

    - **Community Scripts:** A curated and searchable library of publicly
    available RouterOS scripts sourced from GitHub, providing ready-to-use
    solutions for common networking tasks.

    - **AI Script Generation:** An agentic AI endpoint that translates natural
    language prompts into functional and safe MikroTik RouterOS scripts.


    Developers use this API to build powerful, scalable, and intelligent network
    automation workflows for their fleet of MikroTik devices.
servers:
  - url: https://v1.api.altostrat.io
security:
  - BearerAuth:
      - script:view
      - script:create
      - script:update
      - script:delete
      - script:run
      - script:authorize
tags:
  - name: Scheduled Scripts
    description: >-
      Manage the lifecycle of scripts scheduled for execution on network
      devices.
  - name: Script Templates
    description: Create and manage reusable script templates for standardization.
  - name: Community Scripts
    description: Discover and utilize scripts from the public community repository.
  - name: AI Script Generation
    description: Generate MikroTik scripts from natural language prompts.
paths:
  /scripts/community-scripts:
    post:
      tags:
        - Community Scripts
      summary: Submit a Community Script
      description: >-
        Submits a new script to the community repository by providing a URL to a
        raw `.rsc` file on GitHub. The system will then fetch the script content
        and associated repository metadata.
      operationId: createCommunityScript
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - github_url
              properties:
                github_url:
                  type: string
                  format: uri
                  description: The direct raw URL to the `.rsc` file on GitHub.
                  example: >-
                    https://raw.githubusercontent.com/user/repo/main/path/to/script.rsc
                readme_url:
                  type: string
                  format: uri
                  description: >-
                    An optional direct raw URL to a corresponding markdown
                    README file.
                  example: >-
                    https://raw.githubusercontent.com/user/repo/main/path/to/README.md
      responses:
        '201':
          description: The script was submitted successfully and is being processed.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '422':
          $ref: '#/components/responses/UnprocessableEntity'
        '500':
          $ref: '#/components/responses/InternalServerError'
components:
  responses:
    BadRequest:
      description: Bad Request - The request was malformed or invalid.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    Unauthorized:
      description: >-
        Unauthorized - The request requires authentication and a valid Bearer
        token was not provided.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    UnprocessableEntity:
      description: >-
        Unprocessable Entity - The request was well-formed but was unable to be
        followed due to semantic errors (e.g., validation failure).
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
    InternalServerError:
      description: Internal Server Error - An unexpected error occurred on the server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorResponse'
  schemas:
    ErrorResponse:
      type: object
      properties:
        type:
          type: string
          description: A broad category for the error (e.g., 'invalid_request_error').
          example: invalid_request_error
        code:
          type: string
          description: A short, unique string identifying the specific error.
          example: parameter_missing
        message:
          type: string
          description: A human-readable description of what went wrong.
          example: The 'name' parameter is required for this request.
        doc_url:
          type: string
          description: >-
            A direct link to the documentation page for this specific error
            code.
          example: https://docs.altostrat.io/errors/parameter_missing
  securitySchemes:
    BearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: >-
        Altostrat SDX API uses JWT Bearer tokens for authentication. Obtain a
        token via the Authentication API and include it in the Authorization
        header as 'Bearer {token}'.

````