Interfolio Users API

Create, update and retreive details of users.

Operations 11

GET /api.php/users Retrieves a listing of users and basic identifying information for each #
POST /api.php/users Create a new user #
GET /api.php/users/{userid} Retrieves full profile details on the specified user(s) #
PUT /api.php/users/{userid} Updates existing user accounts #
POST /fars/{tenant_id}/users/{pid}/subscribe Subscribe a user to Faculty180 (HMAC) #
PUT /fars/{tenant_id}/users/{pid} Update a user in Faculty180 (HMAC) #
PUT /fars/{tenant_id}/users/{pid}/unsubscribe Unsubscribe a user from Faculty180 (HMAC) #
POST /fars/{tenant_id}/users/csv_create Subscribe multiple users in a CSV format to Faculty180 (HMAC) #
POST /fars/{tenant_id}/users/csv_update Subscribe multiple users in a CSV format to Faculty180 (HMAC) #
GET /users/activity_input_request Retrieves a list of active activity input requests #
GET /users/current Retrieves a list of Tenant ID's and is_institutional_admin flag #

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/interfolio:interfolio-users-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 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

interfolio-users-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Interfolio Users API
  version: 1.0.0
  x-logo:
    url: /images/logo_faculty180_intf.png
  description: 'Operations tagged Users across 2 of this provider''s published API definitions: faculty180-swagger.json, interfolio-faculty180-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://faculty180.interfolio.com
tags:
- name: Users
  description: Create, update and retreive details of users.
paths:
  /api.php/users:
    get:
      tags:
      - Users
      summary: Retrieves a listing of users and basic identifying information for each
      description: 'Description


        Retrieve details on users within your institution. A count of users will be returned if no parameters are specified.


        Example URL(s)


        https://faculty180.interfolio.com/api.php/users?data=detailed


        https://faculty180.interfolio.com/api.php/users?data=detailed&employmentstatus=Full+Time'
      operationId: users
      parameters:
      - name: unitid
        in: query
        description: "Retrieve a user with specific unitid(s)\n  *  When defined, filters users with given unitid as their primary unit.\n  *  When undefined, all users for all units are returned.\n  *  Multiple values can be sent as a comma separated list."
        schema:
          type: array
          items:
            type: integer
      - $ref: '#/components/parameters/employmentstatus'
      - name: data
        in: query
        description: "Determines the extent of data that will be returned.\n  *  **Count:** Returns count of number of users found.\n  *  **Summary:** Returns an array containing a subset of values for all users.\n  *  **Detailed:** Returns an array of values for all users."
        schema:
          type: string
          enum:
          - count
          - summary
          - detailed
          default: count
      - $ref: '#/components/parameters/q'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: A list of users.
          content:
            application/json:
              example:
              - userid: m123456
                firstname: John
                middlename: L
                lastname: Doe
                email: JDoe@University.com
                employmentstatus: Full Time
                web_profile: true
                position: Lecturer
                primaryunit: 2
                rank: Associate Professor
                url: https://mysite.com/
                orcid: 0000-0001-6541-4461
                photo_thumb: thumb_photo.png
                photo: photo.png
                lastlogin: YYYY-MM-DD
                pid: 1000001
        default:
          description: an "unexpected" error
    post:
      tags:
      - Users
      summary: Create a new user
      description: 'Description


        Create a user within Faculty180.


        Example URL(s)


        https://faculty180.interfolio.com/api.php/users'
      operationId: userCreate
      responses:
        '200':
          description: User inserted successfully.
        '400':
          description: "Possible errors include:\n  *  Unable to parse request data.\n  *  Userid <userid> already exists.\n  *  Email address <email> already in use.\n  *  Required field <field> not provided.\n  *  Primary unit <integer> does not exists.\n  *  Employment status <value> not valid.\n  *  Account type <value> not valid.\n  *  <value> provided for <field> is not valid."
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/userPost'
        required: true
    servers:
    - url: https://faculty180.interfolio.com
  /api.php/users/{userid}:
    get:
      tags:
      - Users
      summary: Retrieves full profile details on the specified user(s)
      description: 'Description


        Retrieve profile details on a user within your institution. A count of the user will be returned if no parameters are specified.


        Example URL(s)


        https://faculty180.interfolio.com/api.php/users/m123456


        https://faculty180.interfolio.com/api.php/users/m123456?data=detailed&extra=honorific,phone,accounttype'
      operationId: userDetails
      parameters:
      - name: userid
        in: path
        description: "Retrieves full profile details on the specified user(s).\n  *  By default the only data that is returned for a given user is basic identifying information, if other user details are needed they should be specified using the “extra” parameter."
        required: true
        schema:
          type: string
      - name: data
        in: query
        description: "Determines the extent of data that will be returned.\n  *  **Count:** Returns value of 1 if desired resource exists or 0 otherwise.\n  *  **Summary:** Returns an array containing a subset of values for the users.\n  *  **Detailed:** Returns an array of values for the user."
        schema:
          type: string
          enum:
          - count
          - summary
          - detailed
          default: count
      - $ref: '#/components/parameters/extra'
      - $ref: '#/components/parameters/q'
      - $ref: '#/components/parameters/limit'
      - $ref: '#/components/parameters/offset'
      responses:
        '200':
          description: Details of a specified user.
          content:
            application/json:
              example:
              - userid: m123456
                firstname: John
                middlename: L
                lastname: Doe
                email: JDoe@University.com
                employmentstatus: Full Time
                position: Lecturer
                primaryunit: 2
                rank: Associate Professor
                url: https://mysite.com/
                orcid: 0000-0001-6541-4461
                photo_thumb: thumb_photo.png
                photo: photo.png
                lastlogin: YYYY-MM-DD
                pid: 1
        default:
          description: an "unexpected" error
    put:
      tags:
      - Users
      summary: Updates existing user accounts
      description: 'Description


        Update a user''s details within Faculty180.


        Example URL(s)


        https://faculty180.interfolio.com/api.php/users/m123456'
      operationId: userUpdate
      parameters:
      - name: userid
        in: path
        description: Specify a user to update.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: User updated successfully.
        '400':
          description: "Possible errors include:\n  *  Unable to parse request data.\n  *  Userid <userid> already exists.\n  *  Email address <email> already in use.\n  *  Required field <field> not provided.\n  *  Primary unit <integer> does not exists.\n  *  Employment status <value> not valid.\n  *  Account type <value> not valid.\n  *  <value> provided for <field> is not valid."
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/userPut'
        required: true
    servers:
    - url: https://faculty180.interfolio.com
  /fars/{tenant_id}/users/{pid}/subscribe:
    post:
      tags:
      - Users
      summary: Subscribe a user to Faculty180 (HMAC)
      description: 'Description


        Create a user that is already subscribed to other Interfolio Products. This endpoint is only available to users with HMAC keys.


        Example URL(s)


        https://faculty180.interfolio.com/fars/12345/users/1000001/subscribe'
      operationId: subscribeUser
      parameters:
      - name: tenant_id
        in: path
        description: Specify the tenant of the user.
        required: true
        schema:
          type: integer
      - name: pid
        in: path
        description: Specify the pid of the user.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: No Content (Success)
        '400':
          description: "Possible errors include:\n  *  Email address JDoe@University.com already in use by user m123456\n  *  Primary unit ABC is invalid."
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/userSub'
        required: true
    servers:
    - url: https://faculty180.interfolio.com
  /fars/{tenant_id}/users/{pid}:
    put:
      tags:
      - Users
      summary: Update a user in Faculty180 (HMAC)
      description: 'Description


        Update a user within Faculty180. This endpoint is only available to users with HMAC keys.


        Example URL(s)


        https://faculty180.interfolio.com/fars/12345/users/1000001'
      operationId: updateUserSubscribe
      parameters:
      - name: tenant_id
        in: path
        description: Specify the tenant of the user.
        required: true
        schema:
          type: integer
      - name: pid
        in: path
        description: Specify the pid of the user.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: No Content (Success)
        '400':
          description: "Possible errors include:\n  *  Email address JDoe@University.com already in use by user m123456\n  *  Primary unit ABC is invalid."
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/updateUserSub'
        required: true
    servers:
    - url: https://faculty180.interfolio.com
  /fars/{tenant_id}/users/{pid}/unsubscribe:
    put:
      tags:
      - Users
      summary: Unsubscribe a user from Faculty180 (HMAC)
      description: 'Description


        Unsubscribe a user within Faculty180. This will mark the user as ''Inactive'' This endpoint is only available to users with HMAC keys.


        Example URL(s)


        https://faculty180.interfolio.com/fars/12345/users/1000001/unsubscribe'
      operationId: userUnsubscribe
      parameters:
      - name: tenant_id
        in: path
        description: Specify the tenant of the user.
        required: true
        schema:
          type: integer
      - name: pid
        in: path
        description: Specify the pid of the user.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: No Content (Success)
        '400':
          description: ''
    servers:
    - url: https://faculty180.interfolio.com
  /fars/{tenant_id}/users/csv_create:
    post:
      tags:
      - Users
      summary: Subscribe multiple users in a CSV format to Faculty180 (HMAC)
      description: 'Description


        Bulk upload users to Faculty180. Send your file as form-data. This endpoint provides saml_id, cas_id, and ldap_id; these can be helpful if your institution will be using platform authentication. This endpoint is only available to users with HMAC keys.


        Example URL(s)


        https://faculty180.interfolio.com/fars/12345/users/csv_create'
      operationId: createUsersCSV
      parameters:
      - name: tenant_id
        in: path
        description: Specify the tenant of the user.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: No Content (Success)
        '400':
          description: "Possible errors include:\n  *  File upload is missing.\n  *  Email address JDoe@University.com already in use by user m123456.\n  *  Primary unit ABC is invalid."
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/farsUserInfo'
        required: true
    servers:
    - url: https://faculty180.interfolio.com
  /fars/{tenant_id}/users/csv_update:
    post:
      tags:
      - Users
      summary: Subscribe multiple users in a CSV format to Faculty180 (HMAC)
      description: 'Description


        Update users in bulk in Faculty180. Send your file as form-data. This endpoint is only available to users with HMAC keys.


        Example URL(s)


        https://faculty180.interfolio.com/fars/12345/users/csv_update'
      operationId: updateUsersCSV
      parameters:
      - name: tenant_id
        in: path
        description: Specify the tenant of the user.
        required: true
        schema:
          type: integer
      responses:
        '204':
          description: No Content (Success)
        '400':
          description: "Possible errors include:\n  *  File upload is missing.\n  *  Email address JDoe@University.com already in use by user m123456.\n  *  Primary unit ABC is invalid."
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              $ref: '#/components/schemas/farsUserInfo'
        required: true
    servers:
    - url: https://faculty180.interfolio.com
  /users/activity_input_request:
    get:
      tags:
      - Users
      summary: Retrieves a list of active activity input requests
      description: 'Description


        Retrieve details on a single user''s Activity Input requests within your institution.


        Example URL(s)


        https://faculty180.interfolio.com/users/activity_input_request'
      operationId: ActivityInputRequests
      responses:
        '200':
          description: A list with activity input requests.
          content:
            application/json:
              example:
                data:
                - title: 'UNIV Complete Activity Input: Fall 2017'
                  start_date: '2018-01-01 11:59:59'
                  end_date: null
                  dashboard_message: 'Complete Activity Input: Fall 2017'
                  url: workload/Workload_form.php?sess=86753jfijsad0fma0932jk0fm
                - title: 'UNIV Complete Activity Input: Fall 2016'
                  start_date: '2016-01-01 11:59:59'
                  end_date: '2018-05-21 10:11:14'
                  dashboard_message: 'Complete Activity Input: Fall 2016'
                  url: workload/Workload_form.php?sess=86756jfijsad0fma0932jk0fm
        default:
          description: an "unexpected" error
    servers:
    - url: https://faculty180.interfolio.com
  /users/current:
    get:
      tags:
      - Users
      summary: Retrieves a list of Tenant ID's and is_institutional_admin flag
      description: 'Description


        Retrieve details on a single user''s assigned tenants and administrative rights flag within your institution.


        Example URL(s)


        https://faculty180.interfolio.com/users/current'
      operationId: CurrentUserPermissions
      responses:
        '200':
          description: A list with tenants with is_institutional_admin flag.
          content:
            application/json:
              example:
                data:
                - tenantid: '123456'
                  is_institutional_admin: 'true'
                  is_admin: 'true'
                - tenantid: '789014'
                  is_institutional_admin: 'false'
                  is_admin: 'true'
        default:
          description: an "unexpected" error
    servers:
    - url: https://faculty180.interfolio.com
components:
  schemas:
    updateUserSub:
      properties:
        firstname:
          type: string
        lastname:
          type: string
        email:
          type: string
        loginname:
          type: string
        middlename:
          type: string
        employmentstatus:
          type: string
        primaryunit:
          type: integer
        rankname:
          type: string
        accounttype:
          type: string
        suffix:
          type: string
        honorific:
          type: string
        officebuilding:
          type: string
        officenumber:
          type: string
        phone:
          type: string
        gender:
          type: string
        race:
          type: string
        nationality:
          type: string
        homephone:
          type: string
        homestreet1:
          type: string
        homestreet2:
          type: string
        homecity:
          type: string
        homestate:
          type: string
        homezipcode:
          type: string
        homecountry:
          type: string
        cellphone:
          type: string
        teachinginterest:
          type: string
        researchinterest:
          type: string
        biography:
          type: string
        emergencycontact:
          type: string
        emergencycontactphone:
          type: string
        pager:
          type: string
        personalstreet1:
          type: string
        personalstreet2:
          type: string
        personalcity:
          type: string
        personalstate:
          type: string
        personalzip:
          type: string
        sendemail:
          type: boolean
        languages:
          type: string
      type: object
    userPut:
      properties:
        firstname:
          type: string
        middlename:
          type: string
        lastname:
          type: string
        email:
          type: string
        employmentstatus:
          type: string
        position:
          type: string
        primaryunit:
          type: integer
        rankname:
          type: string
        accounttype:
          type: string
        suffix:
          type: string
        honorific:
          type: string
        officebuilding:
          type: string
        officenumber:
          type: string
        phone:
          type: string
        gender:
          type: string
        race:
          type: string
        nationality:
          type: string
        homephone:
          type: string
        homestreet1:
          type: string
        homestreet2:
          type: string
        homecity:
          type: string
        homestate:
          type: string
        homezipcode:
          type: string
        cellphone:
          type: string
        teachinginterest:
          type: string
        researchinterest:
          type: string
        biography:
          type: string
        emergencycontact:
          type: string
        emergencycontactphone:
          type: string
        pager:
          type: string
        personalstreet1:
          type: string
        personalstreet2:
          type: string
        personalcity:
          type: string
        personalstate:
          type: string
        personalzip:
          type: string
        url:
          type: string
      type: object
    userPost:
      required:
      - userid
      - firstname
      - lastname
      - email
      - primaryunit
      - employmentstatus
      properties:
        userid:
          type: string
        institution_user_id:
          type: string
        firstname:
          type: string
        middlename:
          type: string
        lastname:
          type: string
        email:
          type: string
        employmentstatus:
          type: string
        position:
          type: string
        primaryunit:
          type: integer
        rankname:
          type: string
        accounttype:
          type: string
        suffix:
          type: string
        honorific:
          type: string
        officebuilding:
          type: string
        officenumber:
          type: string
        phone:
          type: string
        gender:
          type: string
        race:
          type: string
        nationality:
          type: string
        homephone:
          type: string
        homestreet1:
          type: string
        homestreet2:
          type: string
        homecity:
          type: string
        homestate:
          type: string
        homezipcode:
          type: string
        cellphone:
          type: string
        teachinginterest:
          type: string
        researchinterest:
          type: string
        biography:
          type: string
        emergencycontact:
          type: string
        emergencycontactphone:
          type: string
        pager:
          type: string
        personalstreet1:
          type: string
        personalstreet2:
          type: string
        personalcity:
          type: string
        personalstate:
          type: string
        personalzip:
          type: string
        sendemail:
          type: boolean
        url:
          type: string
      type: object
    farsUserInfo:
      required:
      - facultyid
      - first_name
      - last_name
      - email
      properties:
        facultyid:
          type: string
        first_name:
          type: string
        middlename:
          type: string
        last_name:
          type: string
        email:
          type: string
        employmentstatus:
          type: string
        rankname:
          type: string
        accounttype:
          type: string
        suffix:
          type: string
        honorific:
          type: string
        officebuilding:
          type: string
        officenumber:
          type: string
        phone:
          type: string
        gender:
          type: string
        race:
          type: string
        nationality:
          type: string
        homephone:
          type: string
        homestreet1:
          type: string
        homestreet2:
          type: string
        homecity:
          type: string
        homestate:
          type: string
        homezipcode:
          type: string
        homecountry:
          type: string
        cellphone:
          type: string
        teachinginterest:
          type: string
        researchinterest:
          type: string
        biography:
          type: string
        emergencycontact:
          type: string
        emergencycontactphone:
          type: string
        pager:
          type: string
        personalstreet1:
          type: string
        personalstreet2:
          type: string
        personalcity:
          type: string
        personalstate:
          type: string
        personalzip:
          type: string
        languages:
          type: string
      type: object
    userSub:
      required:
      - facultyid
      properties:
        facultyid:
          type: string
        loginname:
          type: string
        saml_id:
          type: string
        cas_id:
          type: string
        ldap_id:
          type: string
        middlename:
          type: string
        employmentstatus:
          type: string
        primaryunit:
          type: integer
        rankname:
          type: string
        accounttype:
          type: string
        suffix:
          type: string
        honorific:
          type: string
        officebuilding:
          type: string
        officenumber:
          type: string
        phone:
          type: string
        gender:
          type: string
        race:
          type: string
        nationality:
          type: string
        homephone:
          type: string
        homestreet1:
          type: string
        homestreet2:
          type: string
        homecity:
          type: string
        homestate:
          type: string
        homezipcode:
          type: string
        homecountry:
          type: string
        cellphone:
          type: string
        teachinginterest:
          type: string
        researchinterest:
          type: string
        biography:
          type: string
        emergencycontact:
          type: string
        emergencycontactphone:
          type: string
        pager:
          type: string
        personalstreet1:
          type: string
        personalstreet2:
          type: string
        personalcity:
          type: string
        personalstate:
          type: string
        personalzip:
          type: string
        sendemail:
          type: boolean
        languages:
          type: string
      type: object
  parameters:
    extra:
      name: extra
      in: query
      description: 'Multiple values can be sent as a comma separated list.

        *  When included, additional details are indexed and included in the returned array.'
      schema:
        type: array
        items:
          type: string
          enum:
          - accounttype
          - suffix
          - honorific
          - officebuilding
          - officenumber
          - phone
          - gender
          - race
          - nationality
          - homephone
          - homestreet1
          - homestreet2
          - homecity
          - homestate
          - homezipcode
          - cellphone
          - teachinginterest
          - researchinterest
          - rankname
          - biography
          - emergencycontact
          - emergencycontactphone
          - pager
          - personalstreet1
          - personalstreet2
          - personalcity
          - personalstate
          - personalzip
          - url
    q:
      name: q
      in: query
      description: Search term. Use '*' as wildcard.
      schema:
        type: string
    limit:
      name: limit
      in: query
      description: Limit query to specified number of records.
      schema:
        type: integer
    offset:
      name: offset
      in: query
      description: Used to offset queries that are segmented into chunks with limit.
      schema:
        type: integer
    employmentstatus:
      name: employmentstatus
      in: query
      description: When defined, users are filtered by their employment status. Defaults to All
      schema:
        type: string
        enum:
        - Full Time
        - Part Time
        - Staff
        - Inactive
        - All
        - All Active
        default: All
x-refined-from:
- faculty180-swagger.json
- interfolio-faculty180-openapi.yml