CodeCombat Default API

The Default API from CodeCombat — 1 operation(s) for default.

Operations 1

POST users/{handle}/o-auth-identities Add Oauth2 Identity #

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/codecombat-default-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

codecombat-default-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: CodeCombat Auth API
  version: '1.0'
servers:
- url: https://codecombat.com/api
  description: default
tags:
- name: ''
paths:
  users/{handle}/o-auth-identities:
    post:
      description: 'Adds an OAuth2 identity to the user, so that they can be logged in with that identity. You need to send the OAuth code or the access token to this endpoint. 1. If no access token is provided, it will use your OAuth2 token URL to exchange the given code for an access token. 2. Then it will use the access token (given by you, or received from step 1) to look up the user on your service using the lookup URL, and expects a JSON object in response with an `id` property. 3. It will then save that user `id` to the user in our db as a new OAuthIdentity. In this example, we call your lookup URL (let''s say, `https://oauth.provider/user?t=<%= accessToken %>`) with the access token (`1234`). The lookup URL returns `{ id: ''abcd'' }` in this case, which we save to the user in our db.

        '
      operationId: Service.postUsersHandleOAuthIdentities
      tags:
      - ''
      parameters:
      - name: handle
        in: path
        description: The document's `_id` or `slug`.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: The affected user
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserResponse'
      summary: Add Oauth2 Identity
      security:
      - BasicAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                provider:
                  type: string
                  description: Your OAuth Provider ID.
                accessToken:
                  type: string
                  description: Will be passed through your lookup URL to get the user ID. Required if no `code`.
                code:
                  type: string
                  description: Will be passed to the OAuth token endpoint to get a token. Required if no `accessToken`.
              required:
              - provider
components:
  schemas:
    roleString:
      type: string
      description: Usually either 'teacher' or 'student'
    UserResponseOAuthIdentitiesItem:
      type: object
      properties:
        provider:
          type: string
        id:
          type: string
    objectIdString:
      type: string
    UserResponseLicense:
      type: object
      properties:
        ends:
          $ref: '#/components/schemas/datetimeString'
        active:
          type: boolean
    UserResponse:
      type: object
      description: Subset of properties listed here
      properties:
        _id:
          $ref: '#/components/schemas/objectIdString'
        email:
          type: string
        name:
          type: string
        slug:
          type: string
        role:
          $ref: '#/components/schemas/roleString'
        stats:
          $ref: '#/components/schemas/UserResponseStats'
        oAuthIdentities:
          type: array
          items:
            $ref: '#/components/schemas/UserResponseOAuthIdentitiesItem'
        subscription:
          $ref: '#/components/schemas/UserResponseSubscription'
        license:
          $ref: '#/components/schemas/UserResponseLicense'
    UserResponseSubscription:
      type: object
      properties:
        ends:
          $ref: '#/components/schemas/datetimeString'
        active:
          type: boolean
    datetimeString:
      type: string
    UserResponseStats:
      type: object
      properties:
        gamesCompleted:
          type: number
          format: double
        concepts:
          type: object
          additionalProperties:
            type: number
            format: double
        playTime:
          type: number
          format: double
          description: Included only when specifically requested on the endpoint
  securitySchemes:
    BasicAuth:
      type: http
      scheme: basic