OSF

OSF Applications API

**OAuth2 Applications** allow external services to securely authenticate and interact with OSF resources via OAuth2. Registered applications manage OAuth2 flows, client credentials, and access tokens. Operations include: - Creating new OAuth2 applications - Viewing and updating application details - Deactivating or deleting applications - Resetting client secrets (deprecated after v2.14)

Business capability
Developer Identity & Credential Management BC-4270.40

Operations 6

GET /applications/ List Registered Applications #
POST /applications/ Create a New Application #
GET /applications/{client_id}/ Retrieve Application Details #
PATCH /applications/{client_id}/ Update Application #
DELETE /applications/{client_id}/ Deactivate Application #
POST /applications/{client_id}/reset/ Reset Application Client Secret #

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/osf:osf-applications-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

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

osf-applications-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: OSF APIv2 Documentation Applications API
  description: This is the official documentation for the OSF (Open Science Framework) API v2.
  version: '2.0'
  termsOfService: https://osf.io/terms_of_use/
  contact:
    name: OSF Support Team
    email: support@osf.io
    url: https://help.osf.io/
  license:
    name: Apache 2.0
    url: http://www.apache.org/licenses/LICENSE-2.0.html
  x-logo:
    url: https://cdn.cos.io/media/images/cos_center_logo_small.original.png
    backgroundColor: transparent
servers:
- url: https://api.test.osf.io/v2
tags:
- name: Applications
  description: '**OAuth2 Applications** allow external services to securely authenticate and interact with OSF resources via OAuth2.

    Registered applications manage OAuth2 flows, client credentials, and access tokens.

    Operations include:

    - Creating new OAuth2 applications

    - Viewing and updating application details

    - Deactivating or deleting applications

    - Resetting client secrets (deprecated after v2.14)'
paths:
  /applications/:
    get:
      summary: List Registered Applications
      description: 'Retrieves a list of OAuth2 applications registered by the authenticated user.

        Applications allow external services to authenticate via OAuth2.

        #### Returns

        A JSON object containing an array of registered OAuth2 applications under the `data` key.'
      tags:
      - Applications
      operationId: application_list
      responses:
        '200':
          description: Successfully retrieved list of applications.
          content:
            application/json:
              example:
                data:
                - id: abc123
                  type: applications
                  attributes:
                    name: My App
                    description: A sample application
                    home_url: https://example.com
                    callback_url: https://example.com/callback
                    owner: user123
                    date_created: '2024-03-14T10:00:00Z'
                  links:
                    html: https://osf.io/settings/applications/abc123/
                    reset: https://api.osf.io/v2/applications/abc123/reset/
                meta:
                  total: 1
                  per_page: 10
                links:
                  self: https://api.osf.io/v2/applications/
    post:
      summary: Create a New Application
      description: 'Registers a new OAuth2 application.

        The authenticated user becomes the owner of the application.'
      tags:
      - Applications
      operationId: application_create
      responses:
        '201':
          description: OAuth2 Application successfully created.
          content:
            application/json:
              example:
                data:
                  id: abc123
                  type: applications
                  attributes:
                    name: My App
                    description: An optional description
                    home_url: https://example.com
                    callback_url: https://example.com/oauth/callback
                    client_id: client_abc123
                    client_secret: secret_123
                    owner: user123
                    date_created: '2024-03-14T10:00:00Z'
                  links:
                    html: https://osf.io/settings/applications/client_abc123/
                    reset: https://api.osf.io/v2/applications/client_abc123/reset/
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                data:
                  type: object
                  required:
                  - type
                  - attributes
                  properties:
                    type:
                      type: string
                      example: applications
                    attributes:
                      type: object
                      required:
                      - name
                      - home_url
                      - callback_url
                      properties:
                        name:
                          type: string
                          example: My App
                        description:
                          type: string
                          example: An optional description
                        home_url:
                          type: string
                          example: https://example.com
                        callback_url:
                          type: string
                          example: https://example.com/oauth/callback
        description: JSON:API payload representing the new OAuth2 Application.
        required: true
  /applications/{client_id}/:
    get:
      summary: Retrieve Application Details
      description: Fetch detailed information for a specific OAuth2 application registered by the authenticated user.
      tags:
      - Applications
      operationId: application_detail
      parameters:
      - name: client_id
        in: path
        required: true
        description: The application's `client_id`.
        schema:
          type: string
      responses:
        '200':
          description: Successfully retrieved application details.
          content:
            application/json:
              example:
                data:
                  id: client_abc123
                  type: applications
                  attributes:
                    name: My App
                    description: An optional description
                    home_url: https://example.com
                    callback_url: https://example.com/oauth/callback
                    owner: user123
                    date_created: '2024-03-14T10:00:00Z'
                  links:
                    html: https://osf.io/settings/applications/client_abc123/
                    reset: https://api.osf.io/v2/applications/client_abc123/reset/
    patch:
      summary: Update Application
      description: 'Modify fields of an existing OAuth2 application. Fields such as `name`, `description`, `home_url`, or `callback_url` can be modified.

        To reset the client secret, set `"client_secret": ""`.'
      tags:
      - Applications
      operationId: application_update
      parameters:
      - name: client_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Application successfully updated.
          content:
            application/json:
              example:
                data:
                  id: client_abc123
                  type: applications
                  attributes:
                    name: My Updated App
                    description: Updated description
                    home_url: https://example.com
                    callback_url: https://example.com/oauth/callback
                    owner: user123
                    date_created: '2024-03-14T10:00:00Z'
                  links:
                    html: https://osf.io/settings/applications/client_abc123/
                    reset: https://api.osf.io/v2/applications/client_abc123/reset/
      requestBody:
        content:
          application/json:
            schema:
              type: object
              example:
                application/json:
                  data:
                    type: applications
                    attributes:
                      name: My Updated App
                      description: Updated description
        description: JSON:API payload with updated OAuth2 Application fields.
        required: true
    delete:
      summary: Deactivate Application
      description: Deactivates an OAuth2 application, hiding it from lists without deleting from the database.
      tags:
      - Applications
      operationId: application_deactivate
      parameters:
      - name: client_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '204':
          description: Application successfully deactivated.
  /applications/{client_id}/reset/:
    post:
      summary: Reset Application Client Secret
      description: 'Resets the client secret for a specific OAuth2 application, revoking all associated tokens.

        **Deprecated in API v2.14+**'
      tags:
      - Applications
      operationId: application_reset
      parameters:
      - name: client_id
        in: path
        required: true
        schema:
          type: string
      responses:
        '201':
          description: Client secret successfully reset.
          content:
            application/json:
              example:
                data:
                  id: client_abc123
                  type: applications
                  attributes:
                    client_secret: new_secret_xyz789
                  links:
                    html: https://osf.io/settings/applications/client_abc123/
                    reset: https://api.osf.io/v2/applications/client_abc123/reset/
        '404':
          description: Application not found or unauthorized.
        '410':
          description: Endpoint deprecated and removed in v2.15.
x-tagGroups:
- name: Welcome
  tags:
  - Introduction
  - General Usage
  - Authentication
  - Pagination
  - Versioning
  - Filtering
  - Sparse Fieldsets
  - Embedding
  - Request Formatting
  - Errors & Error Codes
  - Entities & Entity Collections
- name: API Reference
  tags:
  - Actions
  - Addons
  - Applications
  - Base
  - CEDAR Metadata
  - Citations
  - Comments
  - Collections
  - Collection Submissions
  - Collection Submissions Actions
  - Collection Providers
  - Custom Metadata
  - Files
  - Licenses
  - Logs
  - Institutions
  - Identifiers
  - Registration Schemas
  - Registration Schema Blocks
  - Schema Responses
  - Schema Response Actions
  - Nodes
  - Notification Subscriptions
  - Preprints
  - Preprint Providers
  - Draft Registrations
  - Registrations
  - Registration Providers
  - Regions
  - OAuth Scopes
  - Taxonomies
  - Tokens
  - Users
  - View Only Links
  - Wikis
  - Subjects
  - GUIDs
  - Requests
  - Resources