Show page source of APIGuide #115398

= OSDN API

OSDN REST API is currently experimental beta.
Documentation is not completed.

== API Explorer

Currently, we do not provide detailed API references yet. 
Please refer [https://osdn.net/swagger-ui/ API Explorer by swagger-UI] to get function list.

== Application registration

You can register your application with [https://osdn.net/account/oauth2ui/apps your account page].

== Authentication

OSDN API authentication is based on [https://oauth.net/2/ OAuth2].

=== Auth code grant

First your application needs to route user to auth URL ( https://osdn.net/account/oauth2ui/authorize ) with following query parameters;

 * client_id: application ID you registered
 * state: OAuth state string
 * response_type: set as 'code'
 * scope: (optional) space separated scopes. Currently available scopes are  ''profile'', ''group'', ''group_write'', ''chamber'' and ''chamber_write''. Default is ''profile''.

If user allow your application to access, they will be redirected back to your application with ''code'' in query parameter.

After that, application can get access token and refresh token from API token endpoint ( https://osdn.net/api/v0/token ) with
following arguments via '''POST request''';

 * client_id: your application ID (required)
 * client_secret: your application secret (key) (required)
 * grant_type: 'authorization_code' or 'refresh_token'
 * code: authentication code get by auth URL above. (required if grant_type is authcode)
 * refresh_token: refresh token (required if grant_type is refresh_token)

=== Implicit grant

If your application cannot store client_secret safely, you can use oauth2 implicit grant.

On implicit grant, you can get access token from auth URL ( https://osdn.net/account/oauth2ui/authorize ) directly  with following query parameters;

 * client_id: your application ID 
 * state: OAuth state string
 * response_type: set as 'token'
 * scope: (optional) space separated scopes. Currently available scopes are  ''profile'', ''group'', ''group_write'', ''chamber'' and ''chamber_write''. Default is ''profile''.

If user allow to access, user will be redirected to your application with access token in fragment. 
In this case you cannot get refresh token. 

== Contact and report issue

Please report to [https://osdn.net/ticket/newticket.php?group_id=1 ticket] if you find any problem.

== Sample client implementations

 * [CommandLineInterface osdn-cli] - an command line interface to provide non-interactive operation for OSDN services.
 * [https://osdn.net/projects/osdn-codes/releases/p14859 client libraries] - basic client libraries for each language.