PHPackages                             cognifit/cognifit-sdk-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. cognifit/cognifit-sdk-php

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

cognifit/cognifit-sdk-php
=========================

Library for managing CogniFit user accounts

2.2.1(9mo ago)16.5k↓33.3%2MITPHPPHP &gt;=7.4

Since Feb 12Pushed 9mo ago4 watchersCompare

[ Source](https://github.com/DaniOlivares/cognifit-sdk-php)[ Packagist](https://packagist.org/packages/cognifit/cognifit-sdk-php)[ RSS](/packages/cognifit-cognifit-sdk-php/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (1)Versions (14)Used By (0)

cognifit-sdk-php
================

[](#cognifit-sdk-php)

Description
-----------

[](#description)

This library helps developers to connect with CogniFit API().

CogniFit API allows CogniFit partners to integrate CogniFit Assessment Batteries and Training Games seamless into their own websites. CogniFit partners can be clinicians, hospitals, schools, universities, researchers and associates.

Reference
---------

[](#reference)

### Health Check

[](#health-check)

```
use CognifitSdk\Api\HealthCheck;

$cognifitApiHealthCheck = new HealthCheck(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiHealthCheck->getInfo();

if(!$response->hasError()){

}
```

### User registration

[](#user-registration)

#### Create new user account

[](#create-new-user-account)

```
use CognifitSdk\Api\UserAccount;
use CognifitSdk\Lib\UserData;

$userName               = 'Joe';
$userEmail              = 'joe@example.com';
$userBirth              = '1981-07-15';
$locale                 = 'en';
$userPassword           = 'RANDOM_PASSWORD_OR_USER_KNOWN_PASSWORD';
$cognifitApiUserAccount = new UserAccount(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserAccount->registration(new UserData([
    'user_name'     => $userName,
    'user_email'    => $userEmail,
    'user_birthday' => $userBirth,
    'user_locale'   => $locale,
    'user_password' => $userPassword
]));

if(!$response->hasError()){
    $cognifitUserToken = $response->get('user_token');
    if($cognifitUserToken){
        // Save this user_token for future requests
    }
}
```

#### Associate existing user account

[](#associate-existing-user-account)

If the user already exists in CogniFit, their account can be associated. Redirect the user to the url returned by this method.

If the user accepts to associate the CogniFit accout with the partner, the user\_token will be sent back to the callback\_url provided.

The callback\_url must be one of the callback urls communicated to CogniFit when the partner was created.

State parameter is a hash generated by the partner. This value will be added to the callback response.

```
use CognifitSdk\Api\UserAccount;

$cognifitApiUserAccount = new UserAccount(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);

$userEmail = 'joe@example.com';
$callbackUrl = '';
$stateHash = 'RANDOM';

$response = $cognifitApiUserAccount->getAssociateExistingUserAccountUrl(
    $userEmail,
    $callbackUrl,
    $stateHash
);

if(!$response->hasError()){
    $cognifitUserToken = $response->get('user_token');
    if($cognifitUserToken){
        // Save this user_token for future requests
    }
}
```

### User authentication

[](#user-authentication)

#### Issue user access token

[](#issue-user-access-token)

```
use CognifitSdk\Api\UserAccessToken;

$cognifitUserToken          = 'USER_TOKEN';
$cognifitApiUserAccessToken = new UserAccessToken(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserAccessToken->issue($cognifitUserToken);
if(!$response->hasError()){
    return $response->get('access_token');
}
```

#### Use access token to access CogniFit

[](#use-access-token-to-access-cognifit)

```
use CognifitSdk\Api\UserStartSession;

$cognifitStartSession = new UserStartSession(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET'),
    false,
    env('COGNIFIT_HASH')
);

$userAccessToken    = 'USER_ACCESS_TOKEN';
$callbackUrl        = '';

$url = $cognifitStartSession->getUrl($userAccessToken, $callbackUrl);
```

### User manager

[](#user-manager)

#### Update user account

[](#update-user-account)

```
use CognifitSdk\Api\UserAccount;
use CognifitSdk\Lib\UserData;

$userToken              = 'USER_TOKEN';
$userName               = 'Joe';
$userEmail              = 'joe@example.com';
$userBirth              = '1981-07-15';
$locale                 = 'en';
$userPassword           = 'RANDOM_PASSWORD_OR_USER_KNOWN_PASSWORD';
$cognifitApiUserAccount = new UserAccount(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserAccount->update($userToken, new UserData([
    'user_name'     => $userName,
    'user_email'    => $userEmail,
    'user_birthday' => $userBirth,
    'user_locale'   => $locale,
    'user_password' => $userPassword
]));

if(!$response->hasError()){
    // Success
}
```

#### User activation

[](#user-activation)

If a user was previously deactivated, this method will set it to activated. Users need to be activated to log in CogniFit. Activate a user is not allocating any license or program to that user.

```
use CognifitSdk\Api\UserAccount;

$userToken              = 'USER_TOKEN';
$cognifitApiUserAccount = new UserAccount(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserAccount->activate($userToken);

if(!$response->hasError()){
    // Success
}
```

#### User deactivation

[](#user-deactivation)

Allows to deactivate users and free their licenses. As long as users are deactivated, their cognitive information can not be reached nor can they log in CogniFit.

```
use CognifitSdk\Api\UserAccount;

$userToken              = 'USER_TOKEN';
$cognifitApiUserAccount = new UserAccount(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserAccount->deactivate($userToken);

if(!$response->hasError()){
    // Success
}
```

#### User grant training subscription

[](#user-grant-training-subscription)

Allows to activate monthly recurring subscriptions for users. User will have access to all training programs and all games. By default, the personalised training will be set as training program.

```
use CognifitSdk\Api\UserAccount;

$userToken              = 'USER_TOKEN';
$cognifitApiUserAccount = new UserAccount(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserAccount->grantTrainingLicense($userToken);

if(!$response->hasError()){
    // Success
}
```

#### User cancel training subscription

[](#user-cancel-training-subscription)

Allows to deactivate monthly recurring subscriptions for users. User will have access until the end of his subscription period. After that subscription will not be renewed and user will not have anymore access to trainings and games.

```
use CognifitSdk\Api\UserAccount;

$userToken              = 'USER_TOKEN';
$cognifitApiUserAccount = new UserAccount(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserAccount->revokeTrainingLicense($userToken);

if(!$response->hasError()){
    // Success
}
```

#### User account deletion

[](#user-account-deletion)

Allows to delete user accounts. User data would be removed. User would not be able to access CogniFit anymore with this account. The partner would not be able to access user data. Partners are only able to delete accounts created by them.

```
use CognifitSdk\Api\UserAccount;

$userToken              = 'USER_TOKEN';
$cognifitApiUserAccount = new UserAccount(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserAccount->delete($userToken);

if(!$response->hasError()){
    // Success
}
```

### Cognitive assessments

[](#cognitive-assessments)

#### Assessments list

[](#assessments-list)

List of allowed assessment keys to use when setting a program.

```
use CognifitSdk\Api\Product;

$localesForAssets   = ['en', 'es'];
$product            = new Product(env('COGNIFIT_CLIENT_ID'), true);
$assessments        = $product->getAssessments($localesForAssets);
foreach ($assessments as $assessmentKey => $assessment){
    echo $assessment->getKey();
}
```

#### Single task assessment list

[](#single-task-assessment-list)

List of allowed single task assessment keys to use when setting a program.

```
use CognifitSdk\Api\Product;

$localesForAssets   = ['en', 'es'];
$product            = new Product(env('COGNIFIT_CLIENT_ID'), true);
$assessments        = $product->getAssessmentTasks($localesForAssets);
foreach ($assessments as $assessmentKey => $assessment){
    echo $assessment->getKey();
}
```

#### Questionnaires list

[](#questionnaires-list)

List of allowed questionnaire keys to use when setting a program.

```
use CognifitSdk\Api\Product;

$localesForAssets   = ['en', 'es'];
$product            = new Product(env('COGNIFIT_CLIENT_ID'), true);
$questionnaires     = $product->getQuestionnaires($localesForAssets);
foreach ($questionnaires as $questionnaireKey => $questionnaire){
    echo $questionnaire->getKey();
}
```

### Brain training Programs

[](#brain-training-programs)

#### Training list

[](#training-list)

List of allowed training keys to use when setting a training program.

```
use CognifitSdk\Api\Product;

$localesForAssets  = ['en', 'es'];
$product           = new Product(env('COGNIFIT_CLIENT_ID'), true);
$trainingPrograms  = $product->getTraining($localesForAssets);
foreach ($trainingPrograms as $trainingProgramKey => $trainingProgram){
    echo $trainingProgram->getKey();
}
```

### Brain Games

[](#brain-games)

#### Brain Game list

[](#brain-game-list)

List of allowed games keys to use when starting a unique game session.

```
use CognifitSdk\Api\Product;

$localesForAssets   = ['en', 'es'];
$product            = new Product(env('COGNIFIT_CLIENT_ID'), true);
$games              = $product->getGames($localesForAssets);
foreach ($games as $gameKey => $game){
    echo $game->getKey();
}
```

#### Cognitive Skill list

[](#cognitive-skill-list)

List of cognitive skills measured and trained by CogniFit.

```
use CognifitSdk\Api\Skills;

$localesForAssets   = ['en', 'es'];
$skills             = new Skills(env('COGNIFIT_CLIENT_ID'), true);
$skillList          = $skills->getSkills($localesForAssets);
foreach ($skillList as $skill){
    echo $skill->getKey();
}
```

### Login &amp; Launch

[](#login--launch)

After obtaining a user access token, it must be used before it expires: 1. by getting a url with next method and redirect there the user 2. by using CogniFit Launcher SDK for JavaScript to embed CogniFit in your site

#### Training program

[](#training-program)

```
use CognifitSdk\Api\UserStartSession;

$userStartSession   = new UserStartSession(getenv('TEST_CLIENT_ID'), '', true, getenv('TEST_CLIENT_HASH'));
$urlToStartSession  = $userStartSession->getUrlStartCognifitForTraining($this->userToken, $this->callbackUrl, 'DRIVING');
```

#### Assessment, Single Task Assessment &amp; Questionnaire program

[](#assessment-single-task-assessment--questionnaire-program)

```
use CognifitSdk\Api\UserStartSession;

$userStartSession   = new UserStartSession(getenv('TEST_CLIENT_ID'), '', true, getenv('TEST_CLIENT_HASH'));
$urlToStartSession  = $userStartSession->getUrlStartCognifitForAssessment('USER_TOKEN', '', 'DRIVING_ASSESSMENT');
```

#### Task program

[](#task-program)

```
use CognifitSdk\Api\UserStartSession;

$userStartSession   = new UserStartSession(getenv('TEST_CLIENT_ID'), '', true, getenv('TEST_CLIENT_HASH'));
$urlToStartSession  = $userStartSession->getUrlStartCognifitForGame('USER_TOKEN', '', 'MAHJONG');
```

### Activity and evolution report

[](#activity-and-evolution-report)

#### Get Historical Skills

[](#get-historical-skills)

```
use CognifitSdk\Api\UserActivity;

$cognifitUserToken       = 'USER_TOKEN';
$cognifitApiUserActivity = new UserActivity(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserActivity->getHistoricalScoreAndSkills($cognifitUserToken);
if(!$response->hasError()){

}
```

#### Get Played Games

[](#get-played-games)

```
use CognifitSdk\Api\UserActivity;

$cognifitUserToken       = 'USER_TOKEN';
$cognifitApiUserActivity = new UserActivity(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$response = $cognifitApiUserActivity->getPlayedGames($cognifitUserToken);
if(!$response->hasError()){

}
```

Project Region
--------------

[](#project-region)

By default, all requests are sent to api.cognifit.com, which requires developer credentials available at .

If you are located in China, you should create your account at . To direct your requests to , call the setChinaProjectRegion function after instantiating any CognifitSdk\\Api class.

```
use CognifitSdk\Api\UserActivity;

$cognifitUserToken       = 'USER_TOKEN';
$cognifitApiUserActivity = new UserActivity(
    env('COGNIFIT_CLIENT_ID'),
    env('COGNIFIT_CLIENT_SECRET')
);
$cognifitApiUserActivity->setChinaProjectRegion();
$response = $cognifitApiUserActivity->getPlayedGames($cognifitUserToken);
if(!$response->hasError()){

}
```

###  Health Score

42

—

FairBetter than 90% of packages

Maintenance58

Moderate activity, may be stable

Popularity25

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity60

Established project with proven stability

 Bus Factor1

Top contributor holds 94.3% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~136 days

Recently: every ~344 days

Total

13

Last Release

271d ago

Major Versions

1.0.8 → 2.0.12021-11-10

PHP version history (2 changes)1.0.0PHP &gt;=7.2.0

2.0.1PHP &gt;=7.4

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1029313?v=4)[DaniOlivares](/maintainers/DaniOlivares)[@DaniOlivares](https://github.com/DaniOlivares)

---

Top Contributors

[![DaniOlivares](https://avatars.githubusercontent.com/u/1029313?v=4)](https://github.com/DaniOlivares "DaniOlivares (33 commits)")[![mend-bolt-for-github[bot]](https://avatars.githubusercontent.com/in/16809?v=4)](https://github.com/mend-bolt-for-github[bot] "mend-bolt-for-github[bot] (1 commits)")[![pgutierrezcf](https://avatars.githubusercontent.com/u/16189817?v=4)](https://github.com/pgutierrezcf "pgutierrezcf (1 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/cognifit-cognifit-sdk-php/health.svg)

```
[![Health](https://phpackages.com/badges/cognifit-cognifit-sdk-php/health.svg)](https://phpackages.com/packages/cognifit-cognifit-sdk-php)
```

###  Alternatives

[namshi/jose

JSON Object Signing and Encryption library for PHP.

1.8k99.6M101](/packages/namshi-jose)[league/oauth1-client

OAuth 1.0 Client Library

99698.8M106](/packages/league-oauth1-client)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[gesdinet/jwt-refresh-token-bundle

Implements a refresh token system over Json Web Tokens in Symfony

70516.4M35](/packages/gesdinet-jwt-refresh-token-bundle)[league/oauth2-google

Google OAuth 2.0 Client Provider for The PHP League OAuth2-Client

41721.2M118](/packages/league-oauth2-google)[illuminate/auth

The Illuminate Auth package.

9327.3M1.0k](/packages/illuminate-auth)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
