kokofinance-net International API

The International API from kokofinance-net — 4 operation(s) for international.

Operations 4

GET /api/v1/{country}/cards/ Market List Cards #
GET /api/v1/{country}/cards/{card_id} Market Get Card Detail #
POST /api/v1/{country}/cards/search Market Search Cards #
POST /api/v1/{country}/cards/compare Market Compare Cards #

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/kokofinance-net:kokofinance-net-international-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

kokofinance-net-international-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Koko Finance International API
  description: Credit card portfolio intelligence — analyze portfolios, compare cards, get recommendations, and check renewal value.
  version: 1.0.0
tags:
- name: International
paths:
  /api/v1/{country}/cards/:
    get:
      tags:
      - International
      summary: Market List Cards
      description: 'List credit cards available in this market.


        Same data as GET /api/v1/cards/?country={country} but with the market

        in the URL path for clearer API organization.'
      operationId: market_list_cards_api_v1__country__cards__get
      security:
      - APIKeyHeader: []
      parameters:
      - name: country
        in: path
        required: true
        schema:
          type: string
          description: ISO 3166-1 alpha-2 country code (e.g. 'gb', 'us')
          title: Country
        description: ISO 3166-1 alpha-2 country code (e.g. 'gb', 'us')
      - name: q
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Fuzzy search across card name, issuer, and best_for
          title: Q
        description: Fuzzy search across card name, issuer, and best_for
      - name: issuer
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by issuer (e.g. 'HSBC')
          title: Issuer
        description: Filter by issuer (e.g. 'HSBC')
      - name: card_type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by card type (e.g. 'Travel Rewards')
          title: Card Type
        description: Filter by card type (e.g. 'Travel Rewards')
      - name: tag
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by tag (e.g. 'no_foreign_fee')
          title: Tag
        description: Filter by tag (e.g. 'no_foreign_fee')
      - name: max_annual_fee
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Maximum annual fee
          title: Max Annual Fee
        description: Maximum annual fee
      - name: network
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter by network (Visa, Mastercard, Amex)
          title: Network
        description: Filter by network (Visa, Mastercard, Amex)
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Offset for pagination
          default: 0
          title: Offset
        description: Offset for pagination
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Results per page (max 100)
          default: 20
          title: Limit
        description: Results per page (max 100)
      - name: sort_by
        in: query
        required: false
        schema:
          type: string
          pattern: ^(card_name|annual_fee|issuer)$
          description: Sort field
          default: card_name
          title: Sort By
        description: Sort field
      - name: sort_order
        in: query
        required: false
        schema:
          type: string
          pattern: ^(asc|desc)$
          description: Sort direction
          default: asc
          title: Sort Order
        description: Sort direction
      - name: cursor
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Opaque cursor for pagination
          title: Cursor
        description: Opaque cursor for pagination
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/{country}/cards/{card_id}:
    get:
      tags:
      - International
      summary: Market Get Card Detail
      description: 'Get the full enriched card object for a card in this market.


        Card ID is globally unique. The market prefix organizes the API

        so international developers see only relevant endpoints.'
      operationId: market_get_card_detail_api_v1__country__cards__card_id__get
      security:
      - APIKeyHeader: []
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: integer
          title: Card Id
      - name: country
        in: path
        required: true
        schema:
          type: string
          description: ISO 3166-1 alpha-2 country code
          title: Country
        description: ISO 3166-1 alpha-2 country code
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/{country}/cards/search:
    post:
      tags:
      - International
      summary: Market Search Cards
      description: 'Search for credit cards in this market.


        Same as POST /api/v1/cards/search but the market is specified in the

        URL path. The country field in the request body is overridden by the

        path value.'
      operationId: market_search_cards_api_v1__country__cards_search_post
      security:
      - APIKeyHeader: []
      parameters:
      - name: country
        in: path
        required: true
        schema:
          type: string
          description: ISO 3166-1 alpha-2 country code
          title: Country
        description: ISO 3166-1 alpha-2 country code
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V1CardSearchRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/{country}/cards/compare:
    post:
      tags:
      - International
      summary: Market Compare Cards
      description: 'Compare credit cards side-by-side in this market.


        Cards are looked up within the specified market. Fast mode returns

        deterministic value calculations; verbose mode includes AI narrative.'
      operationId: market_compare_cards_api_v1__country__cards_compare_post
      security:
      - APIKeyHeader: []
      parameters:
      - name: country
        in: path
        required: true
        schema:
          type: string
          description: ISO 3166-1 alpha-2 country code
          title: Country
        description: ISO 3166-1 alpha-2 country code
      - name: mode
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ResponseMode'
          description: fast=deterministic <100ms, verbose=AI narrative 3-5s
          default: fast
        description: fast=deterministic <100ms, verbose=AI narrative 3-5s
      - name: authorization
        in: header
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Authorization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V1CompareRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/APIResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    V1CompareRequest:
      properties:
        card_names:
          items:
            type: string
          type: array
          maxItems: 3
          minItems: 2
          title: Card Names
          description: 2-3 card names to compare
        params:
          anyOf:
          - $ref: '#/components/schemas/ClientParameters'
          - type: 'null'
          description: Optional spending and preference parameters
        country:
          anyOf:
          - type: string
          - type: 'null'
          title: Country
          description: ISO 3166-1 alpha-2 country code (e.g. 'US', 'GB'). Scopes card lookup to that market.
      type: object
      required:
      - card_names
      title: V1CompareRequest
      description: Request for POST /api/v1/intelligence/compare
      example:
        card_names:
        - Chase Sapphire Preferred
        - Capital One Venture X
        params:
          primary_goal: travel
          spending:
            dining: 400
            groceries: 300
            travel: 500
    APIResponse:
      properties:
        success:
          type: boolean
          title: Success
        data:
          title: Data
        metadata:
          $ref: '#/components/schemas/APIMetadata'
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
      type: object
      required:
      - success
      - data
      title: APIResponse
    SpendingInput:
      properties:
        groceries:
          anyOf:
          - type: number
          - type: 'null'
          title: Groceries
          description: Monthly grocery spend
          example: 600
        dining:
          anyOf:
          - type: number
          - type: 'null'
          title: Dining
          description: Monthly dining/restaurant spend
          example: 400
        travel:
          anyOf:
          - type: number
          - type: 'null'
          title: Travel
          description: Monthly travel spend
          example: 200
        gas:
          anyOf:
          - type: number
          - type: 'null'
          title: Gas
          description: Monthly gas/fuel spend
          example: 150
        streaming:
          anyOf:
          - type: number
          - type: 'null'
          title: Streaming
          description: Monthly streaming services spend
          example: 45
        shopping:
          anyOf:
          - type: number
          - type: 'null'
          title: Shopping
          description: Monthly general shopping spend
          example: 300
        other:
          anyOf:
          - type: number
          - type: 'null'
          title: Other
          description: Monthly other spend
          example: 200
        total_monthly:
          anyOf:
          - type: number
          - type: 'null'
          title: Total Monthly
          description: Total monthly spend override
          example: 1895
      type: object
      title: SpendingInput
      description: Monthly spending by category (dollars)
    ClientParameters:
      properties:
        issuer_preferences:
          anyOf:
          - items:
              $ref: '#/components/schemas/IssuerPreference'
            type: array
          - type: 'null'
          title: Issuer Preferences
        credit_tier:
          anyOf:
          - type: string
            pattern: ^(poor|fair|good|excellent)$
          - type: 'null'
          title: Credit Tier
        spending:
          anyOf:
          - $ref: '#/components/schemas/SpendingInput'
          - type: 'null'
        point_balances:
          anyOf:
          - items:
              $ref: '#/components/schemas/InlinePointBalance'
            type: array
          - type: 'null'
          title: Point Balances
          description: Point/miles balances for enrichment. API consumers provide these per-request.
        primary_goal:
          anyOf:
          - type: string
            pattern: ^(travel|cashback|build_credit|business|balance_transfer)$
          - type: 'null'
          title: Primary Goal
        benefit_selections:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Benefit Selections
          description: 'Individual benefit keys the user actually uses. Selected benefits count at 100%, unselected at 0%. If omitted, all benefits use the default 50% utilization. Common keys: uber, dining, travel, airline_fee, hotel_fhr, saks, clear_plus, digital_entertainment, admirals_club, global_entry, lyft, grubhub. Use GET /api/v1/benefit-categories for the full registry.'
        benefit_categories_used:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Benefit Categories Used
          description: 'Standard benefit categories the user uses (alternative to benefit_selections). Each category maps to one or more individual benefit keys. Valid values: dining_credit, travel_credit, hotel_credit, lounge_access, shopping_credit, entertainment_credit, business_credit, loyalty_bonus, other. Note: benefit_selections provides finer control.'
        renewal_cancel_threshold:
          anyOf:
          - type: number
          - type: 'null'
          title: Renewal Cancel Threshold
          description: 'Net value below this → CANCEL_AND_REPLACE. Default: -100'
        renewal_keep_threshold:
          anyOf:
          - type: number
          - type: 'null'
          title: Renewal Keep Threshold
          description: 'Net value at or above this → RENEW. Default: 50'
      type: object
      title: ClientParameters
      description: 'Configurable parameters for B2B API consumption.


        These parameters allow API clients (issuers, fintechs) to customize

        KoKo''s analysis for their use case without changing core logic.'
      example:
        benefit_selections:
        - uber
        - dining
        - travel
        - admirals_club
        credit_tier: excellent
        primary_goal: travel
        spending:
          dining: 500
          gas: 100
          groceries: 400
          other: 150
          shopping: 200
          streaming: 30
          travel: 300
    IssuerPreference:
      properties:
        issuer:
          type: string
          title: Issuer
          description: Card issuer name
          example: Chase
        weight:
          type: number
          maximum: 3.0
          minimum: 0.1
          title: Weight
          description: 1.0 = neutral, >1.0 = boost, <1.0 = de-boost
          default: 1.0
          example: 1.5
      type: object
      required:
      - issuer
      title: IssuerPreference
      description: Boost or de-boost a specific issuer in recommendations
    InlinePointBalance:
      properties:
        program:
          type: string
          title: Program
          description: Program key
          example: chase_ur
        balance:
          type: integer
          title: Balance
          description: Point/miles balance
          example: 70000
      type: object
      required:
      - program
      - balance
      title: InlinePointBalance
      description: Point balance provided inline by API consumers (per-request, not stored)
    ResponseMode:
      type: string
      enum:
      - fast
      - verbose
      title: ResponseMode
      description: Response mode for intelligence endpoints.
    APIMetadata:
      properties:
        request_id:
          type: string
          title: Request Id
        api_version:
          type: string
          title: Api Version
          default: v1
        latency_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Latency Ms
        mode:
          anyOf:
          - type: string
          - type: 'null'
          title: Mode
          description: 'Endpoint mode: ''fast'' (deterministic, <100ms) or ''verbose'' (includes AI narrative, 3-5s)'
        timestamp:
          type: string
          title: Timestamp
      type: object
      title: APIMetadata
    V1CardSearchRequest:
      properties:
        card_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Card Type
          description: 'Card type filter: travel, cashback, balance_transfer, business, student, hotel, airline'
        max_annual_fee:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Annual Fee
          description: Maximum annual fee in dollars (e.g. 200). Omit for no limit.
        issuer:
          anyOf:
          - type: string
          - type: 'null'
          title: Issuer
          description: Filter by issuer (e.g. 'Chase', 'American Express', 'Capital One')
        spending:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Spending
          description: 'Monthly spending by category for ranking (e.g. {"dining": 500, "travel": 300})'
        max_results:
          anyOf:
          - type: integer
            maximum: 20.0
            minimum: 1.0
          - type: 'null'
          title: Max Results
          description: Maximum number of results (1-20, default 5)
          default: 5
        country:
          anyOf:
          - type: string
          - type: 'null'
          title: Country
          description: ISO 3166-1 alpha-2 country code (e.g. 'US', 'GB'). Defaults to 'US'.
      type: object
      title: V1CardSearchRequest
      description: Request for POST /search
      example:
        card_type: travel
        country: US
        max_annual_fee: 300
        max_results: 5
        spending:
          dining: 500
          groceries: 300
          travel: 400
    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
  securitySchemes:
    APIKeyHeader:
      type: apiKey
      description: 'Your Koko API key (format: koko_xxxxx)'
      in: header
      name: X-API-Key