freqblog-com Utility API

The Utility API from freqblog-com — 1 operation(s) for utility.

Operations 1

GET /key/{camelot}/compatible Harmonically compatible keys for a Camelot value #

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/freqblog-com:freqblog-com-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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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

OpenAPI Specification

freqblog-com-utility-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Freqblog Com Utility API
  version: 1.5.0
  contact:
    name: FreqBlog
    url: https://freqblog.com/
    email: hello@freqblog.com
  license:
    name: Commercial — see freqblog.com/terms.html
    url: https://freqblog.com/terms.html
  description: 'Operations tagged Utility across 2 of this provider''s published API definitions: freqblog-com-openapi.json, freqblog-com-openapi1.json. Each path carries the servers of the definition it was published in.'
servers:
- url: https://api.freqblog.com
  description: Production
security:
- APIKeyHeader: []
tags:
- name: Utility
paths:
  /key/{camelot}/compatible:
    get:
      tags:
      - Utility
      summary: Harmonically compatible keys for a Camelot value
      description: 'Pure-logic helper — returns keys that mix harmonically with the input under the standard Camelot wheel rules. No catalog lookup, no quota cost.


        Always returns: `same`, `relative` (same number, opposite letter), `adjacent_up` (+1), `adjacent_down` (-1). With `extended=true` also returns `energy_boost` (+7) and `energy_drop` (-7) for DJ key-change moves.


        Each compatible key is returned in three notations: Camelot, Open Key, and human-readable.'
      operationId: key_compatible_endpoint_key__camelot__compatible_get
      parameters:
      - name: camelot
        in: path
        required: true
        schema:
          type: string
          minLength: 2
          maxLength: 3
          description: Camelot notation, e.g. `8A` or `12B`.
          title: Camelot
        description: Camelot notation, e.g. `8A` or `12B`.
      - name: extended
        in: query
        required: false
        schema:
          type: boolean
          description: Include `energy_boost` (+7) and `energy_drop` (-7) variants.
          default: false
          title: Extended
        description: Include `energy_boost` (+7) and `energy_drop` (-7) variants.
      responses:
        '200':
          description: Harmonically compatible keys
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CamelotCompatibleResponse'
        '400':
          description: Invalid Camelot value
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    servers:
    - url: https://api.freqblog.com
      description: Production
components:
  schemas:
    CamelotCompatibleResponse:
      properties:
        input_camelot:
          type: string
          title: Input Camelot
          description: Input Camelot notation as parsed.
          examples:
          - 8A
        input_key:
          type: string
          title: Input Key
          description: Input as a human-readable key.
          examples:
          - A-Minor
        compatible:
          items:
            $ref: '#/components/schemas/KeyVariant'
          type: array
          title: Compatible
          description: Keys that mix harmonically with the input. Always includes `same`, `relative`, `adjacent_up`, `adjacent_down`. With `extended=true` also includes `energy_boost` and `energy_drop`.
      type: object
      required:
      - input_camelot
      - input_key
      - compatible
      title: CamelotCompatibleResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    ErrorResponse:
      properties:
        detail:
          type: string
          title: Detail
        error_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Code
      type: object
      required:
      - detail
      title: ErrorResponse
      description: 'A JSON error. `detail` is for humans, `error_code` is for code.


        ⚠ Branch on `error_code`, never on `detail`. `detail` is prose we deliberately keep

        improving — five of these messages were reworded on 2026-08-13 alone — so matching on

        it is a breaking change waiting to happen. `error_code` is UPPER_SNAKE, always present

        on an error, and its meaning is frozen once shipped. Full registry: app/errors.py.'
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    KeyVariant:
      properties:
        camelot:
          type: string
          title: Camelot
          description: Camelot notation, e.g. `8A`.
          examples:
          - 8A
        open_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Open Key
          description: Open Key notation, e.g. `1m`.
          examples:
          - 1m
        key:
          type: string
          title: Key
          description: Human-readable key, e.g. `A-Minor`.
          examples:
          - A-Minor
        relation:
          type: string
          title: Relation
          description: 'How this key relates to the input. One of: `same` (same key), `relative` (same number, opposite letter — minor↔major), `adjacent_up` (one step clockwise on the wheel), `adjacent_down` (one step counterclockwise), `energy_boost` (+7 same letter — common DJ key change up), `energy_drop` (-7 same letter — key change down).'
          examples:
          - adjacent_up
      type: object
      required:
      - camelot
      - key
      - relation
      title: KeyVariant
      description: One harmonically compatible key, returned by `/key/{camelot}/compatible`.
    CamelotCompatibleResponse_2:
      properties:
        input_camelot:
          type: string
          title: Input Camelot
          description: Input Camelot notation as parsed.
          example: 8A
        input_key:
          type: string
          title: Input Key
          description: Input as a human-readable key.
          example: A-Minor
        compatible:
          items:
            $ref: '#/components/schemas/KeyVariant_2'
          type: array
          title: Compatible
          description: Keys that mix harmonically with the input. Always includes `same`, `relative`, `adjacent_up`, `adjacent_down`. With `extended=true` also includes `energy_boost` and `energy_drop`.
      type: object
      required:
      - input_camelot
      - input_key
      - compatible
      title: CamelotCompatibleResponse
    ErrorResponse_2:
      properties:
        detail:
          type: string
          title: Detail
        error_code:
          type:
          - string
          - 'null'
          title: Error Code
      type: object
      required:
      - detail
      title: ErrorResponse
      description: 'A JSON error. `detail` is for humans, `error_code` is for code.


        ⚠ Branch on `error_code`, never on `detail`. `detail` is prose we deliberately keep

        improving — five of these messages were reworded on 2026-08-13 alone — so matching on

        it is a breaking change waiting to happen. `error_code` is UPPER_SNAKE, always present

        on an error, and its meaning is frozen once shipped. Full registry: app/errors.py.'
    KeyVariant_2:
      properties:
        camelot:
          type: string
          title: Camelot
          description: Camelot notation, e.g. `8A`.
          example: 8A
        open_key:
          type:
          - string
          - 'null'
          title: Open Key
          description: Open Key notation, e.g. `1m`.
          example: 1m
        key:
          type: string
          title: Key
          description: Human-readable key, e.g. `A-Minor`.
          example: A-Minor
        relation:
          type: string
          title: Relation
          description: 'How this key relates to the input. One of: `same` (same key), `relative` (same number, opposite letter — minor↔major), `adjacent_up` (one step clockwise on the wheel), `adjacent_down` (one step counterclockwise), `energy_boost` (+7 same letter — common DJ key change up), `energy_drop` (-7 same letter — key change down).'
          example: adjacent_up
      type: object
      required:
      - camelot
      - key
      - relation
      title: KeyVariant
      description: One harmonically compatible key, returned by `/key/{camelot}/compatible`.
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      in: header
      name: X-Api-Key
x-refined-from:
- freqblog-com-openapi.json
- freqblog-com-openapi1.json