APIClaw roi calculator API

The roi calculator API from APIClaw — 7 operation(s) for roi calculator.

Operations 10

GET /roi-calculator/settings Get Roi Calculator Settings #
PUT /roi-calculator/settings Update Roi Calculator Settings #
GET /roi-calculator/repositories Get Roi Calculator Repositories #
GET /roi-calculator/sync Get Roi Calculator Sync Status #
POST /roi-calculator/sync Start Roi Calculator Sync #
DELETE /roi-calculator/sync Cancel Roi Calculator Sync #
GET /roi-calculator/report Get Roi Calculator Report #
PUT /roi-calculator/identity-map Update Roi Calculator Identity Map #
POST /roi-calculator/connections/test Test Roi Calculator Connections #
POST /roi-calculator/setup/reset Reset Roi Calculator Setup #

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/apiclaw:apiclaw-roi-calculator-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

apiclaw-roi-calculator-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: LiteLLM roi calculator API
  description: 'Proxy Server to call 100+ LLMs in the OpenAI format. **Customize Swagger Docs**


    👉 ```LiteLLM Admin Panel on /ui```. Create, Edit Keys with SSO. Having issues? Try ```Fallback Login```


    💸 ```LiteLLM Model Cost Map```.


    🔎 ```LiteLLM Model Hub```. See available models on the proxy. **Docs**'
  version: 1.105.1
tags:
- name: roi calculator
paths:
  /roi-calculator/settings:
    get:
      tags:
      - roi calculator
      summary: Get Roi Calculator Settings
      operationId: get_roi_calculator_settings_roi_calculator_settings_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROISettingsResponse'
      security:
      - APIKeyHeader: []
    put:
      tags:
      - roi calculator
      summary: Update Roi Calculator Settings
      operationId: update_roi_calculator_settings_roi_calculator_settings_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ROISettingsUpdate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROISettingsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
  /roi-calculator/repositories:
    get:
      tags:
      - roi calculator
      summary: Get Roi Calculator Repositories
      operationId: get_roi_calculator_repositories_roi_calculator_repositories_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: query
        in: query
        required: false
        schema:
          type: string
          maxLength: 200
          default: ''
          title: Query
      - name: page
        in: query
        required: false
        schema:
          type: integer
          maximum: 1000
          minimum: 1
          default: 1
          title: Page
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROIRepositoriesResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /roi-calculator/sync:
    get:
      tags:
      - roi calculator
      summary: Get Roi Calculator Sync Status
      operationId: get_roi_calculator_sync_status_roi_calculator_sync_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROISyncStatus'
      security:
      - APIKeyHeader: []
    post:
      tags:
      - roi calculator
      summary: Start Roi Calculator Sync
      operationId: start_roi_calculator_sync_roi_calculator_sync_post
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROISyncStatus'
      security:
      - APIKeyHeader: []
    delete:
      tags:
      - roi calculator
      summary: Cancel Roi Calculator Sync
      operationId: cancel_roi_calculator_sync_roi_calculator_sync_delete
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROISyncStatus'
      security:
      - APIKeyHeader: []
  /roi-calculator/report:
    get:
      tags:
      - roi calculator
      summary: Get Roi Calculator Report
      operationId: get_roi_calculator_report_roi_calculator_report_get
      security:
      - APIKeyHeader: []
      parameters:
      - name: mode
        in: query
        required: false
        schema:
          enum:
          - live
          - demo
          type: string
          default: live
          title: Mode
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROIReportResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /roi-calculator/identity-map:
    put:
      tags:
      - roi calculator
      summary: Update Roi Calculator Identity Map
      operationId: update_roi_calculator_identity_map_roi_calculator_identity_map_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ROIIdentityMapUpdate'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROIIdentityMapResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
      - APIKeyHeader: []
  /roi-calculator/connections/test:
    post:
      tags:
      - roi calculator
      summary: Test Roi Calculator Connections
      operationId: test_roi_calculator_connections_roi_calculator_connections_test_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROISettingsResponse'
      security:
      - APIKeyHeader: []
  /roi-calculator/setup/reset:
    post:
      tags:
      - roi calculator
      summary: Reset Roi Calculator Setup
      operationId: reset_roi_calculator_setup_roi_calculator_setup_reset_post
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ROISettingsResponse'
      security:
      - APIKeyHeader: []
components:
  schemas:
    ROIEstimateResponse:
      properties:
        status:
          type: string
          enum:
          - estimated
          - needs_review
          - error
          title: Status
        hours:
          anyOf:
          - type: number
          - type: 'null'
          title: Hours
        reasoning:
          type: string
          title: Reasoning
        model:
          anyOf:
          - type: string
          - type: 'null'
          title: Model
        evidence_source:
          anyOf:
          - type: string
          - type: 'null'
          title: Evidence Source
        effort_basis:
          anyOf:
          - type: string
          - type: 'null'
          title: Effort Basis
        cached:
          type: boolean
          title: Cached
          default: false
      type: object
      required:
      - status
      - hours
      - reasoning
      title: ROIEstimateResponse
    ROIReportResponse:
      properties:
        report:
          anyOf:
          - $ref: '#/components/schemas/ROISummaryResponse'
          - type: 'null'
      type: object
      required:
      - report
      title: ROIReportResponse
    ROIPullResponse:
      properties:
        repo:
          type: string
          title: Repo
        number:
          type: integer
          title: Number
        title:
          type: string
          title: Title
        url:
          type: string
          title: Url
        login:
          type: string
          title: Login
        emails:
          items:
            type: string
          type: array
          title: Emails
        profile_email:
          type: string
          title: Profile Email
        merged_at:
          type: string
          title: Merged At
        head_sha:
          type: string
          title: Head Sha
        additions:
          type: integer
          title: Additions
        deletions:
          type: integer
          title: Deletions
        changed_files:
          type: integer
          title: Changed Files
        commit_count:
          type: integer
          title: Commit Count
        incomplete_metadata:
          type: boolean
          title: Incomplete Metadata
        estimate:
          $ref: '#/components/schemas/ROIEstimateResponse'
        cache_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Cache Key
        email:
          type: string
          title: Email
        match_method:
          type: string
          title: Match Method
        matched:
          type: boolean
          title: Matched
      type: object
      required:
      - repo
      - number
      - title
      - url
      - login
      - emails
      - profile_email
      - merged_at
      - head_sha
      - additions
      - deletions
      - changed_files
      - commit_count
      - incomplete_metadata
      - estimate
      - email
      - match_method
      - matched
      title: ROIPullResponse
    ROISyncStatus:
      properties:
        running:
          type: boolean
          title: Running
        phase:
          type: string
          enum:
          - idle
          - spend
          - repositories
          - estimates
          - complete
          - cancelled
          - error
          title: Phase
        stage:
          type: string
          title: Stage
        done:
          type: integer
          title: Done
        total:
          type: integer
          title: Total
        estimated:
          type: integer
          title: Estimated
        reused:
          type: integer
          title: Reused
        needs_attention:
          type: integer
          title: Needs Attention
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        started_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Started At
        finished_at:
          anyOf:
          - type: string
          - type: 'null'
          title: Finished At
        next_update:
          anyOf:
          - type: string
          - type: 'null'
          title: Next Update
        elapsed_seconds:
          type: integer
          title: Elapsed Seconds
          default: 0
        remaining_seconds:
          anyOf:
          - type: integer
          - type: 'null'
          title: Remaining Seconds
      type: object
      required:
      - running
      - phase
      - stage
      - done
      - total
      - estimated
      - reused
      - needs_attention
      - error
      title: ROISyncStatus
    ROIIdentityMapUpdate:
      properties:
        github_login:
          type: string
          title: Github Login
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
      type: object
      required:
      - github_login
      - email
      title: ROIIdentityMapUpdate
    ROITrendResponse:
      properties:
        date:
          type: string
          title: Date
        spend:
          type: number
          title: Spend
        hours:
          type: number
          title: Hours
        prs:
          type: integer
          title: Prs
      type: object
      required:
      - date
      - spend
      - hours
      - prs
      title: ROITrendResponse
    ROIRepository:
      properties:
        name:
          type: string
          title: Name
        visibility:
          type: string
          title: Visibility
        archived:
          type: boolean
          title: Archived
      type: object
      required:
      - name
      - visibility
      - archived
      title: ROIRepository
    ROIRepositoriesResponse:
      properties:
        repositories:
          items:
            $ref: '#/components/schemas/ROIRepository'
          type: array
          title: Repositories
        page:
          type: integer
          title: Page
        has_more:
          type: boolean
          title: Has More
      type: object
      required:
      - repositories
      - page
      - has_more
      title: ROIRepositoriesResponse
    ROISettingsUpdate:
      properties:
        github_api_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Github Api Url
        github_token:
          anyOf:
          - type: string
          - type: 'null'
          title: Github Token
        estimator_key:
          anyOf:
          - type: string
          - type: 'null'
          title: Estimator Key
        repos:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Repos
        estimator_model:
          anyOf:
          - type: string
          - type: 'null'
          title: Estimator Model
        estimator_prompt:
          anyOf:
          - type: string
          - type: 'null'
          title: Estimator Prompt
        backfill_days:
          anyOf:
          - type: integer
            maximum: 3650.0
            minimum: 1.0
          - type: 'null'
          title: Backfill Days
        update_interval_minutes:
          anyOf:
          - type: number
            maximum: 43200.0
            minimum: 0.0
          - type: 'null'
          title: Update Interval Minutes
      additionalProperties: false
      type: object
      title: ROISettingsUpdate
    ROISettingsResponse:
      properties:
        github_api_url:
          type: string
          title: Github Api Url
        repos:
          items:
            type: string
          type: array
          title: Repos
        estimator_model:
          type: string
          title: Estimator Model
        estimator_prompt:
          type: string
          title: Estimator Prompt
        backfill_days:
          type: integer
          title: Backfill Days
        update_interval_minutes:
          type: number
          title: Update Interval Minutes
        has_estimator_key:
          type: boolean
          title: Has Estimator Key
        identity_map:
          additionalProperties:
            type: string
          type: object
          title: Identity Map
        has_github_token:
          type: boolean
          title: Has Github Token
        default_prompt:
          type: string
          title: Default Prompt
        available_models:
          items:
            type: string
          type: array
          title: Available Models
        ready:
          type: boolean
          title: Ready
      type: object
      required:
      - github_api_url
      - repos
      - estimator_model
      - estimator_prompt
      - backfill_days
      - update_interval_minutes
      - has_estimator_key
      - identity_map
      - has_github_token
      - default_prompt
      - available_models
      - ready
      title: ROISettingsResponse
    ROIPersonResponse:
      properties:
        id:
          type: string
          title: Id
        email:
          type: string
          title: Email
        logins:
          items:
            type: string
          type: array
          title: Logins
        spend:
          anyOf:
          - type: number
          - type: 'null'
          title: Spend
        hours:
          type: number
          title: Hours
        prs:
          type: integer
          title: Prs
        estimated_prs:
          type: integer
          title: Estimated Prs
        pending_prs:
          type: integer
          title: Pending Prs
        match_methods:
          items:
            type: string
          type: array
          title: Match Methods
        eligible:
          type: boolean
          title: Eligible
        cost_per_hour:
          anyOf:
          - type: number
          - type: 'null'
          title: Cost Per Hour
      type: object
      required:
      - id
      - email
      - logins
      - spend
      - hours
      - prs
      - estimated_prs
      - pending_prs
      - match_methods
      - eligible
      - cost_per_hour
      title: ROIPersonResponse
    ROIMetricsResponse:
      properties:
        matched_spend:
          type: number
          title: Matched Spend
        output_hours:
          type: number
          title: Output Hours
        total_spend:
          type: number
          title: Total Spend
        total_output_hours:
          type: number
          title: Total Output Hours
        excluded_spend:
          type: number
          title: Excluded Spend
        cost_per_hour:
          anyOf:
          - type: number
          - type: 'null'
          title: Cost Per Hour
        hours_per_dollar:
          anyOf:
          - type: number
          - type: 'null'
          title: Hours Per Dollar
        merged_prs:
          type: integer
          title: Merged Prs
        estimated_prs:
          type: integer
          title: Estimated Prs
        matched_prs:
          type: integer
          title: Matched Prs
        cohort_people:
          type: integer
          title: Cohort People
        people_with_prs:
          type: integer
          title: People With Prs
        pending_prs:
          type: integer
          title: Pending Prs
      type: object
      required:
      - matched_spend
      - output_hours
      - total_spend
      - total_output_hours
      - excluded_spend
      - cost_per_hour
      - hours_per_dollar
      - merged_prs
      - estimated_prs
      - matched_prs
      - cohort_people
      - people_with_prs
      - pending_prs
      title: ROIMetricsResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
        input:
          title: Input
        ctx:
          type: object
          title: Context
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ROIIdentityMapResponse:
      properties:
        report:
          anyOf:
          - $ref: '#/components/schemas/ROISummaryResponse'
          - type: 'null'
        identity_map:
          additionalProperties:
            type: string
          type: object
          title: Identity Map
      type: object
      required:
      - report
      - identity_map
      title: ROIIdentityMapResponse
    ROISummaryResponse:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
        mode:
          type: string
          title: Mode
        start:
          type: string
          title: Start
        end:
          type: string
          title: End
        synced_at:
          type: string
          title: Synced At
        repos:
          items:
            type: string
          type: array
          title: Repos
        estimator_model:
          type: string
          title: Estimator Model
        estimator_prompt:
          type: string
          title: Estimator Prompt
        warnings:
          items:
            type: string
          type: array
          title: Warnings
        effort_basis:
          anyOf:
          - type: string
          - type: 'null'
          title: Effort Basis
        metrics:
          $ref: '#/components/schemas/ROIMetricsResponse'
        people:
          items:
            $ref: '#/components/schemas/ROIPersonResponse'
          type: array
          title: People
        pulls:
          items:
            $ref: '#/components/schemas/ROIPullResponse'
          type: array
          title: Pulls
        trend:
          items:
            $ref: '#/components/schemas/ROITrendResponse'
          type: array
          title: Trend
      type: object
      required:
      - id
      - mode
      - start
      - end
      - synced_at
      - repos
      - estimator_model
      - estimator_prompt
      - warnings
      - effort_basis
      - metrics
      - people
      - pulls
      - trend
      title: ROISummaryResponse
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: Bearer token
      in: header
      name: x-litellm-api-key
    HTTPBearer:
      type: http
      scheme: bearer