Introduction

How to get started with GainKnowHow.com's API

This guide will guide you through integrating with GainKnowHow.com's API.
You can easily integrates your app with GainKnowHow with our Zapier Integration.


Authentication

GainKnowHow.com's API uses an api_token that is sent in the header to authenticate the account.

  1. Visit app.gainknowhow.com/api_keys to create a new API key. You need to be an account_admin to access this page.
  2. Copy the API token to a secure location.
  3. When making requests to the API set the request header X-API-KEY with the value of the api_token.

You can now make API requests.


Create a new user

Create a new user with an invitation for them to create a password.

END POINT POST /api/users

BODY { user: { user_name: "USER_NAME", email: "EMAIL@TEST.COM" } }


Get all users

Gets all users

END POINT GET /api/users

RESPONSE [ { "id"=>"a3d7b583-83d5-4a55-820e-25837546a4a2", "email"=>"test@example.com", "user_name"=>"BLA", "tos_agreement"=>true, "created_at"=>"2022-02-15T21:37:22.659Z", "updated_at"=>"2022-02-15T21:37:22.659Z", "settings"=>{}, "status"=>"online", "account_id"=>"9ddf3c7d-4d5c-4ab3-96fa-f449493134c2", "time_location"=>nil, "title"=>nil, "permission_bits"=>0, "demo_bits"=>nil } ]


Delete a user

Permanently deletes a user

END POINT DELETE /api/users/USER_ID

RESPONSE { ok: true }


Get all skills

Retrieves all skills

END POINT GET /api/skills

RESPONSE [ { "id": "fb09f727-1e4b-4f0b-b4c5-581d9b91b7f6", "title": "Centrifuge usage ", "skillable_id": "89cc5926-b3ca-42fc-beec-d864ed8a1231", "skillable_type": "QuizLesson", "version": 4, "in_graph": true } ]


Get all user skills

Gets the list of all skills that users have

END POINT GET /api/user_skills

RESPONSE [ { "id": "c1502d3d-eca1-43a7-9c30-fc53de707fc5", "user_id": "00160359-7bae-4ec4-8645-8bb452039024", "complete": null, "status": null, "created_at": "2021-12-02T07:42:15.111Z", "updated_at": "2021-12-02T07:42:15.117Z", "skill_id": "8b13b1a2-15c3-4a5a-bb6b-9b9b14252324", "version": 1, "account_id": "7cd03547-d8e9-4852-bc15-f5fa03c29eac", "skill_valid": true } ]


Create a user skill assignment

Assign a user to learn a skill and its prerequisites.

END POINT POST /api/skill_assignments

BODY { skill_assignment: { user_id: "USER_ID", skill_id: "SKILL_ID" } }