Optilogic Utility API

A library of tools that solve specific problems

Operations 5

GET /secrets Get a list of stored secrets
GET /secret/{secretName} Get a stored secret by name
POST /secret/{secretName} Add a new secret
PUT /secret/{secretName} Change one or more fields on a stored secret
DELETE /secret/{secretName} Delete a secret

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/optilogic-utility-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

optilogic-utility-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  description: "All Optilogic users can view the endpoint documentation below, <a href='https://optilogic.app/#/user-account?tab=pricing'>upgrade to a paid account</a> to gain access.<br /><br />Once you have api access, use the `refreshApiKey` endpoint with your account login information or use the `Quick Start` form below to get started.\n### Installing Additional Python Packages <a id=\"installing-additional-python-packages\"></a>\nWhen a job is run - such as when using the **Job POST** endpoint - the system will check the directoryPath specified in the POST call for a file named `requirements.txt`. If the file exists, then the system will attempt to install all packages specified by running `pip install -r requirements.txt` before running the file specified in the filePath parameter.\n### Accessing your Files <a id=\"accessing-your-files\"></a>\nYour files are stored in the */projects* directory of the workspace. Files saved in this directory are available to your *Atlas* workspace and to REST API endpoints.\nAll directory paths passed as a *directoryPath*, *sourceDirectoryPath*, or *targetDirectoryPath* parameter are relative to the */projects* directory.\nThis means you must **not** include */projects* as part of the path string.\n\nExample:\n  - directoryPath = \"pyomo-examples/models/diet-problem\"\n  - filePath = \"diet-problem.py\"\n\nExample:\n  - directoryPath = \".\"\n  - filePath = \"my-model.py\"\n\n<br>\n\n## Example Application <a id=\"example-app\"></a>\n\n<a target=\"_blank\" href=\"https://optilogic.github.io/optiapp-web-demo/\">OptiJS Demo</a>\n\nThis demo application uses the OptiJS client library to run and monitor jobs from Python modules on a users' account. Custom applications can be quickly created on top of the Optilogic API using the <a target=\"_blank\" href=\"https://cdn.optilogic.app/web/optijs/api.js\">OptiJS</a> and <a target=\"_blank\" href=\"https://pypi.org/project/optilogic\">OptiPy</a> client libraries.\n\n\n<br>\n"
  version: 1.0.0
  title: Optilogic REST Utility API
  contact:
    name: Optilogic Support
    email: support@optilogic.com
servers:
- url: https://api.optilogic.app/v0
tags:
- name: utility
  description: A library of tools that solve specific problems
paths:
  /secrets:
    get:
      tags:
      - utility
      summary: Get a list of stored secrets
      description: ''
      parameters:
      - name: type
        in: query
        description: Only return secrets with the specified type
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretsList'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: Resource Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - APIKeyHeader: []
  /secret/{secretName}:
    get:
      tags:
      - utility
      summary: Get a stored secret by name
      description: ''
      parameters:
      - name: secretName
        in: path
        description: Name of the secret to get
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Secret'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: Resource Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - APIKeyHeader: []
    post:
      tags:
      - utility
      summary: Add a new secret
      description: ''
      parameters:
      - name: secretName
        in: path
        description: Name of the new secret
        required: true
        schema:
          type: string
      - name: type
        in: query
        description: Type of secret (eg. `geocode`, `custom`, `ssh`). Default value is `custom`
        required: false
        schema:
          type: string
          default: custom
      - name: value
        in: query
        description: Value of the secret - will be encrypted and not exposed when listing all secrets
        required: true
        schema:
          type: string
      - name: meta
        in: query
        description: Metadata and other custom data
        required: false
        schema:
          type: string
      - name: description
        in: query
        description: Description of the secret
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Secret'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: Resource Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - APIKeyHeader: []
    put:
      tags:
      - utility
      summary: Change one or more fields on a stored secret
      description: One of 'name', 'type', 'value', 'meta', or 'description' must be provided and only fields provided will be updated
      parameters:
      - name: secretName
        in: path
        description: Name of the secret to update
        required: true
        schema:
          type: string
      - name: name
        in: query
        description: New name for this secret
        required: false
        schema:
          type: string
      - name: type
        in: query
        description: New type of secret (eg. `geocode`, `custom`, `ssh`)
        required: false
        schema:
          type: string
      - name: value
        in: query
        description: New value of the secret - will be encrypted and not exposed when listing all secrets
        required: false
        schema:
          type: string
      - name: meta
        in: query
        description: new metadata and other custom data
        required: false
        schema:
          type: string
      - name: description
        in: query
        description: New description of the secret
        required: false
        schema:
          type: string
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Secret'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: Resource Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - APIKeyHeader: []
    delete:
      tags:
      - utility
      summary: Delete a secret
      description: ''
      parameters:
      - name: secretName
        in: path
        description: Name of the secret to delete
        required: true
        schema:
          type: string
      responses:
        '202':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SecretDelete'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden'
        '404':
          description: Resource Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
      security:
      - APIKeyHeader: []
components:
  schemas:
    Error:
      type: object
      properties:
        result:
          type: string
          format: string
        error:
          type: string
          format: string
        correlationId:
          type: string
          format: uuid
    Secret:
      type: object
      properties:
        result:
          type: string
        id:
          type: string
        name:
          type: string
        value:
          type: string
        meta:
          type: string
        description:
          type: string
        type:
          type: string
        created:
          type: string
    SecretsList:
      type: object
      properties:
        result:
          type: string
        count:
          type: integer
        secrets:
          type: array
          items:
            type: object
            properties:
              id:
                type: string
              name:
                type: string
              meta:
                type: string
              description:
                type: string
              type:
                type: string
              created:
                type: string
    Forbidden:
      type: object
      properties:
        result:
          type: string
          format: string
        error:
          type: string
          format: string
        message:
          type: string
          format: string
        correlationId:
          type: string
          format: uuid
    SecretDelete:
      type: object
      properties:
        result:
          type: string
        id:
          type: string
        name:
          type: string
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-API-KEY
externalDocs:
  description: Find out more about Optilogic
  url: https://optilogic.com