Endpoints

To avoid returning too many results at once, data returned through the API is paginated. Each response from a “list”-type endpoint (such as when you retrieve a list of users and not a particular user) has a next and a previous key. The values associated with these are URLs that point to the next/previous page of results. By default, we return a maximum of 25 results per request. If you would prefer to receive a different number of results per page, the GET parameter per_page can be passed along. For example,

GET https://example.smapply.org/api/programs/?per_page=20

You can download a copy of the OpenAPI spec for our API here.

Some API functionality may be limited based on Administrative Permissions in the platform. For more information on modifying permissions, you can refer to our help documentation on Permission Sets.

Rate Limiting

Apply Connect applies a rate limit to requests. API calls are limited to 5 calls per second per session. If the rate limit is exceeded, an HTTP status code of 429 is returned.

Activity

GET /api/activity/

Retrieves a list of activity log items that are visible to the caller.

Query Parameters:
  • actor (integer) – Limit the results to a specific actor

  • application (integer) – Limit the results to a specific application

  • program (integer) – Limit the results to a specific program

  • organization (integer) – Limit the results to a specific organization

  • category (integer) – Limit the results to a specific category

  • created_at (string) – Limit the results to a specific creation timestamp

Example request:

GET /api/activity/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • actor (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • actor_role (string) Permitted values: admin, reviewer

      • created_at (string)

      • category (boolean)

      • type (string)

      • application (object)

        • title (string)

        • id (integer)

      • program (object)

        • id (integer)

          program ID

        • name (string)

          program name

      • stage (object)

        • title (string)

        • id (integer)

      • task (object)

        • name (string)

        • id (integer)

      • organization (object)

        Organization reference

        • id (integer)

          organization ID

        • name (string)

          organization name

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "actor": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "actor_role": "admin",
            "created_at": "2023-02-17T01:28:34.788838",
            "category": true,
            "type": "string",
            "application": {
                "title": "string",
                "id": 1
            },
            "program": {
                "id": 1,
                "name": "string"
            },
            "stage": {
                "title": "string",
                "id": 1
            },
            "task": {
                "name": "string",
                "id": 1
            },
            "organization": {
                "id": 1,
                "name": "string"
            }
        }
    ]
    

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/activity/{id}/

Retrieves a single activity log item, if visible to the caller.

Parameters:
  • id (integer) – Activity ID

Example request:

GET /api/activity/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • actor (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • actor_role (string) Permitted values: admin, reviewer

    • created_at (string)

    • category (boolean)

    • type (string)

    • application (object)

      • title (string)

      • id (integer)

    • program (object)

      • id (integer)

        program ID

      • name (string)

        program name

    • stage (object)

      • title (string)

      • id (integer)

    • task (object)

      • name (string)

      • id (integer)

    • organization (object)

      Organization reference

      • id (integer)

        organization ID

      • name (string)

        organization name

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "actor": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "actor_role": "admin",
        "created_at": "2023-02-17T01:28:34.788838",
        "category": true,
        "type": "string",
        "application": {
            "title": "string",
            "id": 1
        },
        "program": {
            "id": 1,
            "name": "string"
        },
        "stage": {
            "title": "string",
            "id": 1
        },
        "task": {
            "name": "string",
            "id": 1
        },
        "organization": {
            "id": 1,
            "name": "string"
        }
    }
    

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

Applications

GET /api/applications/

Retrieves a list of applications that are visible to the caller.

Administrators need the View Applications permission to make this call.

Query Parameters:
  • applicant (integer) – limit applications to a specific applicant

  • average_score (number) – limit applications based on their average score

  • created_at (string) – limit applications based on their creation timestamp

  • current_stage (integer) – limit applications that are currently in a specific stage

  • overall_score (number) – limit applications based on their overall score

  • program (integer) – limit applications to a specific program

  • reference_id (string) – limit applications based on their reference ID

  • state (integer) –

    limit applications based on their state; can be one of

    • 0: Active

    • 1: Locked

    • 2: Hidden

    • 3: Archived

    • 4: Trashed

  • title (integer) – limit applications based on their title

  • weighted_score (number) – limit applications based on their weighted score

Example request:

GET /api/applications/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • applicant (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • average_score (number)

      • collaborators (array of object)

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • created_at (string)

      • current_stage (object)

        • title (string)

        • id (integer)

      • custom_fields (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • last_submitted_at (string)

        The most recent submit timestamp for the application

      • decision (object)

        Application Decision Reference

        • id (integer)

          ID of the award

        • decision (integer) Permitted values: 0, 1

          • 0 - Awarded

          • 1 - Declined

        • awarded (string)

          Value of the award

      • organization (object)

        Organization reference

        • id (integer)

          organization ID

        • name (string)

          organization name

      • overall_score (number)

      • program (object)

        • id (integer)

          program ID

        • name (string)

          program name

      • reference_id (string)

      • state (integer) Permitted values: 0, 1, 2, 3, 4

        • 0: Active

        • 1: Locked

        • 2: Hidden

        • 3: Archived

        • 4: Trashed

      • title (string)

      • updated_at (string)

      • weighted_score (number)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "applicant": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "average_score": 1.0,
            "collaborators": [
                {
                    "first_name": "string",
                    "last_name": "string",
                    "email": "name@example.com",
                    "id": 1
                }
            ],
            "created_at": "2023-02-17T01:28:34.788838",
            "current_stage": {
                "title": "string",
                "id": 1
            },
            "custom_fields": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "last_submitted_at": "2023-02-17T01:28:34.788838",
            "decision": {
                "id": 1,
                "decision": 0,
                "awarded": "string"
            },
            "organization": {
                "id": 1,
                "name": "string"
            },
            "overall_score": 1.0,
            "program": {
                "id": 1,
                "name": "string"
            },
            "reference_id": "string",
            "state": 0,
            "title": "string",
            "updated_at": "2023-02-17T01:28:34.788838",
            "weighted_score": 1.0
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

POST /api/applications/

Create an application. This is only available to applicants and administrators.

Admins need the Create Applications permission to make this call.

Endpoint properties

  • applicant (integer)

    applicant ID

  • collaborators (array of integer)

  • current_stage (integer)

    ID of the stage the application is currently in

  • custom_fields (array of object)

    • id (integer)

      custom field ID

    • value (string)

      the custom field’s value

  • organization (integer)

    ID of application’s organization; null if the application is not associated with an organization

  • program (integer)

    program ID for the application

  • reference_id (string)

  • state (integer) Permitted values: 0, 1, 2, 3

    • 0: Active

    • 1: Locked

    • 2: Hidden

    • 3: Archived

    • 4: Trashed

  • title (string)

Example request:

POST /api/applications/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "applicant": 1,
    "collaborators": [
        1
    ],
    "current_stage": 1,
    "custom_fields": [
        {
            "id": 1,
            "value": "string"
        }
    ],
    "organization": 1,
    "program": 1,
    "reference_id": "string",
    "state": 0,
    "title": "string"
}
Status Codes:
  • 201 Created

    Application created

    Endpoint properties

    • applicant (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • average_score (number)

    • collaborators (array of object)

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • created_at (string)

    • current_stage (object)

      • title (string)

      • id (integer)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • last_submitted_at (string)

      The most recent submit timestamp for the application

    • decision (object)

      Application Decision Reference

      • id (integer)

        ID of the award

      • decision (integer) Permitted values: 0, 1

        • 0 - Awarded

        • 1 - Declined

      • awarded (string)

        Value of the award

    • organization (object)

      Organization reference

      • id (integer)

        organization ID

      • name (string)

        organization name

    • overall_score (number)

    • program (object)

      • id (integer)

        program ID

      • name (string)

        program name

    • reference_id (string)

    • state (integer) Permitted values: 0, 1, 2, 3, 4

      • 0: Active

      • 1: Locked

      • 2: Hidden

      • 3: Archived

      • 4: Trashed

    • title (string)

    • updated_at (string)

    • weighted_score (number)

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "applicant": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "average_score": 1.0,
        "collaborators": [
            {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            }
        ],
        "created_at": "2023-02-17T01:28:34.788838",
        "current_stage": {
            "title": "string",
            "id": 1
        },
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "last_submitted_at": "2023-02-17T01:28:34.788838",
        "decision": {
            "id": 1,
            "decision": 0,
            "awarded": "string"
        },
        "organization": {
            "id": 1,
            "name": "string"
        },
        "overall_score": 1.0,
        "program": {
            "id": 1,
            "name": "string"
        },
        "reference_id": "string",
        "state": 0,
        "title": "string",
        "updated_at": "2023-02-17T01:28:34.788838",
        "weighted_score": 1.0
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/applications/{id}/

Retrieve a single application. The caller must be able to view the application.

Admins need the View Applications permission to make this call.

Parameters:
  • id (integer) – Application ID

Example request:

GET /api/applications/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • applicant (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • average_score (number)

    • collaborators (array of object)

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • created_at (string)

    • current_stage (object)

      • title (string)

      • id (integer)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • last_submitted_at (string)

      The most recent submit timestamp for the application

    • decision (object)

      Application Decision Reference

      • id (integer)

        ID of the award

      • decision (integer) Permitted values: 0, 1

        • 0 - Awarded

        • 1 - Declined

      • awarded (string)

        Value of the award

    • organization (object)

      Organization reference

      • id (integer)

        organization ID

      • name (string)

        organization name

    • overall_score (number)

    • program (object)

      • id (integer)

        program ID

      • name (string)

        program name

    • reference_id (string)

    • state (integer) Permitted values: 0, 1, 2, 3, 4

      • 0: Active

      • 1: Locked

      • 2: Hidden

      • 3: Archived

      • 4: Trashed

    • title (string)

    • updated_at (string)

    • weighted_score (number)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "applicant": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "average_score": 1.0,
        "collaborators": [
            {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            }
        ],
        "created_at": "2023-02-17T01:28:34.788838",
        "current_stage": {
            "title": "string",
            "id": 1
        },
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "last_submitted_at": "2023-02-17T01:28:34.788838",
        "decision": {
            "id": 1,
            "decision": 0,
            "awarded": "string"
        },
        "organization": {
            "id": 1,
            "name": "string"
        },
        "overall_score": 1.0,
        "program": {
            "id": 1,
            "name": "string"
        },
        "reference_id": "string",
        "state": 0,
        "title": "string",
        "updated_at": "2023-02-17T01:28:34.788838",
        "weighted_score": 1.0
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application does not exist

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/applications/{id}/

Update an existing application. Only administrators with the Application Create permission can update applications.

Admins need the Application Create permission to make this call.

Parameters:
  • id (integer) – application ID

Endpoint properties

  • applicant (integer)

    applicant ID

  • collaborators (array of integer)

  • current_stage (integer)

    ID of the stage the application is currently in

  • custom_fields (array of object)

    • id (integer)

      custom field ID

    • value (string)

      the custom field’s value

  • organization (integer)

    ID of application’s organization; null if the application is not associated with an organization

  • program (integer)

    program ID for the application

  • reference_id (string)

  • state (integer) Permitted values: 0, 1, 2, 3

    • 0: Active

    • 1: Locked

    • 2: Hidden

    • 3: Archived

    • 4: Trashed

  • title (string)

Example request:

PATCH /api/applications/{id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "applicant": 1,
    "collaborators": [
        1
    ],
    "current_stage": 1,
    "custom_fields": [
        {
            "id": 1,
            "value": "string"
        }
    ],
    "organization": 1,
    "program": 1,
    "reference_id": "string",
    "state": 0,
    "title": "string"
}
Status Codes:
  • 200 OK

    Application updated

    Endpoint properties

    • applicant (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • average_score (number)

    • collaborators (array of object)

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • created_at (string)

    • current_stage (object)

      • title (string)

      • id (integer)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • last_submitted_at (string)

      The most recent submit timestamp for the application

    • decision (object)

      Application Decision Reference

      • id (integer)

        ID of the award

      • decision (integer) Permitted values: 0, 1

        • 0 - Awarded

        • 1 - Declined

      • awarded (string)

        Value of the award

    • organization (object)

      Organization reference

      • id (integer)

        organization ID

      • name (string)

        organization name

    • overall_score (number)

    • program (object)

      • id (integer)

        program ID

      • name (string)

        program name

    • reference_id (string)

    • state (integer) Permitted values: 0, 1, 2, 3, 4

      • 0: Active

      • 1: Locked

      • 2: Hidden

      • 3: Archived

      • 4: Trashed

    • title (string)

    • updated_at (string)

    • weighted_score (number)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "applicant": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "average_score": 1.0,
        "collaborators": [
            {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            }
        ],
        "created_at": "2023-02-17T01:28:34.788838",
        "current_stage": {
            "title": "string",
            "id": 1
        },
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "last_submitted_at": "2023-02-17T01:28:34.788838",
        "decision": {
            "id": 1,
            "decision": 0,
            "awarded": "string"
        },
        "organization": {
            "id": 1,
            "name": "string"
        },
        "overall_score": 1.0,
        "program": {
            "id": 1,
            "name": "string"
        },
        "reference_id": "string",
        "state": 0,
        "title": "string",
        "updated_at": "2023-02-17T01:28:34.788838",
        "weighted_score": 1.0
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/applications/{id}/

Delete an application.

Admins need the Delete Applications permission to make this call.

Parameters:
  • id (integer) – Application ID

Status Codes:
GET /api/applications/{id}/stages/

Retrieves a list of all the stages the application has been in.

Only site administrators can access this endpoint.

Parameters:
  • id (integer) – application ID

Example request:

GET /api/applications/{id}/stages/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Success

    Endpoint properties

    • array of object

      • state (integer) Permitted values: 0, 1, 2

        • 0 - Submitted

        • 1 - Reopened

        • 2 - Initialized

      • status (object)

        • name (string)

        • id (integer)

      • stage (object)

        • title (string)

        • id (integer)

      • created_at (string)

      • date_submitted (string)

      • date_reopened (string)

      • task_completion (integer)

        percentage of required tasks completed

      • reviews_assigned (integer)

        number of application reviews assigned in this stage

      • reviews_submitted (integer)

        number of application reviews submitted in this stage

      • reviews_completed (integer)

        number of application reviews completed in this stage

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "state": 0,
            "status": {
                "name": "string",
                "id": 1
            },
            "stage": {
                "title": "string",
                "id": 1
            },
            "created_at": "2023-02-17T01:28:34.788838",
            "date_submitted": "2023-02-17T01:28:34.788838",
            "date_reopened": "2023-02-17T01:28:34.788838",
            "task_completion": 1,
            "reviews_assigned": 1,
            "reviews_submitted": 1,
            "reviews_completed": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application does not exist

  • 429 Too Many Requests – Rate limit exceeded

GET /api/applications/{id}/stages/{stage_id}/

Retrieves a specific stage for an application.

Only site administrators can access this endpoint.

Parameters:
  • id (integer) – application ID

  • stage_id (integer) – stage ID

Example request:

GET /api/applications/{id}/stages/{stage_id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Success

    Endpoint properties

    • state (integer) Permitted values: 0, 1, 2

      • 0 - Submitted

      • 1 - Reopened

      • 2 - Initialized

    • status (object)

      • name (string)

      • id (integer)

    • stage (object)

      • title (string)

      • id (integer)

    • created_at (string)

    • date_submitted (string)

    • date_reopened (string)

    • task_completion (integer)

      percentage of required tasks completed

    • reviews_assigned (integer)

      number of application reviews assigned in this stage

    • reviews_submitted (integer)

      number of application reviews submitted in this stage

    • reviews_completed (integer)

      number of application reviews completed in this stage

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "state": 0,
        "status": {
            "name": "string",
            "id": 1
        },
        "stage": {
            "title": "string",
            "id": 1
        },
        "created_at": "2023-02-17T01:28:34.788838",
        "date_submitted": "2023-02-17T01:28:34.788838",
        "date_reopened": "2023-02-17T01:28:34.788838",
        "task_completion": 1,
        "reviews_assigned": 1,
        "reviews_submitted": 1,
        "reviews_completed": 1
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application does not exist

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/applications/{id}/stages/{stage_id}/

Update state and status of the application in the stage. The state and status can only be updated if the application is currently in the stage. An application that is withdrawn cannot be submitted.

Set the apply-automations header to full to trigger the following automation events:

  • Application has changed status - if the status was changed

  • Application has been submitted - if the application was submitted

Only site administrators can access this endpoint.

Parameters:
  • id (integer) – application id

  • stage_id (integer) – stage id

Endpoint properties

  • state (integer) Permitted values: 0, 1, 2

    • 0 - Submitted

    • 1 - Reopened

    • 2 - Initialized

  • status (integer)

    The id of the new status

Example request:

PATCH /api/applications/{id}/stages/{stage_id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "status": 2,
    "completed_at": "2019-08-21T12:39:06.722984",
    "data": {
        "text1": "Board games",
        "number1": 6,
        "checkboxes1": [
            1,
            2
        ],
        "checkboxesother2": {
            "value": [
                1,
                2,
                9
            ],
            "other": [
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "Historical"
            ]
        },
        "radio1": 3,
        "radioother2": {
            "value": 7,
            "other": "Worker placement"
        }
    }
}
Status Codes:
  • 200 OK

    Success

    Endpoint properties

    • id (integer)

      task id

    • status (integer) Permitted values: 1, 2, 3

      • 1 - Not started

      • 2 - In progress

      • 3 - Completed

    • type (integer) Permitted values: 1, 2, 5, 7, 10, 20

      • 1 - Fill out a form

      • 2 - Attach file

      • 5 - Complete an external task

      • 7 - Get a recommendation

      • 10 - Make a payment

      • 20 - Verify charity status

    • name (string)

      task name

    • created_at (string)

    • updated_at (string)

    • completed_at (string)

    • stage (object)

      • title (string)

      • id (integer)

    • data (**)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "status": 1,
        "type": 1,
        "name": "string",
        "created_at": "2023-02-17T01:28:34.788838",
        "updated_at": "2023-02-17T01:28:34.788838",
        "completed_at": "2023-02-17T01:28:34.788838",
        "stage": {
            "title": "string",
            "id": 1
        },
        "data": {
            "DYNAMIC_FIELDS": "string"
        }
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application or task does not exist

  • 429 Too Many Requests – Rate limit exceeded

GET /api/applications/{id}/tasks/

Retrieves a list of all the tasks from the application.

Parameters:
  • id (integer) – application ID

Example request:

GET /api/applications/{id}/tasks/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Success

    Endpoint properties

    • array of object

      • id (integer)

        task id

      • status (integer) Permitted values: 1, 2, 3

        • 1 - Not started

        • 2 - In progress

        • 3 - Completed

      • type (integer) Permitted values: 1, 2, 5, 7, 10, 20

        • 1 - Fill out a form

        • 2 - Attach file

        • 5 - Complete an external task

        • 7 - Get a recommendation

        • 10 - Make a payment

        • 20 - Verify charity status

      • name (string)

        task name

      • created_at (string)

      • updated_at (string)

      • completed_at (string)

      • stage (object)

        • title (string)

        • id (integer)

      • data (**)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "status": 1,
            "type": 1,
            "name": "string",
            "created_at": "2023-02-17T01:28:34.788838",
            "updated_at": "2023-02-17T01:28:34.788838",
            "completed_at": "2023-02-17T01:28:34.788838",
            "stage": {
                "title": "string",
                "id": 1
            },
            "data": {
                "DYNAMIC_FIELDS": "string"
            }
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application does not exist

  • 429 Too Many Requests – Rate limit exceeded

GET /api/applications/{id}/tasks/{task_id}/

Retrieves a specific task from the application.

Parameters:
  • id (integer) – application id

  • task_id (integer) – task id

Example request:

GET /api/applications/{id}/tasks/{task_id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Success

    Endpoint properties

    • id (integer)

      task id

    • status (integer) Permitted values: 1, 2, 3

      • 1 - Not started

      • 2 - In progress

      • 3 - Completed

    • type (integer) Permitted values: 1, 2, 5, 7, 10, 20

      • 1 - Fill out a form

      • 2 - Attach file

      • 5 - Complete an external task

      • 7 - Get a recommendation

      • 10 - Make a payment

      • 20 - Verify charity status

    • name (string)

      task name

    • created_at (string)

    • updated_at (string)

    • completed_at (string)

    • stage (object)

      • title (string)

      • id (integer)

    • data (**)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "status": 1,
        "type": 1,
        "name": "string",
        "created_at": "2023-02-17T01:28:34.788838",
        "updated_at": "2023-02-17T01:28:34.788838",
        "completed_at": "2023-02-17T01:28:34.788838",
        "stage": {
            "title": "string",
            "id": 1
        },
        "data": {
            "DYNAMIC_FIELDS": "string"
        }
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application or task does not exist

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/applications/{id}/tasks/{task_id}/

Update the applicant responses for a specific task.

Set the apply-automations header to full to trigger automations based on task events. If this is the first call and the task’s status is not completed, then “Task has been started” automations will fire. If the task is edited after the status has been set to completed, then “Task has been edited after completion” automations will fire. If the task is submitted with status set to confirmed, then “Task has been marked as complete” automations will fire.

Parameters:
  • id (integer) – application id

  • task_id (integer) – task id

Endpoint properties

  • status (integer) Permitted values: 1, 2, 3

    • 1 - Not started

    • 2 - In progress

    • 3 - Completed

  • completed_at (string)

  • data (object)

    An object containing question IDs and values for the task responses.

Example request:

PATCH /api/applications/{id}/tasks/{task_id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "status": 2,
    "completed_at": "2019-08-21T12:39:06.722984",
    "data": {
        "text1": "Board games",
        "number1": 6,
        "checkboxes1": [
            1,
            2
        ],
        "checkboxesother2": {
            "value": [
                1,
                2,
                9
            ],
            "other": [
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "",
                "Historical"
            ]
        },
        "radio1": 3,
        "radioother2": {
            "value": 7,
            "other": "Worker placement"
        }
    }
}
Status Codes:
  • 200 OK

    Success

    Endpoint properties

    • id (integer)

      task id

    • status (integer) Permitted values: 1, 2, 3

      • 1 - Not started

      • 2 - In progress

      • 3 - Completed

    • type (integer) Permitted values: 1, 2, 5, 7, 10, 20

      • 1 - Fill out a form

      • 2 - Attach file

      • 5 - Complete an external task

      • 7 - Get a recommendation

      • 10 - Make a payment

      • 20 - Verify charity status

    • name (string)

      task name

    • created_at (string)

    • updated_at (string)

    • completed_at (string)

    • stage (object)

      • title (string)

      • id (integer)

    • data (**)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "status": 1,
        "type": 1,
        "name": "string",
        "created_at": "2023-02-17T01:28:34.788838",
        "updated_at": "2023-02-17T01:28:34.788838",
        "completed_at": "2023-02-17T01:28:34.788838",
        "stage": {
            "title": "string",
            "id": 1
        },
        "data": {
            "DYNAMIC_FIELDS": "string"
        }
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application or task does not exist

  • 429 Too Many Requests – Rate limit exceeded

POST /api/applications/{id}/tasks/{task_id}/files/

Uploads a new file. For upload tasks, the content of the file goes under the field “file”. For upload questions in form tasks, the content of the file goes under the id of the question. For example, “MgplTbynuL”.

Parameters:
  • id (integer) – application id

  • task_id (integer) – task id

Status Codes:
GET /api/applications/{id}/tasks/{task_id}/files/{file_id}/

Downloads the file from upload tasks or questions.

Parameters:
  • id (integer) – application id

  • task_id (integer) – task id

  • file_id (integer) – file id

Example request:

GET /api/applications/{id}/tasks/{task_id}/files/{file_id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
DELETE /api/applications/{id}/tasks/{task_id}/files/{file_id}/

Delete a file from upload tasks or questions.

Parameters:
  • id (integer) – application id

  • task_id (integer) – task id

  • file_id (integer) – file id

Status Codes:
GET /api/applications/{application_id}/notes/

Retrieve a list of notes on an application. Reviewers and administrators can add notes to an application.

Parameters:
  • application_id (integer) – Application ID

Example request:

GET /api/applications/{application_id}/notes/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • author (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • author_role (string) Permitted values: admin, reviewer

      • content (string)

        the text of the note

      • edited (boolean)

      • created_at (string)

      • is_private (boolean)

        If true, only admins can see the note

      • updated_at (string)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "author": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "author_role": "admin",
            "content": "string",
            "edited": true,
            "created_at": "2023-02-17T01:28:34.788838",
            "is_private": true,
            "updated_at": "2023-02-17T01:28:34.788838"
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application does not exist

  • 429 Too Many Requests – Rate limit exceeded

POST /api/applications/{application_id}/notes/

Add a note to an application. Only reviewers and administrators can add notes to an application.

Parameters:
  • application_id (integer) – Application ID

Endpoint properties

  • content (string)

    the text of the note

  • is_private (boolean)

    If true, only admins can see the note

Example request:

POST /api/applications/{application_id}/notes/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "content": "string",
    "is_private": true
}
Status Codes:
  • 201 Created

    Note created

    Endpoint properties

    • author (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • author_role (string) Permitted values: admin, reviewer

    • content (string)

      the text of the note

    • edited (boolean)

    • created_at (string)

    • is_private (boolean)

      If true, only admins can see the note

    • updated_at (string)

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "author": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "author_role": "admin",
        "content": "string",
        "edited": true,
        "created_at": "2023-02-17T01:28:34.788838",
        "is_private": true,
        "updated_at": "2023-02-17T01:28:34.788838"
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application does not exist

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/applications/{application_id}/notes/

Delete an application.

Parameters:
  • application_id (integer) – Application ID

Status Codes:
GET /api/applications/{application_id}/notes/{id}/

Retrieve an application note.

Parameters:
  • application_id (integer) – Application ID

  • id (integer) – Note ID

Example request:

GET /api/applications/{application_id}/notes/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • author (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • author_role (string) Permitted values: admin, reviewer

    • content (string)

      the text of the note

    • edited (boolean)

    • created_at (string)

    • is_private (boolean)

      If true, only admins can see the note

    • updated_at (string)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "author": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "author_role": "admin",
        "content": "string",
        "edited": true,
        "created_at": "2023-02-17T01:28:34.788838",
        "is_private": true,
        "updated_at": "2023-02-17T01:28:34.788838"
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application or note does not exist

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/applications/{application_id}/notes/{id}/

Update an application note.

Parameters:
  • application_id (integer) – Application ID

  • id (integer) – Note ID

Endpoint properties

  • content (string)

    the text of the note

  • is_private (boolean)

    If true, only admins can see the note

Example request:

PATCH /api/applications/{application_id}/notes/{id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "content": "string",
    "is_private": true
}
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • author (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • author_role (string) Permitted values: admin, reviewer

    • content (string)

      the text of the note

    • edited (boolean)

    • created_at (string)

    • is_private (boolean)

      If true, only admins can see the note

    • updated_at (string)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "author": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "author_role": "admin",
        "content": "string",
        "edited": true,
        "created_at": "2023-02-17T01:28:34.788838",
        "is_private": true,
        "updated_at": "2023-02-17T01:28:34.788838"
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application or note does not exist

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/applications/{application_id}/notes/{id}/

Delete an application note.

Parameters:
  • application_id (integer) – Application ID

  • id (integer) – Note ID

Status Codes:

Assignments

GET /api/assignments/

Retrieves a list of review assignments for the site.

Administrators need the Assign reviews permission to make this call.

Query Parameters:
  • application (integer) – limit reviews to a specific application

  • updated_at (string) – limit reviews based on their update timestamp

  • program (integer) – limit reviews to a specific program

  • reviewer (integer) – limit reviews to a specific reviewer

  • stage (integer) – limit reviews to a specific stage

Example request:

GET /api/assignments/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • application (object)

        • title (string)

        • id (integer)

      • program (object)

        • id (integer)

          program ID

        • name (string)

          program name

      • stage (object)

        • title (string)

        • id (integer)

      • reviewer (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "application": {
                "title": "string",
                "id": 1
            },
            "program": {
                "id": 1,
                "name": "string"
            },
            "stage": {
                "title": "string",
                "id": 1
            },
            "reviewer": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            }
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

POST /api/assignments/

Create a review assignment.

Administrators need the Assign reviews permission to make this call.

Endpoint properties

  • applications (array of integer)

    array of application IDs for the assignment

  • stage (integer)

    ID for the assignment stage

  • reviewer (integer)

    ID for the reviewer for the assignment

Example request:

POST /api/assignments/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "applications": [
        1
    ],
    "stage": 1,
    "reviewer": 1
}
Status Codes:
DELETE /api/assignments/

Delete an assignment. The review associated with the assignment will also be deleted.

Administrators need the Assign reviews permission to make this call.

Query Parameters:
  • application (integer) – the application of the assignment to delete (Required)

  • reviewer (integer) – the reviewer of the assignment to delete (Required)

  • stage (integer) – the stage of the assignment to delete (Required)

Status Codes:
GET /api/teamassignments/

Retrieves a list of review assignments for the site.

Administrators need the Assign reviews permission to make this call.

Query Parameters:
  • application (integer) – limit reviews to a specific application

  • updated_at (string) – limit reviews based on their update timestamp

  • program (integer) – limit reviews to a specific program

  • team (integer) – limit reviews to a specific team

  • stage (integer) – limit reviews to a specific stage

Example request:

GET /api/teamassignments/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • application (object)

        • title (string)

        • id (integer)

      • program (object)

        • id (integer)

          program ID

        • name (string)

          program name

      • stage (object)

        • title (string)

        • id (integer)

      • team (object)

        • name (string)

        • id (integer)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "application": {
                "title": "string",
                "id": 1
            },
            "program": {
                "id": 1,
                "name": "string"
            },
            "stage": {
                "title": "string",
                "id": 1
            },
            "team": {
                "name": "string",
                "id": 1
            }
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

POST /api/teamassignments/

Create a team review assignment.

Administrators need the Assign reviews permission to make this call.

Endpoint properties

  • applications (array of integer)

    array of application IDs for the assignment

  • stage (integer)

    ID for the assignment stage

  • team (integer)

    ID for the team for the assignment

Example request:

POST /api/teamassignments/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "applications": [
        1
    ],
    "stage": 1,
    "team": 1
}
Status Codes:
DELETE /api/teamassignments/

Delete a team assignment. The reviews associated with the team assignment will also be deleted.

Administrators need the Assign reviews permission to make this call.

Query Parameters:
  • application (integer) – the ID of the application of the assignment to delete (Required)

  • team (integer) – the ID of the team of the assignment to delete (Required)

  • stage (integer) – the ID of the stage of the assignment to delete (Required)

Status Codes:

Custom Fields

GET /api/customfields/

Fetches the list of custom fields defined for the site

Administrators need the Custom fields permission to make this call.

Query Parameters:
  • name (string) – limit custom fields by name

  • required (integer) – If 1 then only required custom fields are returned. If 0 then only unrequired custom fields are returned

  • type (integer) – limit custom fields to the specified type

Example request:

GET /api/customfields/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • id (integer)

        custom field ID

      • admin_only (boolean)

        if true, field is only visible to administrators

      • choices (array of string)

        List of possible choices for dropdown fields

      • default (string)

        default value for field if not explicitly set

      • name (string)

        display name for the custom field

      • readonly (boolean)

        if true then value cannot be changed

      • required (boolean)

        if true value must be filled in

      • show_in_registration (boolean)

        if true the field is displayed during registration

      • target (string) Permitted values: application, applicant, reviewer, recommender, program, decision

      • type (integer) Permitted values: 0, 1, 2, 4, 6, 7, 8

        • 0 : Short text

        • 1 : Dropdown

        • 2 : Email address

        • 4 : Number

        • 6 : Website

        • 7 : Long text

        • 8 : Date

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "admin_only": true,
            "choices": [
                "string"
            ],
            "default": "string",
            "name": "string",
            "readonly": true,
            "required": true,
            "show_in_registration": true,
            "target": "application",
            "type": 0
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

POST /api/customfields/

Create a custom field.

Admins need the Custom fields permission to make this call.

Endpoint properties

  • admin_only (boolean)

    if true, field is only visible to administrators

  • choices (array of string)

    List of possible choices for dropdown fields

  • default (string)

    default value for field if not explicitly set

  • name (string)

    display name for the custom field

  • readonly (boolean)

    if true then value cannot be changed

  • required (boolean)

    if true value must be filled in

  • show_in_registration (boolean)

    if true the field is displayed during registration

  • target (string) Permitted values: application, applicant, reviewer, recommender, program, decision

  • type (integer) Permitted values: 0, 1, 2, 4, 6, 7, 8

    • 0 : Short text

    • 1 : Dropdown

    • 2 : Email address

    • 4 : Number

    • 6 : Website

    • 7 : Long text

    • 8 : Date

Example request:

POST /api/customfields/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "admin_only": true,
    "choices": [
        "string"
    ],
    "default": "string",
    "name": "string",
    "readonly": true,
    "required": true,
    "show_in_registration": true,
    "target": "application",
    "type": 0
}
Status Codes:
  • 201 Created

    Custom field created

    Endpoint properties

    • id (integer)

      custom field ID

    • admin_only (boolean)

      if true, field is only visible to administrators

    • choices (array of string)

      List of possible choices for dropdown fields

    • default (string)

      default value for field if not explicitly set

    • name (string)

      display name for the custom field

    • readonly (boolean)

      if true then value cannot be changed

    • required (boolean)

      if true value must be filled in

    • show_in_registration (boolean)

      if true the field is displayed during registration

    • target (string) Permitted values: application, applicant, reviewer, recommender, program, decision

    • type (integer) Permitted values: 0, 1, 2, 4, 6, 7, 8

      • 0 : Short text

      • 1 : Dropdown

      • 2 : Email address

      • 4 : Number

      • 6 : Website

      • 7 : Long text

      • 8 : Date

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "id": 1,
        "admin_only": true,
        "choices": [
            "string"
        ],
        "default": "string",
        "name": "string",
        "readonly": true,
        "required": true,
        "show_in_registration": true,
        "target": "application",
        "type": 0
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/customfields/{id}/

Retrieves detailed information about a custom field. Administrators need the Custom fields permission to make this call.

Parameters:
  • id (integer) – ID

Example request:

GET /api/customfields/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      custom field ID

    • admin_only (boolean)

      if true, field is only visible to administrators

    • choices (array of string)

      List of possible choices for dropdown fields

    • default (string)

      default value for field if not explicitly set

    • name (string)

      display name for the custom field

    • readonly (boolean)

      if true then value cannot be changed

    • required (boolean)

      if true value must be filled in

    • show_in_registration (boolean)

      if true the field is displayed during registration

    • target (string) Permitted values: application, applicant, reviewer, recommender, program, decision

    • type (integer) Permitted values: 0, 1, 2, 4, 6, 7, 8

      • 0 : Short text

      • 1 : Dropdown

      • 2 : Email address

      • 4 : Number

      • 6 : Website

      • 7 : Long text

      • 8 : Date

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "admin_only": true,
        "choices": [
            "string"
        ],
        "default": "string",
        "name": "string",
        "readonly": true,
        "required": true,
        "show_in_registration": true,
        "target": "application",
        "type": 0
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Custom field does not exist

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/customfields/{id}/

Delete a custom field.

Administrators need the Custom fields permission to make this call.

Parameters:
  • id (integer) – ID

Status Codes:
PATCH /api/customfields/{id}/

Update a custom field. Administrators need the Custom fields permission to make this call.

Parameters:
  • id (integer) – ID

Endpoint properties

  • admin_only (boolean)

    if true, field is only visible to administrators

  • choices (array of string)

    List of possible choices for dropdown fields

  • default (string)

    default value for field if not explicitly set

  • name (string)

    display name for the custom field

  • readonly (boolean)

    if true then value cannot be changed

  • required (boolean)

    if true value must be filled in

  • show_in_registration (boolean)

    if true the field is displayed during registration

  • target (string) Permitted values: application, applicant, reviewer, recommender, program, decision

  • type (integer) Permitted values: 0, 1, 2, 4, 6, 7, 8

    • 0 : Short text

    • 1 : Dropdown

    • 2 : Email address

    • 4 : Number

    • 6 : Website

    • 7 : Long text

    • 8 : Date

Example request:

PATCH /api/customfields/{id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "admin_only": true,
    "choices": [
        "string"
    ],
    "default": "string",
    "name": "string",
    "readonly": true,
    "required": true,
    "show_in_registration": true,
    "target": "application",
    "type": 0
}
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      custom field ID

    • admin_only (boolean)

      if true, field is only visible to administrators

    • choices (array of string)

      List of possible choices for dropdown fields

    • default (string)

      default value for field if not explicitly set

    • name (string)

      display name for the custom field

    • readonly (boolean)

      if true then value cannot be changed

    • required (boolean)

      if true value must be filled in

    • show_in_registration (boolean)

      if true the field is displayed during registration

    • target (string) Permitted values: application, applicant, reviewer, recommender, program, decision

    • type (integer) Permitted values: 0, 1, 2, 4, 6, 7, 8

      • 0 : Short text

      • 1 : Dropdown

      • 2 : Email address

      • 4 : Number

      • 6 : Website

      • 7 : Long text

      • 8 : Date

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "admin_only": true,
        "choices": [
            "string"
        ],
        "default": "string",
        "name": "string",
        "readonly": true,
        "required": true,
        "show_in_registration": true,
        "target": "application",
        "type": 0
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Custom field does not exist

  • 429 Too Many Requests – Rate limit exceeded

Financial Transactions

GET /api/financial-transactions/

Fetch financial transactions for a site. This endpoint only works on sites that have Financial Management enabled.

Administrators need one of the Financial Management permission to make this call.

Example request:

GET /api/financial-transactions/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • id (integer)

        ID for the transaction

      • transaction_id (integer)

        Incremental unique ID of the transaction

      • transaction_date (string)

      • created_at (string)

      • updated_at (string)

      • created_by (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • updated_by (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • notes (string)

      • transaction_type (integer) Permitted values: 0, 1, 2, 3, 4

        • 0: Deposit

        • 1: Withdrawal

        • 2: Transfer

        • 3: Payment

      • source_type (integer) Permitted values: 0, 1, 2, 3

        • 0: No source

        • 1: Program

        • 2: Fund

        • 3: Application

      • destination_type (integer) Permitted values: 0, 1, 2, 3

        • 0: No destination

        • 1: Program

        • 2: Fund

        • 3: Application

      • amount (number)

        Amount of money moving in the transaction

      • new_source_balance (number)

        Balance of the source after the transaction

      • new_destination_balance (number)

        Balance of the destination after the transaction

      • source (**)

        The source of the money for the transaction. The source will be null if the transaction is a deposit.

      • destination (**)

        The destination of the money for the transaction. The destination will be null if the transaction is a withdrawal.

      • payment (object)

        • id (integer)

          ID of the payment

        • amount (number)

          Total amount of money in the payment from all payment sources

        • created_by (object)

          User Reference

          • first_name (string)

          • last_name (string)

          • email (string)

          • id (integer)

        • created_at (string)

        • custom_fields (array of object)

          • id (integer)

            custom field ID

          • name (string)

            name of the custom field

          • value (string)

            the custom field’s value

        • decision (object)

          Application Decision Reference

          • id (integer)

            ID of the award

          • decision (integer) Permitted values: 0, 1

            • 0 - Awarded

            • 1 - Declined

          • awarded (string)

            Value of the award

        • effective_date (string)

        • note (string)

        • note_applicant_visible (boolean)

          Whether the note has been made visible to the applicant

        • status (object)

          • id (integer)

            ID of the status

          • name (string)

            Name of the payment status

        • sources (array of object)

          • id (integer)

          • transaction_id (integer)

          • transaction_date (string)

          • amount (number)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "transaction_id": 1,
            "transaction_date": "2023-02-17T01:28:34.788838",
            "created_at": "2023-02-17T01:28:34.788838",
            "updated_at": "2023-02-17T01:28:34.788838",
            "created_by": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "updated_by": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "notes": "string",
            "transaction_type": 0,
            "source_type": 0,
            "destination_type": 0,
            "amount": 1.0,
            "new_source_balance": 1.0,
            "new_destination_balance": 1.0,
            "source": {
                "id": 1,
                "name": "string"
            },
            "destination": {
                "allow_collaborators": true,
                "close_datetime": "2023-02-17T01:28:34.788838",
                "open_datetime": "2023-02-17T01:28:34.788838",
                "categories": "string",
                "custom_fields": [
                    {
                        "id": 1,
                        "name": "string",
                        "value": "string"
                    }
                ],
                "access": true,
                "active": true,
                "applicant_type": 0,
                "application_prefix": "string",
                "application_title_help": "string",
                "collaborator_domains": [
                    "string"
                ],
                "collaborator_invite_instructions": "string",
                "custom_value": "string",
                "description": "string",
                "edit_after_submit": true,
                "enable_application_limit": true,
                "grace_period": 1,
                "hide_value_from_applicants": true,
                "identifier": "string",
                "include_deadline_in_reminders": true,
                "limit_collaborator_domains": true,
                "listing_url": "string",
                "max_applications": 1,
                "max_value": 1.0,
                "name": "string",
                "no_application_dates": true,
                "no_close_date": true,
                "number_of_awards": 1,
                "publicity": true,
                "randomize_application_id": true,
                "require_application_title": true,
                "score_format": 0,
                "launched": true,
                "summary": "string",
                "value": 1.0,
                "value_type": 0,
                "total": 1.0,
                "allocated": 1.0,
                "paid": 1.0,
                "balance": 1.0,
                "funding_sources": [
                    {
                        "id": 1,
                        "balance": 1.0,
                        "fund": {
                            "id": 1,
                            "name": "string"
                        }
                    }
                ],
                "awards_made": 1
            },
            "payment": {
                "id": 1,
                "amount": 1.0,
                "created_by": {
                    "first_name": "string",
                    "last_name": "string",
                    "email": "name@example.com",
                    "id": 1
                },
                "created_at": "2023-02-17T01:28:34.788838",
                "custom_fields": [
                    {
                        "id": 1,
                        "name": "string",
                        "value": "string"
                    }
                ],
                "decision": {
                    "id": 1,
                    "decision": 0,
                    "awarded": "string"
                },
                "effective_date": "2023-02-17T01:28:34.788838",
                "note": "string",
                "note_applicant_visible": true,
                "status": {
                    "id": 1,
                    "name": "string"
                },
                "sources": [
                    {
                        "id": 1,
                        "transaction_id": 1,
                        "transaction_date": "2023-02-17T01:28:34.788838",
                        "amount": 1.0
                    }
                ]
            }
        }
    ]
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/financial-transactions/{id}/

Fetch a single financial transaction. This endpoint only works on sites that have Financial Management enabled.

Administrators need one of the Financial Management permission to make this call.

Parameters:
  • id (integer) – ID

Example request:

GET /api/financial-transactions/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      ID for the transaction

    • transaction_id (integer)

      Incremental unique ID of the transaction

    • transaction_date (string)

    • created_at (string)

    • updated_at (string)

    • created_by (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • updated_by (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • notes (string)

    • transaction_type (integer) Permitted values: 0, 1, 2, 3, 4

      • 0: Deposit

      • 1: Withdrawal

      • 2: Transfer

      • 3: Payment

    • source_type (integer) Permitted values: 0, 1, 2, 3

      • 0: No source

      • 1: Program

      • 2: Fund

      • 3: Application

    • destination_type (integer) Permitted values: 0, 1, 2, 3

      • 0: No destination

      • 1: Program

      • 2: Fund

      • 3: Application

    • amount (number)

      Amount of money moving in the transaction

    • new_source_balance (number)

      Balance of the source after the transaction

    • new_destination_balance (number)

      Balance of the destination after the transaction

    • source (**)

      The source of the money for the transaction. The source will be null if the transaction is a deposit.

    • destination (**)

      The destination of the money for the transaction. The destination will be null if the transaction is a withdrawal.

    • payment (object)

      • id (integer)

        ID of the payment

      • amount (number)

        Total amount of money in the payment from all payment sources

      • created_by (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • created_at (string)

      • custom_fields (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • decision (object)

        Application Decision Reference

        • id (integer)

          ID of the award

        • decision (integer) Permitted values: 0, 1

          • 0 - Awarded

          • 1 - Declined

        • awarded (string)

          Value of the award

      • effective_date (string)

      • note (string)

      • note_applicant_visible (boolean)

        Whether the note has been made visible to the applicant

      • status (object)

        • id (integer)

          ID of the status

        • name (string)

          Name of the payment status

      • sources (array of object)

        • id (integer)

        • transaction_id (integer)

        • transaction_date (string)

        • amount (number)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "transaction_id": 1,
        "transaction_date": "2023-02-17T01:28:34.788838",
        "created_at": "2023-02-17T01:28:34.788838",
        "updated_at": "2023-02-17T01:28:34.788838",
        "created_by": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "updated_by": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "notes": "string",
        "transaction_type": 0,
        "source_type": 0,
        "destination_type": 0,
        "amount": 1.0,
        "new_source_balance": 1.0,
        "new_destination_balance": 1.0,
        "source": {
            "id": 1,
            "name": "string"
        },
        "destination": {
            "allow_collaborators": true,
            "close_datetime": "2023-02-17T01:28:34.788838",
            "open_datetime": "2023-02-17T01:28:34.788838",
            "categories": "string",
            "custom_fields": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "access": true,
            "active": true,
            "applicant_type": 0,
            "application_prefix": "string",
            "application_title_help": "string",
            "collaborator_domains": [
                "string"
            ],
            "collaborator_invite_instructions": "string",
            "custom_value": "string",
            "description": "string",
            "edit_after_submit": true,
            "enable_application_limit": true,
            "grace_period": 1,
            "hide_value_from_applicants": true,
            "identifier": "string",
            "include_deadline_in_reminders": true,
            "limit_collaborator_domains": true,
            "listing_url": "string",
            "max_applications": 1,
            "max_value": 1.0,
            "name": "string",
            "no_application_dates": true,
            "no_close_date": true,
            "number_of_awards": 1,
            "publicity": true,
            "randomize_application_id": true,
            "require_application_title": true,
            "score_format": 0,
            "launched": true,
            "summary": "string",
            "value": 1.0,
            "value_type": 0,
            "total": 1.0,
            "allocated": 1.0,
            "paid": 1.0,
            "balance": 1.0,
            "funding_sources": [
                {
                    "id": 1,
                    "balance": 1.0,
                    "fund": {
                        "id": 1,
                        "name": "string"
                    }
                }
            ],
            "awards_made": 1
        },
        "payment": {
            "id": 1,
            "amount": 1.0,
            "created_by": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "created_at": "2023-02-17T01:28:34.788838",
            "custom_fields": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "decision": {
                "id": 1,
                "decision": 0,
                "awarded": "string"
            },
            "effective_date": "2023-02-17T01:28:34.788838",
            "note": "string",
            "note_applicant_visible": true,
            "status": {
                "id": 1,
                "name": "string"
            },
            "sources": [
                {
                    "id": 1,
                    "transaction_id": 1,
                    "transaction_date": "2023-02-17T01:28:34.788838",
                    "amount": 1.0
                }
            ]
        }
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Financial transaction does not exist

  • 429 Too Many Requests – Rate limit exceeded

Funds

GET /api/funds/

Retrieves a list of funds. This endpoint only works on sites that have Financial Management enabled.

Administrators need the View/Edit Funds permission to make this call.

Example request:

GET /api/funds/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • id (integer)

        ID of the fund

      • created_by (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • name (string)

        Fund name

      • site_fund_id (integer)

        Incremental unique ID of the fund

      • created_at (string)

      • fund_folder (object)

        • id (integer)

          ID of the fund folder

        • name (string)

          Name of the fund folder

      • custom_fields (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • balance (number)

        Current balance of the fund

      • total (number)

        Total amount of money that has been moved into the fund

      • allocated (number)

        Amount of money from this fund that has been allocated to applications

      • paid (number)

        Amount of money from this fund that has been paid to applications

      • available_to_programs (number)

        Amount of money from this fund that has been transferred to programs

      • utilization (number)

        Percentage of the fund total that has been paid or allocated to applications

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "created_by": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "name": "string",
            "site_fund_id": 1,
            "created_at": "2023-02-17T01:28:34.788838",
            "fund_folder": {
                "id": 1,
                "name": "string"
            },
            "custom_fields": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "balance": 1.0,
            "total": 1.0,
            "allocated": 1.0,
            "paid": 1.0,
            "available_to_programs": 1.0,
            "utilization": 1.0
        }
    ]
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/funds/{id}/

Retrieve a single fund. This endpoint only works on sites that have Financial Management enabled.

Administrators need the View/Edit Funds permission to make this call.

Parameters:
  • id (integer) – ID

Example request:

GET /api/funds/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      ID of the fund

    • created_by (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • name (string)

      Fund name

    • site_fund_id (integer)

      Incremental unique ID of the fund

    • created_at (string)

    • fund_folder (object)

      • id (integer)

        ID of the fund folder

      • name (string)

        Name of the fund folder

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • balance (number)

      Current balance of the fund

    • total (number)

      Total amount of money that has been moved into the fund

    • allocated (number)

      Amount of money from this fund that has been allocated to applications

    • paid (number)

      Amount of money from this fund that has been paid to applications

    • available_to_programs (number)

      Amount of money from this fund that has been transferred to programs

    • utilization (number)

      Percentage of the fund total that has been paid or allocated to applications

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "created_by": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "name": "string",
        "site_fund_id": 1,
        "created_at": "2023-02-17T01:28:34.788838",
        "fund_folder": {
            "id": 1,
            "name": "string"
        },
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "balance": 1.0,
        "total": 1.0,
        "allocated": 1.0,
        "paid": 1.0,
        "available_to_programs": 1.0,
        "utilization": 1.0
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Fund does not exist

  • 429 Too Many Requests – Rate limit exceeded

Program Fund Budgets

GET /api/budgets/

Retrieves a list of program fund budgets. This represents the amount of money a fund has transferred into a specific program.

Example request:

GET /api/budgets/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • id (integer)

        ID of the program balance

      • paid (number)

        Total money paid to applications in this program from this fund

      • allocated (number)

        Total money allocated to applications in this program from this fund

      • balance (number)

        Current balance in this program from this fund

      • budget (number)

        Total money that has been transferred to this program from this fund

      • fund (object)

        Fund Reference

        • id (integer)

          ID of the fund

        • name (string)

          Name of the fund

      • created_at (string)

      • program (object)

        • id (integer)

          program ID

        • name (string)

          program name

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "paid": 1.0,
            "allocated": 1.0,
            "balance": 1.0,
            "budget": 1.0,
            "fund": {
                "id": 1,
                "name": "string"
            },
            "created_at": "2023-02-17T01:28:34.788838",
            "program": {
                "id": 1,
                "name": "string"
            }
        }
    ]
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/budgets/{id}/

Retrieves a single program fund budget. This represents the amount of money a fund has transferred into a specific program.

Parameters:
  • id (integer) – ID

Example request:

GET /api/budgets/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      ID of the program balance

    • paid (number)

      Total money paid to applications in this program from this fund

    • allocated (number)

      Total money allocated to applications in this program from this fund

    • balance (number)

      Current balance in this program from this fund

    • budget (number)

      Total money that has been transferred to this program from this fund

    • fund (object)

      Fund Reference

      • id (integer)

        ID of the fund

      • name (string)

        Name of the fund

    • created_at (string)

    • program (object)

      • id (integer)

        program ID

      • name (string)

        program name

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "paid": 1.0,
        "allocated": 1.0,
        "balance": 1.0,
        "budget": 1.0,
        "fund": {
            "id": 1,
            "name": "string"
        },
        "created_at": "2023-02-17T01:28:34.788838",
        "program": {
            "id": 1,
            "name": "string"
        }
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Program fund budget does not exist

  • 429 Too Many Requests – Rate limit exceeded

Application Awards

GET /api/awards/

Retrieves a list of application awards that are visible to the caller.

Administrators need the View Applications permission to make this call.

Example request:

GET /api/awards/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • id (integer)

        ID of the award

      • program (object)

        • id (integer)

          program ID

        • name (string)

          program name

      • application (object)

        • title (string)

        • id (integer)

      • applicant (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • awarded (string)

        Value of the award

      • awarded_at (string)

      • created_at (string)

      • updated_at (string)

      • custom_fields (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • notification_message (string)

        Message displayed to applicants upon being awarded

      • decision (integer) Permitted values: 0, 1

        • 0 - Awarded

        • 1 - Declined

      • value (number)

        Monetary value of the award

      • applicant_decision_required (boolean)

        Whether the applicant must accept or decline the award

      • applicant_decision_deadline (string)

        Date by which the applicant must accept or decline the award

      • applicant_decision_submitted_on (string)

        Date at which the applicant accepted or declined the award

      • visible (boolean)

        Whether the award has been made visible to the applicant

      • applicant_decision (integer) Permitted values: 0, 2, 3

        • 0 - Pending

        • 2 - Accepted

        • 3 - Declined

      • applicant_note (string)

        Applicant note to administrators

      • payments (array of object)

        • id (integer)

          ID of the payment

        • amount (number)

          Total amount of money in the payment from all payment sources

        • status (object)

          • id (integer)

            ID of the status

          • name (string)

            Name of the payment status

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "program": {
                "id": 1,
                "name": "string"
            },
            "application": {
                "title": "string",
                "id": 1
            },
            "applicant": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "awarded": "string",
            "awarded_at": "2023-02-17T01:28:34.788838",
            "created_at": "2023-02-17T01:28:34.788838",
            "updated_at": "2023-02-17T01:28:34.788838",
            "custom_fields": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "notification_message": "string",
            "decision": 0,
            "value": 1.0,
            "applicant_decision_required": true,
            "applicant_decision_deadline": "2023-02-17T01:28:34.788838",
            "applicant_decision_submitted_on": "2023-02-17T01:28:34.788838",
            "visible": true,
            "applicant_decision": 0,
            "applicant_note": "string",
            "payments": [
                {
                    "id": 1,
                    "amount": 1.0,
                    "status": {
                        "id": 1,
                        "name": "string"
                    }
                }
            ]
        }
    ]
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/awards/{id}/

Retrieve a single application award. The caller must be able to view the application.

Admins need the View Applications permission to make this call.

Parameters:
  • id (integer) – ID

Example request:

GET /api/awards/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      ID of the award

    • program (object)

      • id (integer)

        program ID

      • name (string)

        program name

    • application (object)

      • title (string)

      • id (integer)

    • applicant (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • awarded (string)

      Value of the award

    • awarded_at (string)

    • created_at (string)

    • updated_at (string)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • notification_message (string)

      Message displayed to applicants upon being awarded

    • decision (integer) Permitted values: 0, 1

      • 0 - Awarded

      • 1 - Declined

    • value (number)

      Monetary value of the award

    • applicant_decision_required (boolean)

      Whether the applicant must accept or decline the award

    • applicant_decision_deadline (string)

      Date by which the applicant must accept or decline the award

    • applicant_decision_submitted_on (string)

      Date at which the applicant accepted or declined the award

    • visible (boolean)

      Whether the award has been made visible to the applicant

    • applicant_decision (integer) Permitted values: 0, 2, 3

      • 0 - Pending

      • 2 - Accepted

      • 3 - Declined

    • applicant_note (string)

      Applicant note to administrators

    • payments (array of object)

      • id (integer)

        ID of the payment

      • amount (number)

        Total amount of money in the payment from all payment sources

      • status (object)

        • id (integer)

          ID of the status

        • name (string)

          Name of the payment status

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "program": {
            "id": 1,
            "name": "string"
        },
        "application": {
            "title": "string",
            "id": 1
        },
        "applicant": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "awarded": "string",
        "awarded_at": "2023-02-17T01:28:34.788838",
        "created_at": "2023-02-17T01:28:34.788838",
        "updated_at": "2023-02-17T01:28:34.788838",
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "notification_message": "string",
        "decision": 0,
        "value": 1.0,
        "applicant_decision_required": true,
        "applicant_decision_deadline": "2023-02-17T01:28:34.788838",
        "applicant_decision_submitted_on": "2023-02-17T01:28:34.788838",
        "visible": true,
        "applicant_decision": 0,
        "applicant_note": "string",
        "payments": [
            {
                "id": 1,
                "amount": 1.0,
                "status": {
                    "id": 1,
                    "name": "string"
                }
            }
        ]
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Application award does not exist

  • 429 Too Many Requests – Rate limit exceeded

Logging

GET /api/log/

Fetches the log of calls to Apply Connect

Query Parameters:
  • actor (integer) – limit by user

  • object_id (integer) – limit log to a specific object

  • parent_id (integer) – limit log to a specific parent object. For example, if you want eligibility logs for a specific user, you would set parent_id to the ID of the user.

  • role (string) – limit by caller’s role

  • status_code (integer) – limit log by HTTP status code

  • timestamp (string) – limit log by the timestamp of the API call

  • url (string) – limit by API url

Example request:

GET /api/log/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      log ID

    • actor (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • elapsed (number)

      time to process the call, in msec

    • info (object)

      data specific to the endpoint

    • method (string) Permitted values: GET, POST, PATCH, DELETE, PUT

      HTTP method used for call

    • object_id (integer)

      ID of the returned object

    • parent_id (integer)

      ID of parent object

    • role (string) Permitted values: applicant, recommender, reviewer, admin

      caller’s role

    • status_code (integer) Permitted values: 200, 201, 204, 400, 401, 403, 404, 405

      HTTP status code for the call

    • timestamp (string)

      timestamp of the call

    • url (string)

      endpoint called

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "actor": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "elapsed": 1.0,
        "info": {},
        "method": "GET",
        "object_id": 1,
        "parent_id": 1,
        "role": "applicant",
        "status_code": 200,
        "timestamp": "2023-02-17T01:28:34.788838",
        "url": "string"
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 429 Too Many Requests – Rate limit exceeded

Tokens

POST /api/o/revoke_token/

Revoke your API token.

Endpoint properties

  • client_id (string)

    Your API client ID

  • client_secret (string)

    Your API client secret

  • refresh_token (string)

    Your API refresh token

Example request:

POST /api/o/revoke_token/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "client_id": "string",
    "client_secret": "string",
    "refresh_token": "string"
}
Status Codes:
POST /api/o/token/

This endpoint will generate a new access token. The token is valid for 2 hours from when it was generated.

Endpoint properties

  • grant_type (string) Permitted values: refresh_token

    The grant type. Only refresh token is supported.

  • client_id (string)

    Your API client ID

  • client_secret (string)

    Your API client secret

  • refresh_token (string)

    Your API refresh token

  • scope (string) Permitted values: applicant, recommender, reviewer, admin

    The permissions scope for the token. Only roles from the current user can be use as a scope value. For example, if the user has the roles “admin” and “applicant”, the scope parameter can take those values. Sending the value of “reviewer” will return in an “invalid_scope” error.

Example request:

POST /api/o/token/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "grant_type": "refresh_token",
    "client_id": "string",
    "client_secret": "string",
    "refresh_token": "string",
    "scope": "applicant"
}
Status Codes:
  • 200 OK

    Token refreshed

    Endpoint properties

    • access_token (string)

      new access token

    • expires_in (integer)

      number of seconds the token is valid for

    • refresh_token (string)

      token to use on your next refresh token call

    • scope (string) Permitted values: applicant, recommender, reviewer, admin

      The permission scope for this token

    • token_type (string) Permitted values: Bearer

      The type of token. At the moment, we only support a Bearer token

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "access_token": "string",
        "expires_in": 1,
        "refresh_token": "string",
        "scope": "applicant",
        "token_type": "Bearer"
    }
    

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

Organizations

GET /api/organizations/

Retrieves a list of organizations visible to the caller. Depending on the caller’s permissions, an organization or organization reference will be returned.

Only organization administrators and site administrators with the View users permission can access this endpoint.

Example request:

GET /api/organizations/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    Organization

    • id (integer)

      organization ID

    • allow_collaborators (boolean)

    • city (string)

    • country (string)

    • address (string)

    • email (string)

      email address for the organization

    • website (string)

    • phone (string)

    • tax_country (integer)

      • 0 : USA - EIN Number

      • 1 : Canada - CRA Business Number

      • 2 : Austria - VAT Number

      • 3 : Belgium - VAT Number

      • 4 : Bulgaria - VAT Number

      • 5 : Croatia - VAT Number

      • 6 : Cyprus - VAT Number

      • 7 : Czech Republic - VAT Number

      • 8 : Denmark - VAT Number

      • 9 : Estonia - VAT Number

      • 10 : Finland - VAT Number

      • 11 : France - VAT Number

      • 12 : Germany - VAT Number

      • 13 : Greece - VAT Number

      • 14 : Hungary - VAT Number

      • 15 : Ireland - VAT Number

      • 16 : Italy - VAT Number

      • 17 : Latvia - VAT Number

      • 18 : Lithuania - VAT Number

      • 19 : Luxembourg - VAT Number

      • 20 : Malta - VAT Number

      • 21 : Netherlands - VAT Number

      • 22 : Poland - VAT Number

      • 23 : Portugal - VAT Number

      • 24 : Romania - VAT Number

      • 25 : Slovakia - VAT Number

      • 26 : Slovenia - VAT Number

      • 27 : Spain - VAT Number

      • 28 : Sweden - VAT Number

      • 29 : United Kingdom and Isle of Man - VAT Number

    • tax_number (string)

      If the tax_country is set to US, then the format is required to be ‘12-3456789’. If the tax_country is Canada, then the format must be ‘123456789 RT 0001’

    • primary_admin (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • logo_url (string)

    • status (integer) Permitted values: 0, 1, 2

      • 0 - Inactive

      • 1 - Active

      • 2 - Invited

    Organization reference

    • id (integer)

      organization ID

    • name (string)

      organization name

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        [
            {
                "id": 1,
                "allow_collaborators": true,
                "city": "string",
                "country": "string",
                "address": "string",
                "email": "name@example.com",
                "website": "https://example.com",
                "phone": "string",
                "tax_country": 1,
                "tax_number": "string",
                "primary_admin": {
                    "first_name": "string",
                    "last_name": "string",
                    "email": "name@example.com",
                    "id": 1
                },
                "custom_fields": [
                    {
                        "id": 1,
                        "name": "string",
                        "value": "string"
                    }
                ],
                "logo_url": "https://example.com",
                "status": 0
            },
            {
                "id": 1,
                "name": "string"
            }
        ]
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

POST /api/organizations/

Create a new organization.

Admins need the Manually add users permission to make this call.

Set the apply-notify header to true to send the new organization’s primary admin an email notifying them that they have been invited to the organization.

You can use the apply-notify-message header to include a custom message in the notify email. Only text messages are supported.

Endpoint properties

  • allow_collaborators (boolean)

    If true, organization applications can have collaborators

  • city (string)

    city for the organization

  • country (string)

    country for the organization

  • address (string)

    address for the organization

  • email (string)

    email address for the organization

  • website (string)

    organization website URL

  • phone (string)

    organization phone number

  • tax_country (integer)

    Tax country code:

    • 0 : USA - EIN Number

    • 1 : Canada - CRA Business Number

    • 2 : Austria - VAT Number

    • 3 : Belgium - VAT Number

    • 4 : Bulgaria - VAT Number

    • 5 : Croatia - VAT Number

    • 6 : Cyprus - VAT Number

    • 7 : Czech Republic - VAT Number

    • 8 : Denmark - VAT Number

    • 9 : Estonia - VAT Number

    • 10 : Finland - VAT Number

    • 11 : France - VAT Number

    • 12 : Germany - VAT Number

    • 13 : Greece - VAT Number

    • 14 : Hungary - VAT Number

    • 15 : Ireland - VAT Number

    • 16 : Italy - VAT Number

    • 17 : Latvia - VAT Number

    • 18 : Lithuania - VAT Number

    • 19 : Luxembourg - VAT Number

    • 20 : Malta - VAT Number

    • 21 : Netherlands - VAT Number

    • 22 : Poland - VAT Number

    • 23 : Portugal - VAT Number

    • 24 : Romania - VAT Number

    • 25 : Slovakia - VAT Number

    • 26 : Slovenia - VAT Number

    • 27 : Spain - VAT Number

    • 28 : Sweden - VAT Number

    • 29 : United Kingdom and Isle of Man - VAT Number

  • tax_number (string)

    If the tax_country is set to US, then the format is required to be ‘12-3456789’. If the tax_country is Canada, then the format must be ‘123456789 RT 0001’

  • primary_admin (integer)

    user ID of primary administrator

  • custom_fields (array of object)

    • id (integer)

      custom field ID

    • name (string)

      name of the custom field

    • value (string)

      the custom field’s value

  • logo_url (string)

    url to the organization’s logo

  • status (integer) Permitted values: 0, 1, 2

    • 0 - Inactive

    • 1 - Active

    • 2 - Invited

Example request:

POST /api/organizations/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "allow_collaborators": true,
    "city": "string",
    "country": "string",
    "address": "string",
    "email": "name@example.com",
    "website": "https://example.com",
    "phone": "string",
    "tax_country": 1,
    "tax_number": "string",
    "primary_admin": 1,
    "custom_fields": [
        {
            "id": 1,
            "name": "string",
            "value": "string"
        }
    ],
    "logo_url": "https://example.com",
    "status": 0
}
Status Codes:
  • 201 Created

    Organization created

    Endpoint properties

    • id (integer)

      organization ID

    • allow_collaborators (boolean)

    • city (string)

    • country (string)

    • address (string)

    • email (string)

      email address for the organization

    • website (string)

    • phone (string)

    • tax_country (integer)

      • 0 : USA - EIN Number

      • 1 : Canada - CRA Business Number

      • 2 : Austria - VAT Number

      • 3 : Belgium - VAT Number

      • 4 : Bulgaria - VAT Number

      • 5 : Croatia - VAT Number

      • 6 : Cyprus - VAT Number

      • 7 : Czech Republic - VAT Number

      • 8 : Denmark - VAT Number

      • 9 : Estonia - VAT Number

      • 10 : Finland - VAT Number

      • 11 : France - VAT Number

      • 12 : Germany - VAT Number

      • 13 : Greece - VAT Number

      • 14 : Hungary - VAT Number

      • 15 : Ireland - VAT Number

      • 16 : Italy - VAT Number

      • 17 : Latvia - VAT Number

      • 18 : Lithuania - VAT Number

      • 19 : Luxembourg - VAT Number

      • 20 : Malta - VAT Number

      • 21 : Netherlands - VAT Number

      • 22 : Poland - VAT Number

      • 23 : Portugal - VAT Number

      • 24 : Romania - VAT Number

      • 25 : Slovakia - VAT Number

      • 26 : Slovenia - VAT Number

      • 27 : Spain - VAT Number

      • 28 : Sweden - VAT Number

      • 29 : United Kingdom and Isle of Man - VAT Number

    • tax_number (string)

      If the tax_country is set to US, then the format is required to be ‘12-3456789’. If the tax_country is Canada, then the format must be ‘123456789 RT 0001’

    • primary_admin (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • logo_url (string)

    • status (integer) Permitted values: 0, 1, 2

      • 0 - Inactive

      • 1 - Active

      • 2 - Invited

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "id": 1,
        "allow_collaborators": true,
        "city": "string",
        "country": "string",
        "address": "string",
        "email": "name@example.com",
        "website": "https://example.com",
        "phone": "string",
        "tax_country": 1,
        "tax_number": "string",
        "primary_admin": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "logo_url": "https://example.com",
        "status": 0
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/organizations/{id}/

Retrieve the details about an organization.

Parameters:
  • id (integer) – Organization ID

Example request:

GET /api/organizations/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      organization ID

    • allow_collaborators (boolean)

    • city (string)

    • country (string)

    • address (string)

    • email (string)

      email address for the organization

    • website (string)

    • phone (string)

    • tax_country (integer)

      • 0 : USA - EIN Number

      • 1 : Canada - CRA Business Number

      • 2 : Austria - VAT Number

      • 3 : Belgium - VAT Number

      • 4 : Bulgaria - VAT Number

      • 5 : Croatia - VAT Number

      • 6 : Cyprus - VAT Number

      • 7 : Czech Republic - VAT Number

      • 8 : Denmark - VAT Number

      • 9 : Estonia - VAT Number

      • 10 : Finland - VAT Number

      • 11 : France - VAT Number

      • 12 : Germany - VAT Number

      • 13 : Greece - VAT Number

      • 14 : Hungary - VAT Number

      • 15 : Ireland - VAT Number

      • 16 : Italy - VAT Number

      • 17 : Latvia - VAT Number

      • 18 : Lithuania - VAT Number

      • 19 : Luxembourg - VAT Number

      • 20 : Malta - VAT Number

      • 21 : Netherlands - VAT Number

      • 22 : Poland - VAT Number

      • 23 : Portugal - VAT Number

      • 24 : Romania - VAT Number

      • 25 : Slovakia - VAT Number

      • 26 : Slovenia - VAT Number

      • 27 : Spain - VAT Number

      • 28 : Sweden - VAT Number

      • 29 : United Kingdom and Isle of Man - VAT Number

    • tax_number (string)

      If the tax_country is set to US, then the format is required to be ‘12-3456789’. If the tax_country is Canada, then the format must be ‘123456789 RT 0001’

    • primary_admin (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • logo_url (string)

    • status (integer) Permitted values: 0, 1, 2

      • 0 - Inactive

      • 1 - Active

      • 2 - Invited

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "allow_collaborators": true,
        "city": "string",
        "country": "string",
        "address": "string",
        "email": "name@example.com",
        "website": "https://example.com",
        "phone": "string",
        "tax_country": 1,
        "tax_number": "string",
        "primary_admin": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "logo_url": "https://example.com",
        "status": 0
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Resource cannot be found

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/organizations/{id}/

Update an organization.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • id (integer) – Organization ID

Endpoint properties

  • allow_collaborators (boolean)

    If true, organization applications can have collaborators

  • city (string)

    city for the organization

  • country (string)

    country for the organization

  • address (string)

    address for the organization

  • email (string)

    email address for the organization

  • website (string)

    organization website URL

  • phone (string)

    organization phone number

  • tax_country (integer)

    Tax country code:

    • 0 : USA - EIN Number

    • 1 : Canada - CRA Business Number

    • 2 : Austria - VAT Number

    • 3 : Belgium - VAT Number

    • 4 : Bulgaria - VAT Number

    • 5 : Croatia - VAT Number

    • 6 : Cyprus - VAT Number

    • 7 : Czech Republic - VAT Number

    • 8 : Denmark - VAT Number

    • 9 : Estonia - VAT Number

    • 10 : Finland - VAT Number

    • 11 : France - VAT Number

    • 12 : Germany - VAT Number

    • 13 : Greece - VAT Number

    • 14 : Hungary - VAT Number

    • 15 : Ireland - VAT Number

    • 16 : Italy - VAT Number

    • 17 : Latvia - VAT Number

    • 18 : Lithuania - VAT Number

    • 19 : Luxembourg - VAT Number

    • 20 : Malta - VAT Number

    • 21 : Netherlands - VAT Number

    • 22 : Poland - VAT Number

    • 23 : Portugal - VAT Number

    • 24 : Romania - VAT Number

    • 25 : Slovakia - VAT Number

    • 26 : Slovenia - VAT Number

    • 27 : Spain - VAT Number

    • 28 : Sweden - VAT Number

    • 29 : United Kingdom and Isle of Man - VAT Number

  • tax_number (string)

    If the tax_country is set to US, then the format is required to be ‘12-3456789’. If the tax_country is Canada, then the format must be ‘123456789 RT 0001’

  • primary_admin (integer)

    user ID of primary administrator

  • custom_fields (array of object)

    • id (integer)

      custom field ID

    • name (string)

      name of the custom field

    • value (string)

      the custom field’s value

  • logo_url (string)

    url to the organization’s logo

  • status (integer) Permitted values: 0, 1, 2

    • 0 - Inactive

    • 1 - Active

    • 2 - Invited

Example request:

PATCH /api/organizations/{id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "allow_collaborators": true,
    "city": "string",
    "country": "string",
    "address": "string",
    "email": "name@example.com",
    "website": "https://example.com",
    "phone": "string",
    "tax_country": 1,
    "tax_number": "string",
    "primary_admin": 1,
    "custom_fields": [
        {
            "id": 1,
            "name": "string",
            "value": "string"
        }
    ],
    "logo_url": "https://example.com",
    "status": 0
}
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      organization ID

    • allow_collaborators (boolean)

    • city (string)

    • country (string)

    • address (string)

    • email (string)

      email address for the organization

    • website (string)

    • phone (string)

    • tax_country (integer)

      • 0 : USA - EIN Number

      • 1 : Canada - CRA Business Number

      • 2 : Austria - VAT Number

      • 3 : Belgium - VAT Number

      • 4 : Bulgaria - VAT Number

      • 5 : Croatia - VAT Number

      • 6 : Cyprus - VAT Number

      • 7 : Czech Republic - VAT Number

      • 8 : Denmark - VAT Number

      • 9 : Estonia - VAT Number

      • 10 : Finland - VAT Number

      • 11 : France - VAT Number

      • 12 : Germany - VAT Number

      • 13 : Greece - VAT Number

      • 14 : Hungary - VAT Number

      • 15 : Ireland - VAT Number

      • 16 : Italy - VAT Number

      • 17 : Latvia - VAT Number

      • 18 : Lithuania - VAT Number

      • 19 : Luxembourg - VAT Number

      • 20 : Malta - VAT Number

      • 21 : Netherlands - VAT Number

      • 22 : Poland - VAT Number

      • 23 : Portugal - VAT Number

      • 24 : Romania - VAT Number

      • 25 : Slovakia - VAT Number

      • 26 : Slovenia - VAT Number

      • 27 : Spain - VAT Number

      • 28 : Sweden - VAT Number

      • 29 : United Kingdom and Isle of Man - VAT Number

    • tax_number (string)

      If the tax_country is set to US, then the format is required to be ‘12-3456789’. If the tax_country is Canada, then the format must be ‘123456789 RT 0001’

    • primary_admin (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • logo_url (string)

    • status (integer) Permitted values: 0, 1, 2

      • 0 - Inactive

      • 1 - Active

      • 2 - Invited

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "allow_collaborators": true,
        "city": "string",
        "country": "string",
        "address": "string",
        "email": "name@example.com",
        "website": "https://example.com",
        "phone": "string",
        "tax_country": 1,
        "tax_number": "string",
        "primary_admin": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "logo_url": "https://example.com",
        "status": 0
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Resource cannot be found

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/organizations/{id}/

Delete an organization. All applications associated with the organization will also be deleted.

Only organization administrators and site administrators with the Delete users permission can access this endpoint.

Parameters:
  • id (integer) – Organization ID

Status Codes:
GET /api/organizations/{id}/members/

Fetch the list of organization members. The list includes both regular members and administrators.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • id (integer) – Organization id

Example request:

GET /api/organizations/{id}/members/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Organization members

    Endpoint properties

    • array of object

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

      • is_admin (boolean)

        set to true if member is an administrator

      • status (integer) Permitted values: 0, 1

        • 0: Inactive

        • 1: Active

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1,
            "is_admin": true,
            "status": 0
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Organization does not exist

  • 429 Too Many Requests – Rate limit exceeded

POST /api/organizations/{id}/members/

Add a member to the organization. The member must already be a user in Apply. You can add both admin and non-admin members.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Set the apply-notify header to true to send the member an email notifying them that they have been invited to the organization.

You can use the apply-notify-message header to include a custom message in the notify email. Only text messages are supported.

Parameters:
  • id (integer) – Organization id

Endpoint properties

  • email (string)

    Email address of user to add to the organization

  • is_admin (boolean)

    set to true if member is an administrator

  • message (string)

    custom text for the invitation notification email; html tags will be stripped; DEPRECATED, use the apply-notify-message header instead

  • notify_user (boolean)

    if true the member receives an email notifying them that they have been invited to the organization; DEPRECATED, use the apply-notify header instead

  • status (integer) Permitted values: 0, 1

    • 0: Inactive

    • 1: Active

Example request:

POST /api/organizations/{id}/members/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "email": "string",
    "is_admin": true,
    "message": "string",
    "notify_user": true,
    "status": 0
}
Status Codes:
  • 201 Created

    created

    Endpoint properties

    • first_name (string)

    • last_name (string)

    • email (string)

    • id (integer)

    • is_admin (boolean)

      set to true if member is an administrator

    • status (integer) Permitted values: 0, 1

      • 0: Inactive

      • 1: Active

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "first_name": "string",
        "last_name": "string",
        "email": "name@example.com",
        "id": 1,
        "is_admin": true,
        "status": 0
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/organizations/{organization_id}/members/{id}/

Fetch the user’s organization membership.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • organization_id (integer) – Organization id

  • id (integer) – User id

Example request:

GET /api/organizations/{organization_id}/members/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Organization membership

    Endpoint properties

    • first_name (string)

    • last_name (string)

    • email (string)

    • id (integer)

    • is_admin (boolean)

      set to true if member is an administrator

    • status (integer) Permitted values: 0, 1

      • 0: Inactive

      • 1: Active

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "first_name": "string",
        "last_name": "string",
        "email": "name@example.com",
        "id": 1,
        "is_admin": true,
        "status": 0
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Organization does not exist

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/organizations/{organization_id}/members/{id}/

Update a user’s organization membership. Items that can be updated are the membership state and whether the user is an organization admin.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • organization_id (integer) – Organization id

  • id (integer) – User id

Endpoint properties

  • is_admin (boolean)

    set to true if member is an administrator

  • status (integer) Permitted values: 0, 1

    • 0: Inactive

    • 1: Active

Example request:

PATCH /api/organizations/{organization_id}/members/{id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "is_admin": true,
    "status": 0
}
Status Codes:
  • 200 OK

    updated

    Endpoint properties

    • first_name (string)

    • last_name (string)

    • email (string)

    • id (integer)

    • is_admin (boolean)

      set to true if member is an administrator

    • status (integer) Permitted values: 0, 1

      • 0: Inactive

      • 1: Active

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "first_name": "string",
        "last_name": "string",
        "email": "name@example.com",
        "id": 1,
        "is_admin": true,
        "status": 0
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/organizations/{organization_id}/members/{id}/

Remove the user from the organization. Organization primary admins cannot be removed. Any applications associated with the user are reassigned to the organization’s primary admin.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • organization_id (integer) – Organization id

  • id (integer) – User id

Status Codes:
GET /api/organizations/{id}/teams/

Fetch the list of organization teams.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • id (integer) – Organization id

Example request:

GET /api/organizations/{id}/teams/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Organization teams

    Endpoint properties

    • array of object

      • name (string)

        team name

      • id (integer)

        member’s user id

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "name": "string",
            "id": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Organization does not exist

  • 429 Too Many Requests – Rate limit exceeded

POST /api/organizations/{id}/teams/

Create an organization team.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • id (integer) – Organization id

Status Codes:
GET /api/organizations/{organization_id}/teams/{id}/

Fetch the organization team.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • organization_id (integer) – Organization id

  • id (integer) – Team id

Example request:

GET /api/organizations/{organization_id}/teams/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Organization team

    Endpoint properties

    • name (string)

      team name

    • id (integer)

      member’s user id

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "name": "string",
        "id": 1
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Organization or team does not exist

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/organizations/{organization_id}/teams/{id}/

Update an organization team.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • organization_id (integer) – Organization id

  • id (integer) – Team id

Status Codes:
  • 200 OK

    updated

    Endpoint properties

    • name (string)

      team name

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "name": "string"
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Organization or team does not exist

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/organizations/{organization_id}/teams/{id}/

Delete an organization team. Only site and admins and organization admins can delete a team. You can optionally remove all team members, except the organization’s primary admin, from the organization.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • organization_id (integer) – Organization id

  • id (integer) – Team id

Query Parameters:
  • remove_members (integer) – If set to 1, team members will be removed from the organization.

Status Codes:

Organization Eligibility

GET /api/organizations/{id}/eligibility/

Fetch the eligibility responses for an organization. Eligibility responses are only available if the site has enabled eligibility.

Visibility Rules

  • applicants can see eligibility for organizations where they are the primary admin

  • recommenders cannot see eligibility responses

  • reviewers can see eligibility responses if the reviewer is reviewing the organization’s application and the stage has eligibility visible for reviewers

  • admins can see an organization’s eligibility

Parameters:
  • id (integer) – Organization ID

Example request:

GET /api/organizations/{id}/eligibility/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • created_at (string)

      timestamp when eligibility was started

    • updated_at (string)

      timestamp of last eligibility update

    • is_completed (boolean)

      if true, eligibility form has been completed

    • responses (array of object)

      • id (string)

        question identifier; IDs are unique within a task but might be repeated for different tasks

      • name (string)

        text of the question

      • response (string)

        The answer to the question

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "created_at": "2023-02-17T01:28:34.788838",
        "updated_at": "2023-02-17T01:28:34.788838",
        "is_completed": true,
        "responses": [
            {
                "id": "string",
                "name": "string",
                "response": "string"
            }
        ]
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Organization does not exist

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/organizations/{id}/eligibility/

Update the eligibility responses for an organization. Eligibility responses are only available if the site has enabled eligibility. The primary admin for an organization and any admin with the _AssumeRole_ permission can update eligibility responses.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • id (integer) – Organization ID

Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • created_at (string)

      timestamp when eligibility was started

    • updated_at (string)

      timestamp of last eligibility update

    • is_completed (boolean)

      if true, eligibility form has been completed

    • responses (array of object)

      • id (string)

        question identifier; IDs are unique within a task but might be repeated for different tasks

      • name (string)

        text of the question

      • response (string)

        The answer to the question

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "created_at": "2023-02-17T01:28:34.788838",
        "updated_at": "2023-02-17T01:28:34.788838",
        "is_completed": true,
        "responses": [
            {
                "id": "string",
                "name": "string",
                "response": "string"
            }
        ]
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Organization does not exist or site does not have eligibility enabled

  • 429 Too Many Requests – Rate limit exceeded

PUT /api/organizations/{id}/eligibility/

Create the eligibility responses for an organization. Eligibility responses are only available if the site has enabled eligibility. The primary admin for an organization and any admin with the _AssumeRole_ permission can create eligibility responses.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • id (integer) – Organization ID

Status Codes:
  • 201 Created

    Call was successful

    Endpoint properties

    • created_at (string)

      timestamp when eligibility was started

    • updated_at (string)

      timestamp of last eligibility update

    • is_completed (boolean)

      if true, eligibility form has been completed

    • responses (array of object)

      • id (string)

        question identifier; IDs are unique within a task but might be repeated for different tasks

      • name (string)

        text of the question

      • response (string)

        The answer to the question

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "created_at": "2023-02-17T01:28:34.788838",
        "updated_at": "2023-02-17T01:28:34.788838",
        "is_completed": true,
        "responses": [
            {
                "id": "string",
                "name": "string",
                "response": "string"
            }
        ]
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Organization does not exist or site does not have eligibility enabled

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/organizations/{id}/eligibility/

Remove eligibility responses for the organization.

Only organization administrators and site administrators with the Assume role permission can access this endpoint.

Parameters:
  • id (integer) – Organization ID

Status Codes:

Payments

GET /api/payments/

Retrieves a list of payments visible to the caller.

Only administrators with Award Applications permission can access this endpoint.

Example request:

GET /api/payments/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • id (integer)

        ID of the payment

      • amount (number)

        Total amount of money in the payment from all payment sources

      • created_by (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • created_at (string)

      • custom_fields (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • decision (object)

        Application Decision Reference

        • id (integer)

          ID of the award

        • decision (integer) Permitted values: 0, 1

          • 0 - Awarded

          • 1 - Declined

        • awarded (string)

          Value of the award

      • effective_date (string)

      • note (string)

      • note_applicant_visible (boolean)

        Whether the note has been made visible to the applicant

      • status (object)

        • id (integer)

          ID of the status

        • name (string)

          Name of the payment status

      • sources (array of object)

        • id (integer)

        • transaction_id (integer)

        • transaction_date (string)

        • amount (number)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "amount": 1.0,
            "created_by": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "created_at": "2023-02-17T01:28:34.788838",
            "custom_fields": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "decision": {
                "id": 1,
                "decision": 0,
                "awarded": "string"
            },
            "effective_date": "2023-02-17T01:28:34.788838",
            "note": "string",
            "note_applicant_visible": true,
            "status": {
                "id": 1,
                "name": "string"
            },
            "sources": [
                {
                    "id": 1,
                    "transaction_id": 1,
                    "transaction_date": "2023-02-17T01:28:34.788838",
                    "amount": 1.0
                }
            ]
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/payments/{id}/

Retrieve an individual payment. To see the transactions associated with the payment, use the /api/financial_transactions/ endpoint.

Only administrators with Award Applications permission can access this endpoint.

Parameters:
  • id (integer) – ID

Example request:

GET /api/payments/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

      ID of the payment

    • amount (number)

      Total amount of money in the payment from all payment sources

    • created_by (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • created_at (string)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • decision (object)

      Application Decision Reference

      • id (integer)

        ID of the award

      • decision (integer) Permitted values: 0, 1

        • 0 - Awarded

        • 1 - Declined

      • awarded (string)

        Value of the award

    • effective_date (string)

    • note (string)

    • note_applicant_visible (boolean)

      Whether the note has been made visible to the applicant

    • status (object)

      • id (integer)

        ID of the status

      • name (string)

        Name of the payment status

    • sources (array of object)

      • id (integer)

      • transaction_id (integer)

      • transaction_date (string)

      • amount (number)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "amount": 1.0,
        "created_by": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "created_at": "2023-02-17T01:28:34.788838",
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "decision": {
            "id": 1,
            "decision": 0,
            "awarded": "string"
        },
        "effective_date": "2023-02-17T01:28:34.788838",
        "note": "string",
        "note_applicant_visible": true,
        "status": {
            "id": 1,
            "name": "string"
        },
        "sources": [
            {
                "id": 1,
                "transaction_id": 1,
                "transaction_date": "2023-02-17T01:28:34.788838",
                "amount": 1.0
            }
        ]
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – payment does not exist

  • 429 Too Many Requests – Rate limit exceeded

Programs

GET /api/programs/

Retrieves a list of programs visible to the caller.

You can filter the list by name, launched, active, open_datetime, close_datetime.

Example request:

GET /api/programs/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • allow_collaborators (boolean)

        if true, applications can have collaborators

      • close_datetime (string)

      • open_datetime (string)

      • categories (string)

      • custom_fields (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • access (boolean)

      • active (boolean)

      • applicant_type (integer) Permitted values: 0, 1, 2

        Applicant types permitted to apply

        • 0 : Individuals

        • 1 : Organizations

        • 2 : Both individuals and organizations

      • application_prefix (string)

      • application_title_help (string)

      • collaborator_domains (array of string)

      • collaborator_invite_instructions (string)

      • custom_value (string)

      • description (string)

      • edit_after_submit (boolean)

      • enable_application_limit (boolean)

        administrators only

      • grace_period (integer)

      • hide_value_from_applicants (boolean)

        administrators only

      • identifier (string)

      • include_deadline_in_reminders (boolean)

      • limit_collaborator_domains (boolean)

      • listing_url (string)

      • max_applications (integer)

      • max_value (number)

      • name (string)

      • no_application_dates (boolean)

      • no_close_date (boolean)

      • number_of_awards (integer)

      • publicity (boolean)

      • randomize_application_id (boolean)

      • require_application_title (boolean)

      • score_format (integer) Permitted values: 0, 1, 2

        Score display format

        • 0: Percentage

        • 1: Actual

        • 2: Both

      • launched (boolean)

      • summary (string)

      • value (number)

      • value_type (integer) Permitted values: 0, 2, 3, 4

        • 0 - Exactly; value stored in value

        • 2 - Range; values stored in value and max_value

        • 3 - None

        • 4 - Custom; value stored in custom_value

      • total (number)

        Total amount of money that has been moved into the program budget

      • allocated (number)

        Amount of money from this program that has been allocated to applications

      • paid (number)

        Amount of money from this program that has been paid to applications

      • balance (number)

        Current balance of the program budget

      • funding_sources (array of object)

        • id (integer)

          ID of the program balance

        • balance (number)

          Current balance in this program from this fund

        • fund (object)

          Fund Reference

          • id (integer)

            ID of the fund

          • name (string)

            Name of the fund

      • awards_made (integer)

        Number of applications in this program that have been awarded

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "allow_collaborators": true,
            "close_datetime": "2023-02-17T01:28:34.788838",
            "open_datetime": "2023-02-17T01:28:34.788838",
            "categories": "string",
            "custom_fields": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "access": true,
            "active": true,
            "applicant_type": 0,
            "application_prefix": "string",
            "application_title_help": "string",
            "collaborator_domains": [
                "string"
            ],
            "collaborator_invite_instructions": "string",
            "custom_value": "string",
            "description": "string",
            "edit_after_submit": true,
            "enable_application_limit": true,
            "grace_period": 1,
            "hide_value_from_applicants": true,
            "identifier": "string",
            "include_deadline_in_reminders": true,
            "limit_collaborator_domains": true,
            "listing_url": "string",
            "max_applications": 1,
            "max_value": 1.0,
            "name": "string",
            "no_application_dates": true,
            "no_close_date": true,
            "number_of_awards": 1,
            "publicity": true,
            "randomize_application_id": true,
            "require_application_title": true,
            "score_format": 0,
            "launched": true,
            "summary": "string",
            "value": 1.0,
            "value_type": 0,
            "total": 1.0,
            "allocated": 1.0,
            "paid": 1.0,
            "balance": 1.0,
            "funding_sources": [
                {
                    "id": 1,
                    "balance": 1.0,
                    "fund": {
                        "id": 1,
                        "name": "string"
                    }
                }
            ],
            "awards_made": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

POST /api/programs/

Create a new program.

Admins need the Create programs permission to make this call.

Endpoint properties

  • allow_collaborators (boolean)

    if true, applications can have collaborators

  • close_datetime (string)

  • open_datetime (string)

  • categories (string)

  • custom_fields (array of object)

    • id (integer)

      custom field ID

    • name (string)

      name of the custom field

    • value (string)

      the custom field’s value

  • access (boolean)

  • active (boolean)

  • applicant_type (integer) Permitted values: 0, 1, 2

    Applicant types permitted to apply

    • 0 : Individuals

    • 1 : Organizations

    • 2 : Both individuals and organizations

  • application_prefix (string)

  • application_title_help (string)

  • collaborator_domains (array of string)

  • collaborator_invite_instructions (string)

  • custom_value (string)

  • description (string)

  • edit_after_submit (boolean)

  • enable_application_limit (boolean)

    administrators only

  • grace_period (integer)

  • hide_value_from_applicants (boolean)

    administrators only

  • identifier (string)

  • include_deadline_in_reminders (boolean)

  • limit_collaborator_domains (boolean)

  • listing_url (string)

  • max_applications (integer)

  • max_value (number)

  • name (string)

  • no_application_dates (boolean)

  • no_close_date (boolean)

  • number_of_awards (integer)

  • publicity (boolean)

  • randomize_application_id (boolean)

  • require_application_title (boolean)

  • score_format (integer) Permitted values: 0, 1, 2

    Score display format

    • 0: Percentage

    • 1: Actual

    • 2: Both

  • launched (boolean)

  • summary (string)

  • value (number)

  • value_type (integer) Permitted values: 0, 2, 3, 4

    • 0 - Exactly; value stored in value

    • 2 - Range; values stored in value and max_value

    • 3 - None

    • 4 - Custom; value stored in custom_value

  • total (number)

    Total amount of money that has been moved into the program budget

  • allocated (number)

    Amount of money from this program that has been allocated to applications

  • paid (number)

    Amount of money from this program that has been paid to applications

  • balance (number)

    Current balance of the program budget

  • funding_sources (array of object)

    • id (integer)

      ID of the program balance

    • balance (number)

      Current balance in this program from this fund

    • fund (object)

      Fund Reference

      • id (integer)

        ID of the fund

      • name (string)

        Name of the fund

  • awards_made (integer)

    Number of applications in this program that have been awarded

Example request:

POST /api/programs/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "allow_collaborators": true,
    "close_datetime": "2023-02-17T01:28:34.788838",
    "open_datetime": "2023-02-17T01:28:34.788838",
    "categories": "string",
    "custom_fields": [
        {
            "id": 1,
            "name": "string",
            "value": "string"
        }
    ],
    "access": true,
    "active": true,
    "applicant_type": 0,
    "application_prefix": "string",
    "application_title_help": "string",
    "collaborator_domains": [
        "string"
    ],
    "collaborator_invite_instructions": "string",
    "custom_value": "string",
    "description": "string",
    "edit_after_submit": true,
    "enable_application_limit": true,
    "grace_period": 1,
    "hide_value_from_applicants": true,
    "identifier": "string",
    "include_deadline_in_reminders": true,
    "limit_collaborator_domains": true,
    "listing_url": "string",
    "max_applications": 1,
    "max_value": 1.0,
    "name": "string",
    "no_application_dates": true,
    "no_close_date": true,
    "number_of_awards": 1,
    "publicity": true,
    "randomize_application_id": true,
    "require_application_title": true,
    "score_format": 0,
    "launched": true,
    "summary": "string",
    "value": 1.0,
    "value_type": 0,
    "total": 1.0,
    "allocated": 1.0,
    "paid": 1.0,
    "balance": 1.0,
    "funding_sources": [
        {
            "id": 1,
            "balance": 1.0,
            "fund": {
                "id": 1,
                "name": "string"
            }
        }
    ],
    "awards_made": 1
}
Status Codes:
  • 201 Created

    Program created

    Endpoint properties

    • array of object

      • allow_collaborators (boolean)

        if true, applications can have collaborators

      • close_datetime (string)

      • open_datetime (string)

      • categories (string)

      • custom_fields (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • access (boolean)

      • active (boolean)

      • applicant_type (integer) Permitted values: 0, 1, 2

        Applicant types permitted to apply

        • 0 : Individuals

        • 1 : Organizations

        • 2 : Both individuals and organizations

      • application_prefix (string)

      • application_title_help (string)

      • collaborator_domains (array of string)

      • collaborator_invite_instructions (string)

      • custom_value (string)

      • description (string)

      • edit_after_submit (boolean)

      • enable_application_limit (boolean)

        administrators only

      • grace_period (integer)

      • hide_value_from_applicants (boolean)

        administrators only

      • identifier (string)

      • include_deadline_in_reminders (boolean)

      • limit_collaborator_domains (boolean)

      • listing_url (string)

      • max_applications (integer)

      • max_value (number)

      • name (string)

      • no_application_dates (boolean)

      • no_close_date (boolean)

      • number_of_awards (integer)

      • publicity (boolean)

      • randomize_application_id (boolean)

      • require_application_title (boolean)

      • score_format (integer) Permitted values: 0, 1, 2

        Score display format

        • 0: Percentage

        • 1: Actual

        • 2: Both

      • launched (boolean)

      • summary (string)

      • value (number)

      • value_type (integer) Permitted values: 0, 2, 3, 4

        • 0 - Exactly; value stored in value

        • 2 - Range; values stored in value and max_value

        • 3 - None

        • 4 - Custom; value stored in custom_value

      • total (number)

        Total amount of money that has been moved into the program budget

      • allocated (number)

        Amount of money from this program that has been allocated to applications

      • paid (number)

        Amount of money from this program that has been paid to applications

      • balance (number)

        Current balance of the program budget

      • funding_sources (array of object)

        • id (integer)

          ID of the program balance

        • balance (number)

          Current balance in this program from this fund

        • fund (object)

          Fund Reference

          • id (integer)

            ID of the fund

          • name (string)

            Name of the fund

      • awards_made (integer)

        Number of applications in this program that have been awarded

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    [
        {
            "allow_collaborators": true,
            "close_datetime": "2023-02-17T01:28:34.788838",
            "open_datetime": "2023-02-17T01:28:34.788838",
            "categories": "string",
            "custom_fields": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "access": true,
            "active": true,
            "applicant_type": 0,
            "application_prefix": "string",
            "application_title_help": "string",
            "collaborator_domains": [
                "string"
            ],
            "collaborator_invite_instructions": "string",
            "custom_value": "string",
            "description": "string",
            "edit_after_submit": true,
            "enable_application_limit": true,
            "grace_period": 1,
            "hide_value_from_applicants": true,
            "identifier": "string",
            "include_deadline_in_reminders": true,
            "limit_collaborator_domains": true,
            "listing_url": "string",
            "max_applications": 1,
            "max_value": 1.0,
            "name": "string",
            "no_application_dates": true,
            "no_close_date": true,
            "number_of_awards": 1,
            "publicity": true,
            "randomize_application_id": true,
            "require_application_title": true,
            "score_format": 0,
            "launched": true,
            "summary": "string",
            "value": 1.0,
            "value_type": 0,
            "total": 1.0,
            "allocated": 1.0,
            "paid": 1.0,
            "balance": 1.0,
            "funding_sources": [
                {
                    "id": 1,
                    "balance": 1.0,
                    "fund": {
                        "id": 1,
                        "name": "string"
                    }
                }
            ],
            "awards_made": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/programs/{id}/

Fetch details about a single program.

Parameters:
  • id (integer) – Program ID

Example request:

GET /api/programs/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • allow_collaborators (boolean)

      if true, applications can have collaborators

    • close_datetime (string)

    • open_datetime (string)

    • categories (string)

    • custom_fields (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • access (boolean)

    • active (boolean)

    • applicant_type (integer) Permitted values: 0, 1, 2

      Applicant types permitted to apply

      • 0 : Individuals

      • 1 : Organizations

      • 2 : Both individuals and organizations

    • application_prefix (string)

    • application_title_help (string)

    • collaborator_domains (array of string)

    • collaborator_invite_instructions (string)

    • custom_value (string)

    • description (string)

    • edit_after_submit (boolean)

    • enable_application_limit (boolean)

      administrators only

    • grace_period (integer)

    • hide_value_from_applicants (boolean)

      administrators only

    • identifier (string)

    • include_deadline_in_reminders (boolean)

    • limit_collaborator_domains (boolean)

    • listing_url (string)

    • max_applications (integer)

    • max_value (number)

    • name (string)

    • no_application_dates (boolean)

    • no_close_date (boolean)

    • number_of_awards (integer)

    • publicity (boolean)

    • randomize_application_id (boolean)

    • require_application_title (boolean)

    • score_format (integer) Permitted values: 0, 1, 2

      Score display format

      • 0: Percentage

      • 1: Actual

      • 2: Both

    • launched (boolean)

    • summary (string)

    • value (number)

    • value_type (integer) Permitted values: 0, 2, 3, 4

      • 0 - Exactly; value stored in value

      • 2 - Range; values stored in value and max_value

      • 3 - None

      • 4 - Custom; value stored in custom_value

    • total (number)

      Total amount of money that has been moved into the program budget

    • allocated (number)

      Amount of money from this program that has been allocated to applications

    • paid (number)

      Amount of money from this program that has been paid to applications

    • balance (number)

      Current balance of the program budget

    • funding_sources (array of object)

      • id (integer)

        ID of the program balance

      • balance (number)

        Current balance in this program from this fund

      • fund (object)

        Fund Reference

        • id (integer)

          ID of the fund

        • name (string)

          Name of the fund

    • awards_made (integer)

      Number of applications in this program that have been awarded

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "allow_collaborators": true,
        "close_datetime": "2023-02-17T01:28:34.788838",
        "open_datetime": "2023-02-17T01:28:34.788838",
        "categories": "string",
        "custom_fields": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "access": true,
        "active": true,
        "applicant_type": 0,
        "application_prefix": "string",
        "application_title_help": "string",
        "collaborator_domains": [
            "string"
        ],
        "collaborator_invite_instructions": "string",
        "custom_value": "string",
        "description": "string",
        "edit_after_submit": true,
        "enable_application_limit": true,
        "grace_period": 1,
        "hide_value_from_applicants": true,
        "identifier": "string",
        "include_deadline_in_reminders": true,
        "limit_collaborator_domains": true,
        "listing_url": "string",
        "max_applications": 1,
        "max_value": 1.0,
        "name": "string",
        "no_application_dates": true,
        "no_close_date": true,
        "number_of_awards": 1,
        "publicity": true,
        "randomize_application_id": true,
        "require_application_title": true,
        "score_format": 0,
        "launched": true,
        "summary": "string",
        "value": 1.0,
        "value_type": 0,
        "total": 1.0,
        "allocated": 1.0,
        "paid": 1.0,
        "balance": 1.0,
        "funding_sources": [
            {
                "id": 1,
                "balance": 1.0,
                "fund": {
                    "id": 1,
                    "name": "string"
                }
            }
        ],
        "awards_made": 1
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Program does not exist

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/programs/{id}/

Update an existing program.

Admins need the Edit program settings permission to make this call.

Parameters:
  • id (integer) – Program ID

Endpoint properties

  • allow_collaborators (boolean)

    if true, applications can have collaborators

  • close_datetime (string)

  • open_datetime (string)

  • categories (string)

  • custom_fields (array of object)

    • id (integer)

      custom field ID

    • name (string)

      name of the custom field

    • value (string)

      the custom field’s value

  • access (boolean)

  • active (boolean)

  • applicant_type (integer) Permitted values: 0, 1, 2

    Applicant types permitted to apply

    • 0 : Individuals

    • 1 : Organizations

    • 2 : Both individuals and organizations

  • application_prefix (string)

  • application_title_help (string)

  • collaborator_domains (array of string)

  • collaborator_invite_instructions (string)

  • custom_value (string)

  • description (string)

  • edit_after_submit (boolean)

  • enable_application_limit (boolean)

    administrators only

  • grace_period (integer)

  • hide_value_from_applicants (boolean)

    administrators only

  • identifier (string)

  • include_deadline_in_reminders (boolean)

  • limit_collaborator_domains (boolean)

  • listing_url (string)

  • max_applications (integer)

  • max_value (number)

  • name (string)

  • no_application_dates (boolean)

  • no_close_date (boolean)

  • number_of_awards (integer)

  • publicity (boolean)

  • randomize_application_id (boolean)

  • require_application_title (boolean)

  • score_format (integer) Permitted values: 0, 1, 2

    Score display format

    • 0: Percentage

    • 1: Actual

    • 2: Both

  • launched (boolean)

  • summary (string)

  • value (number)

  • value_type (integer) Permitted values: 0, 2, 3, 4

    • 0 - Exactly; value stored in value

    • 2 - Range; values stored in value and max_value

    • 3 - None

    • 4 - Custom; value stored in custom_value

  • total (number)

    Total amount of money that has been moved into the program budget

  • allocated (number)

    Amount of money from this program that has been allocated to applications

  • paid (number)

    Amount of money from this program that has been paid to applications

  • balance (number)

    Current balance of the program budget

  • funding_sources (array of object)

    • id (integer)

      ID of the program balance

    • balance (number)

      Current balance in this program from this fund

    • fund (object)

      Fund Reference

      • id (integer)

        ID of the fund

      • name (string)

        Name of the fund

  • awards_made (integer)

    Number of applications in this program that have been awarded

Example request:

PATCH /api/programs/{id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "allow_collaborators": true,
    "close_datetime": "2023-02-17T01:28:34.788838",
    "open_datetime": "2023-02-17T01:28:34.788838",
    "categories": "string",
    "custom_fields": [
        {
            "id": 1,
            "name": "string",
            "value": "string"
        }
    ],
    "access": true,
    "active": true,
    "applicant_type": 0,
    "application_prefix": "string",
    "application_title_help": "string",
    "collaborator_domains": [
        "string"
    ],
    "collaborator_invite_instructions": "string",
    "custom_value": "string",
    "description": "string",
    "edit_after_submit": true,
    "enable_application_limit": true,
    "grace_period": 1,
    "hide_value_from_applicants": true,
    "identifier": "string",
    "include_deadline_in_reminders": true,
    "limit_collaborator_domains": true,
    "listing_url": "string",
    "max_applications": 1,
    "max_value": 1.0,
    "name": "string",
    "no_application_dates": true,
    "no_close_date": true,
    "number_of_awards": 1,
    "publicity": true,
    "randomize_application_id": true,
    "require_application_title": true,
    "score_format": 0,
    "launched": true,
    "summary": "string",
    "value": 1.0,
    "value_type": 0,
    "total": 1.0,
    "allocated": 1.0,
    "paid": 1.0,
    "balance": 1.0,
    "funding_sources": [
        {
            "id": 1,
            "balance": 1.0,
            "fund": {
                "id": 1,
                "name": "string"
            }
        }
    ],
    "awards_made": 1
}
Status Codes:
  • 200 OK

    Program updated

    Endpoint properties

    • array of object

      • allow_collaborators (boolean)

        if true, applications can have collaborators

      • close_datetime (string)

      • open_datetime (string)

      • categories (string)

      • custom_fields (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • access (boolean)

      • active (boolean)

      • applicant_type (integer) Permitted values: 0, 1, 2

        Applicant types permitted to apply

        • 0 : Individuals

        • 1 : Organizations

        • 2 : Both individuals and organizations

      • application_prefix (string)

      • application_title_help (string)

      • collaborator_domains (array of string)

      • collaborator_invite_instructions (string)

      • custom_value (string)

      • description (string)

      • edit_after_submit (boolean)

      • enable_application_limit (boolean)

        administrators only

      • grace_period (integer)

      • hide_value_from_applicants (boolean)

        administrators only

      • identifier (string)

      • include_deadline_in_reminders (boolean)

      • limit_collaborator_domains (boolean)

      • listing_url (string)

      • max_applications (integer)

      • max_value (number)

      • name (string)

      • no_application_dates (boolean)

      • no_close_date (boolean)

      • number_of_awards (integer)

      • publicity (boolean)

      • randomize_application_id (boolean)

      • require_application_title (boolean)

      • score_format (integer) Permitted values: 0, 1, 2

        Score display format

        • 0: Percentage

        • 1: Actual

        • 2: Both

      • launched (boolean)

      • summary (string)

      • value (number)

      • value_type (integer) Permitted values: 0, 2, 3, 4

        • 0 - Exactly; value stored in value

        • 2 - Range; values stored in value and max_value

        • 3 - None

        • 4 - Custom; value stored in custom_value

      • total (number)

        Total amount of money that has been moved into the program budget

      • allocated (number)

        Amount of money from this program that has been allocated to applications

      • paid (number)

        Amount of money from this program that has been paid to applications

      • balance (number)

        Current balance of the program budget

      • funding_sources (array of object)

        • id (integer)

          ID of the program balance

        • balance (number)

          Current balance in this program from this fund

        • fund (object)

          Fund Reference

          • id (integer)

            ID of the fund

          • name (string)

            Name of the fund

      • awards_made (integer)

        Number of applications in this program that have been awarded

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "allow_collaborators": true,
            "close_datetime": "2023-02-17T01:28:34.788838",
            "open_datetime": "2023-02-17T01:28:34.788838",
            "categories": "string",
            "custom_fields": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "access": true,
            "active": true,
            "applicant_type": 0,
            "application_prefix": "string",
            "application_title_help": "string",
            "collaborator_domains": [
                "string"
            ],
            "collaborator_invite_instructions": "string",
            "custom_value": "string",
            "description": "string",
            "edit_after_submit": true,
            "enable_application_limit": true,
            "grace_period": 1,
            "hide_value_from_applicants": true,
            "identifier": "string",
            "include_deadline_in_reminders": true,
            "limit_collaborator_domains": true,
            "listing_url": "string",
            "max_applications": 1,
            "max_value": 1.0,
            "name": "string",
            "no_application_dates": true,
            "no_close_date": true,
            "number_of_awards": 1,
            "publicity": true,
            "randomize_application_id": true,
            "require_application_title": true,
            "score_format": 0,
            "launched": true,
            "summary": "string",
            "value": 1.0,
            "value_type": 0,
            "total": 1.0,
            "allocated": 1.0,
            "paid": 1.0,
            "balance": 1.0,
            "funding_sources": [
                {
                    "id": 1,
                    "balance": 1.0,
                    "fund": {
                        "id": 1,
                        "name": "string"
                    }
                }
            ],
            "awards_made": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Resource cannot be found

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/programs/{id}/

Delete a program.

Admins need the Delete program permission to make this call.

Parameters:
  • id (integer) – Program ID

Status Codes:

Reports

GET /api/reports/

Fetches the list of reports defined for the site.

Administrators need the Reports permission to make this call.

Query Parameters:
  • created_by (integer) – limit reports to a specific admin

  • last_generated_at (string) – limit reports based on their last generated timestamp

  • program (integer) – limit reports to a specific program

  • status (integer) – limit reports to a specific status

  • source (integer) – limit reports to a specific source

  • name (string) – limit reports to a specific name

  • id (integer) – limit reports to a specific id

Example request:

GET /api/reports/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • id (integer)

      • created_at (string)

      • created_by (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • columns (array of string)

        The list of variables for the columns in the report. In the description of the variables, the text in “” is the column label that is used in the exported report. The possible variables are:

        Program Variables

        These variables are not valid in user reports.

        • program.balance: “Balance”

        • program.category: “Category”

        • program.deadline: “Deadline”

        • program.id: “Program System ID”. Use this ID for making /api/programs/{id}/ calls.

        • program.name: “Program Name”

        • program.open_at: “Open Date”


        Organization Variables

        • organization.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

        • organization.address: “Organization Address”

        • organization.city: “Organization City”

        • organization.country: “Organization Country”

        • organization.email: “Organization Email”

        • organization.id: “Organization System ID”. Use this ID for making /api/organizations/{id}/ calls

        • organization.members: “Organization Members”

        • organization.name: “Organization Name”

        • organization.phone: “Organization Phone Number”

        • organization.primary_admin: “Organization Primary Admin”

        • organization.website: “Organization Website”


        User Variables

        These are used in user reports. Applicants, reviewers, and recommenders have their own version when user data is included in application, review, or recommendation reports.

        • user.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

        • user.email: “User Email Address”

        • user.email_verified: “Email Verified”

        • user.first_login: “First Login”

        • user.first_name: “User First Name”

        • user.id: “User System ID”. Use this ID for making /api/user/{id}/ calls

        • user.language: “Preferred Language”

        • user.last_login: “Last Login”

        • user.last_name: “User Last Name”

        • user.number_of_application_memberships: “Collaborator to Applications (Count)”

        • user.number_of_applications: “Application Count”

        • user.number_of_assignments: “Number of Reviewer Assignments”

        • user.number_of_conflicts: “Number of Reviewer Conflicts”

        • user.organizations: “Organizations Affiliated With”

        • user.programs_applied_to: “Programs Applied To”

        • user.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

        • user.timezone: “Timezone”

        • user.total_awarded: “Total Awarded to User”


        Recommendation Variables

        • recommender.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

        • recommender.email: “Recommender Email Address”

        • recommender.email_verified: “Email Verified”

        • recommender.first_login: “Recommender First Login”

        • recommender.first_name: “Recommender First Name”

        • recommender.id: “Recommender System ID”. Use this ID for making /api/user/{id}/ calls

        • recommender.last_login: “Recommender Last Login”

        • recommender.last_name: “Recommender Last Name”

        • recommender.language: Recommender’s “Preferred Language”

        • recommender.number_of_recommendations: “Number of Recommendations (total)”

        • recommender.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

        • recommender.timezone: Recommender’s “Timezone”


        Review Variables

        • reviewer.assignment_completion: “Assignment Completion Progress (across all stages)”

        • reviewer.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

        • reviewer.email: “Reviewer Email Address”

        • reviewer.email_verified: “Email Verified”

        • reviewer.first_login: “Reviewer First Login”

        • reviewer.first_name: “Reviewer First Name”

        • reviewer.id: “Reviewer System ID”. Use this ID for making /api/user/{id}/ calls

        • reviewer.last_login: “Reviewer Last Login”

        • reviewer.last_name: “Reviewer Last Name”

        • reviewer.language: “Preferred Language”

        • reviewer.number_of_assignments: “Number of Reviewer Assignments (total)”

        • reviewer.number_of_conflicts: “Number of Reviewer Conflicts (total)”. Note that conflicts are registered with applicants, not applications.

        • reviewer.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

        • reviewer.timezone: “Timezone”


        Applicant Variables

        These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

        • applicant.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

        • applicant.email: “Applicant Email Address”

        • applicant.email_verified: “Email Verified”

        • applicant.first_login: “Applicant First Login”

        • applicant.first_name: “Applicant First Name”

        • applicant.id: “Applicant System ID”. Use this ID for making /api/user/{id}/ calls

        • applicant.last_login: “Applicant Last Login”

        • applicant.last_name: “Applicant Last Name”

        • applicant.language: “Preferred Language”

        • applicant.number_of_application_memberships: “Collaborator to Applications (Count)”

        • applicant.number_of_applications: “Application Count”

        • applicant.organizations: “Organizations Affiliated With”

        • applicant.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

        • applicant.timezone: “Timezone”


        Application Variables

        These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

        • application.applicant_decision: “Decision by Applicant”

        • application.average_score: “Review Score: Average (across all stages)”

        • application.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

        • application.collaborators: “Collaborators”

        • application.completed_recommendations: “Number of completed Recommendations”

        • application.completed_reviews: “Number of completed Reviews”

        • application.created_at: “Date created”

        • application.cumulative_score: “Review Score: Cumulative (across all stages)”

        • application.decision: “Decision by Admin”

        • application.id: “Application System ID”. Use this ID for making /api/applications/{id}/ calls

        • application.labels: “Current Label(s)”

        • application.last_submitted_at: “Date last submitted”

        • application.reference_id: “Application ID”

        • application.reviewer_task_{id}_review_score_percentage: The reviewer’s percentage score for task {id} for the application.

        • application.reviewer_task_{id}_review_score: The reviewer’s score for task {id} for the application.

        • application.stage: “Current Stage”

        • application.state: “Current State”

        • application.status: “Current Status”

        • application.title: “Application Title”

        • application.total_awarded: “Total Awarded to Application”


        Task Variables

        These variables appear in the application, review, and recommendation reports. For task variables, the task ID follows task.. For example task.17_completion is the completion state for task 17. You can fetch the task details using /api/tasks/{id}/ .

        Form responses take the form of application.{question} where question identifies the task and question id. For example, application.survey_73_xNO50LQ8c5 refers to question xNO50LQ8c5 from task 73. You can find the question IDs using /api/tasks/ . Using our example, call /api/tasks/73/ to retrieve the task. The fields property will have an entry for xNO50LQ8c5. The column label for these fields will be the name entry in the field description.

        • application.{id}: Form response

        • task.{id}_completion: Task completion status

        • task.{id}_completedat: Task completion timestamp


      • download_link (string)

        This is blank if there is no report to download

      • last_error_message (string)

      • last_generated_at (string)

        This is blank if the report has never been generated

      • job_id (string)

        This is the ID of the job that is generating the report. If this is blank then the reporting is not being generated

      • name (string)

      • report_filename (string)

        File name for the report

      • file_size (integer)

      • program (object)

        • id (integer)

          program ID

        • name (string)

          program name

      • source (integer) Permitted values: 0, 1, 2, 3

        • 0: Applications

        • 1: Reviews

        • 2: Recommendations

        • 3: Users

      • status (integer) Permitted values: 0, 1, 2, 3, 4, 5

        • 0: Created

        • 1: Queued

        • 2: Generating

        • 3: Generated

        • 4: Error

        • 5: Canceled

      • row (integer)

        The current row number being generated by the report

      • total_rows (integer)

        The total number of rows in the report

      • filter (object)

        • type (string)

          Must be AND

        • items (array of object)

          • predicate (string) Permitted values: before, after, greaterthan, lessthan, startswith, equals, notequals, contains, doesnotcontain, containsoneof, notcontainsoneof, hasresponse, noresponse, True, False

          • value (string)

          • variable (string)

            An ID which represents the variable being filtered on. Note that not all filters are supported on all report types. Supported variables are:

            Application report filters:

            • 0: current stage

            • 3:{id}: completed task matching id

            • 7: current label(s)

            • 12: number of completed reviews

            • 15:{id}: custom fields for applicants, organizations and applications. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

            • 21: assigned to team

            • 22: assigned to reviewer

            • 42: current status

            • 43: number of completed recommendations

            • 54: applicant decision

            • 55: administrator decision

            • 58: submit date

            • 59: current state

            • 60: created date

            • 61: number of collaborators

            • 62: total awarded


            Review report filters:

            • 0: application current stage

            • 7: application current label(s)

            • 15:{id}: custom fields for applicants, organizations, applications and reviewers. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

            • 42: application current status

            • 59: application current state

            • 64: number of reviewer conflicts

            • 70: number of reviewer assignments


            Recommendation filters:

            • 0: application current stage

            • 7: application current label(s)

            • 15:{id}: custom fields for applicants, organizations, applications and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

            • 42: application current status

            • 59: application current state

            • 71: number of recommender recommendations (total)

            • 72:{id}: recommendation is completed. id is the recommendation task ID

            • 73:{id}: recommendation last updated at. id is the recommendation task ID


            User report filters:

            • 15:{id}: custom fields for applicants, organizations, reviewers, and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

            • 31: user has role

            • 63: eligibility quiz completed

            • 65: has applications

            • 66: has review assignments

            • 67: has recommendation requests

            • 68: has been awarded

            • 69: has been declined

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "created_at": "2023-02-17T01:28:34.788838",
            "created_by": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "columns": [
                "string"
            ],
            "download_link": "string",
            "last_error_message": "string",
            "last_generated_at": "2023-02-17T01:28:34.788838",
            "job_id": "string",
            "name": "string",
            "report_filename": "string",
            "file_size": 1,
            "program": {
                "id": 1,
                "name": "string"
            },
            "source": 0,
            "status": 0,
            "row": 1,
            "total_rows": 1,
            "filter": {
                "type": "string",
                "items": [
                    {
                        "predicate": "before",
                        "value": "string",
                        "variable": "string"
                    }
                ]
            }
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

POST /api/reports/

Create a new report. The report’s source and program cannot be changed after it is created.

Admins need the Reports permission to make this call.

Endpoint properties

  • columns (array of string)

    The list of variables for the columns in the report. In the description of the variables, the text in “” is the column label that is used in the exported report. The possible variables are:

    Program Variables

    These variables are not valid in user reports.

    • program.balance: “Balance”

    • program.category: “Category”

    • program.deadline: “Deadline”

    • program.id: “Program System ID”. Use this ID for making /api/programs/{id}/ calls.

    • program.name: “Program Name”

    • program.open_at: “Open Date”


    Organization Variables

    • organization.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • organization.address: “Organization Address”

    • organization.city: “Organization City”

    • organization.country: “Organization Country”

    • organization.email: “Organization Email”

    • organization.id: “Organization System ID”. Use this ID for making /api/organizations/{id}/ calls

    • organization.members: “Organization Members”

    • organization.name: “Organization Name”

    • organization.phone: “Organization Phone Number”

    • organization.primary_admin: “Organization Primary Admin”

    • organization.website: “Organization Website”


    User Variables

    These are used in user reports. Applicants, reviewers, and recommenders have their own version when user data is included in application, review, or recommendation reports.

    • user.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • user.email: “User Email Address”

    • user.email_verified: “Email Verified”

    • user.first_login: “First Login”

    • user.first_name: “User First Name”

    • user.id: “User System ID”. Use this ID for making /api/user/{id}/ calls

    • user.language: “Preferred Language”

    • user.last_login: “Last Login”

    • user.last_name: “User Last Name”

    • user.number_of_application_memberships: “Collaborator to Applications (Count)”

    • user.number_of_applications: “Application Count”

    • user.number_of_assignments: “Number of Reviewer Assignments”

    • user.number_of_conflicts: “Number of Reviewer Conflicts”

    • user.organizations: “Organizations Affiliated With”

    • user.programs_applied_to: “Programs Applied To”

    • user.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

    • user.timezone: “Timezone”

    • user.total_awarded: “Total Awarded to User”


    Recommendation Variables

    • recommender.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • recommender.email: “Recommender Email Address”

    • recommender.email_verified: “Email Verified”

    • recommender.first_login: “Recommender First Login”

    • recommender.first_name: “Recommender First Name”

    • recommender.id: “Recommender System ID”. Use this ID for making /api/user/{id}/ calls

    • recommender.last_login: “Recommender Last Login”

    • recommender.last_name: “Recommender Last Name”

    • recommender.language: Recommender’s “Preferred Language”

    • recommender.number_of_recommendations: “Number of Recommendations (total)”

    • recommender.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

    • recommender.timezone: Recommender’s “Timezone”


    Review Variables

    • reviewer.assignment_completion: “Assignment Completion Progress (across all stages)”

    • reviewer.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • reviewer.email: “Reviewer Email Address”

    • reviewer.email_verified: “Email Verified”

    • reviewer.first_login: “Reviewer First Login”

    • reviewer.first_name: “Reviewer First Name”

    • reviewer.id: “Reviewer System ID”. Use this ID for making /api/user/{id}/ calls

    • reviewer.last_login: “Reviewer Last Login”

    • reviewer.last_name: “Reviewer Last Name”

    • reviewer.language: “Preferred Language”

    • reviewer.number_of_assignments: “Number of Reviewer Assignments (total)”

    • reviewer.number_of_conflicts: “Number of Reviewer Conflicts (total)”. Note that conflicts are registered with applicants, not applications.

    • reviewer.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

    • reviewer.timezone: “Timezone”


    Applicant Variables

    These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

    • applicant.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • applicant.email: “Applicant Email Address”

    • applicant.email_verified: “Email Verified”

    • applicant.first_login: “Applicant First Login”

    • applicant.first_name: “Applicant First Name”

    • applicant.id: “Applicant System ID”. Use this ID for making /api/user/{id}/ calls

    • applicant.last_login: “Applicant Last Login”

    • applicant.last_name: “Applicant Last Name”

    • applicant.language: “Preferred Language”

    • applicant.number_of_application_memberships: “Collaborator to Applications (Count)”

    • applicant.number_of_applications: “Application Count”

    • applicant.organizations: “Organizations Affiliated With”

    • applicant.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

    • applicant.timezone: “Timezone”


    Application Variables

    These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

    • application.applicant_decision: “Decision by Applicant”

    • application.average_score: “Review Score: Average (across all stages)”

    • application.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • application.collaborators: “Collaborators”

    • application.completed_recommendations: “Number of completed Recommendations”

    • application.completed_reviews: “Number of completed Reviews”

    • application.created_at: “Date created”

    • application.cumulative_score: “Review Score: Cumulative (across all stages)”

    • application.decision: “Decision by Admin”

    • application.id: “Application System ID”. Use this ID for making /api/applications/{id}/ calls

    • application.labels: “Current Label(s)”

    • application.last_submitted_at: “Date last submitted”

    • application.reference_id: “Application ID”

    • application.reviewer_task_{id}_review_score_percentage: The reviewer’s percentage score for task {id} for the application.

    • application.reviewer_task_{id}_review_score: The reviewer’s score for task {id} for the application.

    • application.stage: “Current Stage”

    • application.state: “Current State”

    • application.status: “Current Status”

    • application.title: “Application Title”

    • application.total_awarded: “Total Awarded to Application”


    Task Variables

    These variables appear in the application, review, and recommendation reports. For task variables, the task ID follows task.. For example task.17_completion is the completion state for task 17. You can fetch the task details using /api/tasks/{id}/ .

    Form responses take the form of application.{question} where question identifies the task and question id. For example, application.survey_73_xNO50LQ8c5 refers to question xNO50LQ8c5 from task 73. You can find the question IDs using /api/tasks/ . Using our example, call /api/tasks/73/ to retrieve the task. The fields property will have an entry for xNO50LQ8c5. The column label for these fields will be the name entry in the field description.

    • application.{id}: Form response

    • task.{id}_completion: Task completion status

    • task.{id}_completedat: Task completion timestamp


  • name (string)

    The report name must be unique.

  • program (integer)

    ID for the program. Application, Review, and Recommendation reports require a program be specified. User reports require that no program is specified.

  • source (integer) Permitted values: 0, 1, 2, 3

    • 0: Applications

    • 1: Reviews

    • 2: Recommendations

    • 3: Users

  • filter (object)

    • type (string)

      Must be AND

    • items (array of object)

      • predicate (string) Permitted values: before, after, greaterthan, lessthan, startswith, equals, notequals, contains, doesnotcontain, containsoneof, notcontainsoneof, hasresponse, noresponse, True, False

      • value (string)

      • variable (string)

        An ID which represents the variable being filtered on. Note that not all filters are supported on all report types. Supported variables are:

        Application report filters:

        • 0: current stage

        • 3:{id}: completed task matching id

        • 7: current label(s)

        • 12: number of completed reviews

        • 15:{id}: custom fields for applicants, organizations and applications. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

        • 21: assigned to team

        • 22: assigned to reviewer

        • 42: current status

        • 43: number of completed recommendations

        • 54: applicant decision

        • 55: administrator decision

        • 58: submit date

        • 59: current state

        • 60: created date

        • 61: number of collaborators

        • 62: total awarded


        Review report filters:

        • 0: application current stage

        • 7: application current label(s)

        • 15:{id}: custom fields for applicants, organizations, applications and reviewers. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

        • 42: application current status

        • 59: application current state

        • 64: number of reviewer conflicts

        • 70: number of reviewer assignments


        Recommendation filters:

        • 0: application current stage

        • 7: application current label(s)

        • 15:{id}: custom fields for applicants, organizations, applications and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

        • 42: application current status

        • 59: application current state

        • 71: number of recommender recommendations (total)

        • 72:{id}: recommendation is completed. id is the recommendation task ID

        • 73:{id}: recommendation last updated at. id is the recommendation task ID


        User report filters:

        • 15:{id}: custom fields for applicants, organizations, reviewers, and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

        • 31: user has role

        • 63: eligibility quiz completed

        • 65: has applications

        • 66: has review assignments

        • 67: has recommendation requests

        • 68: has been awarded

        • 69: has been declined

Example request:

POST /api/reports/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "columns": [
        "string"
    ],
    "name": "string",
    "program": 1,
    "source": 0,
    "filter": {
        "type": "string",
        "items": [
            {
                "predicate": "before",
                "value": "string",
                "variable": "string"
            }
        ]
    }
}
Status Codes:
  • 201 Created

    Report created

    Endpoint properties

    • id (integer)

    • created_at (string)

    • created_by (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • columns (array of string)

      The list of variables for the columns in the report. In the description of the variables, the text in “” is the column label that is used in the exported report. The possible variables are:

      Program Variables

      These variables are not valid in user reports.

      • program.balance: “Balance”

      • program.category: “Category”

      • program.deadline: “Deadline”

      • program.id: “Program System ID”. Use this ID for making /api/programs/{id}/ calls.

      • program.name: “Program Name”

      • program.open_at: “Open Date”


      Organization Variables

      • organization.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • organization.address: “Organization Address”

      • organization.city: “Organization City”

      • organization.country: “Organization Country”

      • organization.email: “Organization Email”

      • organization.id: “Organization System ID”. Use this ID for making /api/organizations/{id}/ calls

      • organization.members: “Organization Members”

      • organization.name: “Organization Name”

      • organization.phone: “Organization Phone Number”

      • organization.primary_admin: “Organization Primary Admin”

      • organization.website: “Organization Website”


      User Variables

      These are used in user reports. Applicants, reviewers, and recommenders have their own version when user data is included in application, review, or recommendation reports.

      • user.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • user.email: “User Email Address”

      • user.email_verified: “Email Verified”

      • user.first_login: “First Login”

      • user.first_name: “User First Name”

      • user.id: “User System ID”. Use this ID for making /api/user/{id}/ calls

      • user.language: “Preferred Language”

      • user.last_login: “Last Login”

      • user.last_name: “User Last Name”

      • user.number_of_application_memberships: “Collaborator to Applications (Count)”

      • user.number_of_applications: “Application Count”

      • user.number_of_assignments: “Number of Reviewer Assignments”

      • user.number_of_conflicts: “Number of Reviewer Conflicts”

      • user.organizations: “Organizations Affiliated With”

      • user.programs_applied_to: “Programs Applied To”

      • user.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • user.timezone: “Timezone”

      • user.total_awarded: “Total Awarded to User”


      Recommendation Variables

      • recommender.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • recommender.email: “Recommender Email Address”

      • recommender.email_verified: “Email Verified”

      • recommender.first_login: “Recommender First Login”

      • recommender.first_name: “Recommender First Name”

      • recommender.id: “Recommender System ID”. Use this ID for making /api/user/{id}/ calls

      • recommender.last_login: “Recommender Last Login”

      • recommender.last_name: “Recommender Last Name”

      • recommender.language: Recommender’s “Preferred Language”

      • recommender.number_of_recommendations: “Number of Recommendations (total)”

      • recommender.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • recommender.timezone: Recommender’s “Timezone”


      Review Variables

      • reviewer.assignment_completion: “Assignment Completion Progress (across all stages)”

      • reviewer.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • reviewer.email: “Reviewer Email Address”

      • reviewer.email_verified: “Email Verified”

      • reviewer.first_login: “Reviewer First Login”

      • reviewer.first_name: “Reviewer First Name”

      • reviewer.id: “Reviewer System ID”. Use this ID for making /api/user/{id}/ calls

      • reviewer.last_login: “Reviewer Last Login”

      • reviewer.last_name: “Reviewer Last Name”

      • reviewer.language: “Preferred Language”

      • reviewer.number_of_assignments: “Number of Reviewer Assignments (total)”

      • reviewer.number_of_conflicts: “Number of Reviewer Conflicts (total)”. Note that conflicts are registered with applicants, not applications.

      • reviewer.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • reviewer.timezone: “Timezone”


      Applicant Variables

      These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

      • applicant.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • applicant.email: “Applicant Email Address”

      • applicant.email_verified: “Email Verified”

      • applicant.first_login: “Applicant First Login”

      • applicant.first_name: “Applicant First Name”

      • applicant.id: “Applicant System ID”. Use this ID for making /api/user/{id}/ calls

      • applicant.last_login: “Applicant Last Login”

      • applicant.last_name: “Applicant Last Name”

      • applicant.language: “Preferred Language”

      • applicant.number_of_application_memberships: “Collaborator to Applications (Count)”

      • applicant.number_of_applications: “Application Count”

      • applicant.organizations: “Organizations Affiliated With”

      • applicant.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • applicant.timezone: “Timezone”


      Application Variables

      These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

      • application.applicant_decision: “Decision by Applicant”

      • application.average_score: “Review Score: Average (across all stages)”

      • application.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • application.collaborators: “Collaborators”

      • application.completed_recommendations: “Number of completed Recommendations”

      • application.completed_reviews: “Number of completed Reviews”

      • application.created_at: “Date created”

      • application.cumulative_score: “Review Score: Cumulative (across all stages)”

      • application.decision: “Decision by Admin”

      • application.id: “Application System ID”. Use this ID for making /api/applications/{id}/ calls

      • application.labels: “Current Label(s)”

      • application.last_submitted_at: “Date last submitted”

      • application.reference_id: “Application ID”

      • application.reviewer_task_{id}_review_score_percentage: The reviewer’s percentage score for task {id} for the application.

      • application.reviewer_task_{id}_review_score: The reviewer’s score for task {id} for the application.

      • application.stage: “Current Stage”

      • application.state: “Current State”

      • application.status: “Current Status”

      • application.title: “Application Title”

      • application.total_awarded: “Total Awarded to Application”


      Task Variables

      These variables appear in the application, review, and recommendation reports. For task variables, the task ID follows task.. For example task.17_completion is the completion state for task 17. You can fetch the task details using /api/tasks/{id}/ .

      Form responses take the form of application.{question} where question identifies the task and question id. For example, application.survey_73_xNO50LQ8c5 refers to question xNO50LQ8c5 from task 73. You can find the question IDs using /api/tasks/ . Using our example, call /api/tasks/73/ to retrieve the task. The fields property will have an entry for xNO50LQ8c5. The column label for these fields will be the name entry in the field description.

      • application.{id}: Form response

      • task.{id}_completion: Task completion status

      • task.{id}_completedat: Task completion timestamp


    • download_link (string)

      This is blank if there is no report to download

    • last_error_message (string)

    • last_generated_at (string)

      This is blank if the report has never been generated

    • job_id (string)

      This is the ID of the job that is generating the report. If this is blank then the reporting is not being generated

    • name (string)

    • report_filename (string)

      File name for the report

    • file_size (integer)

    • program (object)

      • id (integer)

        program ID

      • name (string)

        program name

    • source (integer) Permitted values: 0, 1, 2, 3

      • 0: Applications

      • 1: Reviews

      • 2: Recommendations

      • 3: Users

    • status (integer) Permitted values: 0, 1, 2, 3, 4, 5

      • 0: Created

      • 1: Queued

      • 2: Generating

      • 3: Generated

      • 4: Error

      • 5: Canceled

    • row (integer)

      The current row number being generated by the report

    • total_rows (integer)

      The total number of rows in the report

    • filter (object)

      • type (string)

        Must be AND

      • items (array of object)

        • predicate (string) Permitted values: before, after, greaterthan, lessthan, startswith, equals, notequals, contains, doesnotcontain, containsoneof, notcontainsoneof, hasresponse, noresponse, True, False

        • value (string)

        • variable (string)

          An ID which represents the variable being filtered on. Note that not all filters are supported on all report types. Supported variables are:

          Application report filters:

          • 0: current stage

          • 3:{id}: completed task matching id

          • 7: current label(s)

          • 12: number of completed reviews

          • 15:{id}: custom fields for applicants, organizations and applications. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 21: assigned to team

          • 22: assigned to reviewer

          • 42: current status

          • 43: number of completed recommendations

          • 54: applicant decision

          • 55: administrator decision

          • 58: submit date

          • 59: current state

          • 60: created date

          • 61: number of collaborators

          • 62: total awarded


          Review report filters:

          • 0: application current stage

          • 7: application current label(s)

          • 15:{id}: custom fields for applicants, organizations, applications and reviewers. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 42: application current status

          • 59: application current state

          • 64: number of reviewer conflicts

          • 70: number of reviewer assignments


          Recommendation filters:

          • 0: application current stage

          • 7: application current label(s)

          • 15:{id}: custom fields for applicants, organizations, applications and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 42: application current status

          • 59: application current state

          • 71: number of recommender recommendations (total)

          • 72:{id}: recommendation is completed. id is the recommendation task ID

          • 73:{id}: recommendation last updated at. id is the recommendation task ID


          User report filters:

          • 15:{id}: custom fields for applicants, organizations, reviewers, and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 31: user has role

          • 63: eligibility quiz completed

          • 65: has applications

          • 66: has review assignments

          • 67: has recommendation requests

          • 68: has been awarded

          • 69: has been declined

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "id": 1,
        "created_at": "2023-02-17T01:28:34.788838",
        "created_by": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "columns": [
            "string"
        ],
        "download_link": "string",
        "last_error_message": "string",
        "last_generated_at": "2023-02-17T01:28:34.788838",
        "job_id": "string",
        "name": "string",
        "report_filename": "string",
        "file_size": 1,
        "program": {
            "id": 1,
            "name": "string"
        },
        "source": 0,
        "status": 0,
        "row": 1,
        "total_rows": 1,
        "filter": {
            "type": "string",
            "items": [
                {
                    "predicate": "before",
                    "value": "string",
                    "variable": "string"
                }
            ]
        }
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/reports/{id}/

Retrieves detailed information about a report.

Administrators need the Reports permission to make this call.

Parameters:
  • id (integer) – ID

Example request:

GET /api/reports/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

    • created_at (string)

    • created_by (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • columns (array of string)

      The list of variables for the columns in the report. In the description of the variables, the text in “” is the column label that is used in the exported report. The possible variables are:

      Program Variables

      These variables are not valid in user reports.

      • program.balance: “Balance”

      • program.category: “Category”

      • program.deadline: “Deadline”

      • program.id: “Program System ID”. Use this ID for making /api/programs/{id}/ calls.

      • program.name: “Program Name”

      • program.open_at: “Open Date”


      Organization Variables

      • organization.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • organization.address: “Organization Address”

      • organization.city: “Organization City”

      • organization.country: “Organization Country”

      • organization.email: “Organization Email”

      • organization.id: “Organization System ID”. Use this ID for making /api/organizations/{id}/ calls

      • organization.members: “Organization Members”

      • organization.name: “Organization Name”

      • organization.phone: “Organization Phone Number”

      • organization.primary_admin: “Organization Primary Admin”

      • organization.website: “Organization Website”


      User Variables

      These are used in user reports. Applicants, reviewers, and recommenders have their own version when user data is included in application, review, or recommendation reports.

      • user.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • user.email: “User Email Address”

      • user.email_verified: “Email Verified”

      • user.first_login: “First Login”

      • user.first_name: “User First Name”

      • user.id: “User System ID”. Use this ID for making /api/user/{id}/ calls

      • user.language: “Preferred Language”

      • user.last_login: “Last Login”

      • user.last_name: “User Last Name”

      • user.number_of_application_memberships: “Collaborator to Applications (Count)”

      • user.number_of_applications: “Application Count”

      • user.number_of_assignments: “Number of Reviewer Assignments”

      • user.number_of_conflicts: “Number of Reviewer Conflicts”

      • user.organizations: “Organizations Affiliated With”

      • user.programs_applied_to: “Programs Applied To”

      • user.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • user.timezone: “Timezone”

      • user.total_awarded: “Total Awarded to User”


      Recommendation Variables

      • recommender.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • recommender.email: “Recommender Email Address”

      • recommender.email_verified: “Email Verified”

      • recommender.first_login: “Recommender First Login”

      • recommender.first_name: “Recommender First Name”

      • recommender.id: “Recommender System ID”. Use this ID for making /api/user/{id}/ calls

      • recommender.last_login: “Recommender Last Login”

      • recommender.last_name: “Recommender Last Name”

      • recommender.language: Recommender’s “Preferred Language”

      • recommender.number_of_recommendations: “Number of Recommendations (total)”

      • recommender.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • recommender.timezone: Recommender’s “Timezone”


      Review Variables

      • reviewer.assignment_completion: “Assignment Completion Progress (across all stages)”

      • reviewer.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • reviewer.email: “Reviewer Email Address”

      • reviewer.email_verified: “Email Verified”

      • reviewer.first_login: “Reviewer First Login”

      • reviewer.first_name: “Reviewer First Name”

      • reviewer.id: “Reviewer System ID”. Use this ID for making /api/user/{id}/ calls

      • reviewer.last_login: “Reviewer Last Login”

      • reviewer.last_name: “Reviewer Last Name”

      • reviewer.language: “Preferred Language”

      • reviewer.number_of_assignments: “Number of Reviewer Assignments (total)”

      • reviewer.number_of_conflicts: “Number of Reviewer Conflicts (total)”. Note that conflicts are registered with applicants, not applications.

      • reviewer.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • reviewer.timezone: “Timezone”


      Applicant Variables

      These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

      • applicant.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • applicant.email: “Applicant Email Address”

      • applicant.email_verified: “Email Verified”

      • applicant.first_login: “Applicant First Login”

      • applicant.first_name: “Applicant First Name”

      • applicant.id: “Applicant System ID”. Use this ID for making /api/user/{id}/ calls

      • applicant.last_login: “Applicant Last Login”

      • applicant.last_name: “Applicant Last Name”

      • applicant.language: “Preferred Language”

      • applicant.number_of_application_memberships: “Collaborator to Applications (Count)”

      • applicant.number_of_applications: “Application Count”

      • applicant.organizations: “Organizations Affiliated With”

      • applicant.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • applicant.timezone: “Timezone”


      Application Variables

      These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

      • application.applicant_decision: “Decision by Applicant”

      • application.average_score: “Review Score: Average (across all stages)”

      • application.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • application.collaborators: “Collaborators”

      • application.completed_recommendations: “Number of completed Recommendations”

      • application.completed_reviews: “Number of completed Reviews”

      • application.created_at: “Date created”

      • application.cumulative_score: “Review Score: Cumulative (across all stages)”

      • application.decision: “Decision by Admin”

      • application.id: “Application System ID”. Use this ID for making /api/applications/{id}/ calls

      • application.labels: “Current Label(s)”

      • application.last_submitted_at: “Date last submitted”

      • application.reference_id: “Application ID”

      • application.reviewer_task_{id}_review_score_percentage: The reviewer’s percentage score for task {id} for the application.

      • application.reviewer_task_{id}_review_score: The reviewer’s score for task {id} for the application.

      • application.stage: “Current Stage”

      • application.state: “Current State”

      • application.status: “Current Status”

      • application.title: “Application Title”

      • application.total_awarded: “Total Awarded to Application”


      Task Variables

      These variables appear in the application, review, and recommendation reports. For task variables, the task ID follows task.. For example task.17_completion is the completion state for task 17. You can fetch the task details using /api/tasks/{id}/ .

      Form responses take the form of application.{question} where question identifies the task and question id. For example, application.survey_73_xNO50LQ8c5 refers to question xNO50LQ8c5 from task 73. You can find the question IDs using /api/tasks/ . Using our example, call /api/tasks/73/ to retrieve the task. The fields property will have an entry for xNO50LQ8c5. The column label for these fields will be the name entry in the field description.

      • application.{id}: Form response

      • task.{id}_completion: Task completion status

      • task.{id}_completedat: Task completion timestamp


    • download_link (string)

      This is blank if there is no report to download

    • last_error_message (string)

    • last_generated_at (string)

      This is blank if the report has never been generated

    • job_id (string)

      This is the ID of the job that is generating the report. If this is blank then the reporting is not being generated

    • name (string)

    • report_filename (string)

      File name for the report

    • file_size (integer)

    • program (object)

      • id (integer)

        program ID

      • name (string)

        program name

    • source (integer) Permitted values: 0, 1, 2, 3

      • 0: Applications

      • 1: Reviews

      • 2: Recommendations

      • 3: Users

    • status (integer) Permitted values: 0, 1, 2, 3, 4, 5

      • 0: Created

      • 1: Queued

      • 2: Generating

      • 3: Generated

      • 4: Error

      • 5: Canceled

    • row (integer)

      The current row number being generated by the report

    • total_rows (integer)

      The total number of rows in the report

    • filter (object)

      • type (string)

        Must be AND

      • items (array of object)

        • predicate (string) Permitted values: before, after, greaterthan, lessthan, startswith, equals, notequals, contains, doesnotcontain, containsoneof, notcontainsoneof, hasresponse, noresponse, True, False

        • value (string)

        • variable (string)

          An ID which represents the variable being filtered on. Note that not all filters are supported on all report types. Supported variables are:

          Application report filters:

          • 0: current stage

          • 3:{id}: completed task matching id

          • 7: current label(s)

          • 12: number of completed reviews

          • 15:{id}: custom fields for applicants, organizations and applications. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 21: assigned to team

          • 22: assigned to reviewer

          • 42: current status

          • 43: number of completed recommendations

          • 54: applicant decision

          • 55: administrator decision

          • 58: submit date

          • 59: current state

          • 60: created date

          • 61: number of collaborators

          • 62: total awarded


          Review report filters:

          • 0: application current stage

          • 7: application current label(s)

          • 15:{id}: custom fields for applicants, organizations, applications and reviewers. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 42: application current status

          • 59: application current state

          • 64: number of reviewer conflicts

          • 70: number of reviewer assignments


          Recommendation filters:

          • 0: application current stage

          • 7: application current label(s)

          • 15:{id}: custom fields for applicants, organizations, applications and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 42: application current status

          • 59: application current state

          • 71: number of recommender recommendations (total)

          • 72:{id}: recommendation is completed. id is the recommendation task ID

          • 73:{id}: recommendation last updated at. id is the recommendation task ID


          User report filters:

          • 15:{id}: custom fields for applicants, organizations, reviewers, and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 31: user has role

          • 63: eligibility quiz completed

          • 65: has applications

          • 66: has review assignments

          • 67: has recommendation requests

          • 68: has been awarded

          • 69: has been declined

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "created_at": "2023-02-17T01:28:34.788838",
        "created_by": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "columns": [
            "string"
        ],
        "download_link": "string",
        "last_error_message": "string",
        "last_generated_at": "2023-02-17T01:28:34.788838",
        "job_id": "string",
        "name": "string",
        "report_filename": "string",
        "file_size": 1,
        "program": {
            "id": 1,
            "name": "string"
        },
        "source": 0,
        "status": 0,
        "row": 1,
        "total_rows": 1,
        "filter": {
            "type": "string",
            "items": [
                {
                    "predicate": "before",
                    "value": "string",
                    "variable": "string"
                }
            ]
        }
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Resource cannot be found

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/reports/{id}/

Update a report. You cannot change the report’s source or program.

Only administrators with the Reports permission can make this call.

Parameters:
  • id (integer) – ID

Endpoint properties

  • columns (array of string)

    The list of variables for the columns in the report. In the description of the variables, the text in “” is the column label that is used in the exported report. The possible variables are:

    Program Variables

    These variables are not valid in user reports.

    • program.balance: “Balance”

    • program.category: “Category”

    • program.deadline: “Deadline”

    • program.id: “Program System ID”. Use this ID for making /api/programs/{id}/ calls.

    • program.name: “Program Name”

    • program.open_at: “Open Date”


    Organization Variables

    • organization.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • organization.address: “Organization Address”

    • organization.city: “Organization City”

    • organization.country: “Organization Country”

    • organization.email: “Organization Email”

    • organization.id: “Organization System ID”. Use this ID for making /api/organizations/{id}/ calls

    • organization.members: “Organization Members”

    • organization.name: “Organization Name”

    • organization.phone: “Organization Phone Number”

    • organization.primary_admin: “Organization Primary Admin”

    • organization.website: “Organization Website”


    User Variables

    These are used in user reports. Applicants, reviewers, and recommenders have their own version when user data is included in application, review, or recommendation reports.

    • user.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • user.email: “User Email Address”

    • user.email_verified: “Email Verified”

    • user.first_login: “First Login”

    • user.first_name: “User First Name”

    • user.id: “User System ID”. Use this ID for making /api/user/{id}/ calls

    • user.language: “Preferred Language”

    • user.last_login: “Last Login”

    • user.last_name: “User Last Name”

    • user.number_of_application_memberships: “Collaborator to Applications (Count)”

    • user.number_of_applications: “Application Count”

    • user.number_of_assignments: “Number of Reviewer Assignments”

    • user.number_of_conflicts: “Number of Reviewer Conflicts”

    • user.organizations: “Organizations Affiliated With”

    • user.programs_applied_to: “Programs Applied To”

    • user.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

    • user.timezone: “Timezone”

    • user.total_awarded: “Total Awarded to User”


    Recommendation Variables

    • recommender.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • recommender.email: “Recommender Email Address”

    • recommender.email_verified: “Email Verified”

    • recommender.first_login: “Recommender First Login”

    • recommender.first_name: “Recommender First Name”

    • recommender.id: “Recommender System ID”. Use this ID for making /api/user/{id}/ calls

    • recommender.last_login: “Recommender Last Login”

    • recommender.last_name: “Recommender Last Name”

    • recommender.language: Recommender’s “Preferred Language”

    • recommender.number_of_recommendations: “Number of Recommendations (total)”

    • recommender.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

    • recommender.timezone: Recommender’s “Timezone”


    Review Variables

    • reviewer.assignment_completion: “Assignment Completion Progress (across all stages)”

    • reviewer.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • reviewer.email: “Reviewer Email Address”

    • reviewer.email_verified: “Email Verified”

    • reviewer.first_login: “Reviewer First Login”

    • reviewer.first_name: “Reviewer First Name”

    • reviewer.id: “Reviewer System ID”. Use this ID for making /api/user/{id}/ calls

    • reviewer.last_login: “Reviewer Last Login”

    • reviewer.last_name: “Reviewer Last Name”

    • reviewer.language: “Preferred Language”

    • reviewer.number_of_assignments: “Number of Reviewer Assignments (total)”

    • reviewer.number_of_conflicts: “Number of Reviewer Conflicts (total)”. Note that conflicts are registered with applicants, not applications.

    • reviewer.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

    • reviewer.timezone: “Timezone”


    Applicant Variables

    These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

    • applicant.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • applicant.email: “Applicant Email Address”

    • applicant.email_verified: “Email Verified”

    • applicant.first_login: “Applicant First Login”

    • applicant.first_name: “Applicant First Name”

    • applicant.id: “Applicant System ID”. Use this ID for making /api/user/{id}/ calls

    • applicant.last_login: “Applicant Last Login”

    • applicant.last_name: “Applicant Last Name”

    • applicant.language: “Preferred Language”

    • applicant.number_of_application_memberships: “Collaborator to Applications (Count)”

    • applicant.number_of_applications: “Application Count”

    • applicant.organizations: “Organizations Affiliated With”

    • applicant.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

    • applicant.timezone: “Timezone”


    Application Variables

    These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

    • application.applicant_decision: “Decision by Applicant”

    • application.average_score: “Review Score: Average (across all stages)”

    • application.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

    • application.collaborators: “Collaborators”

    • application.completed_recommendations: “Number of completed Recommendations”

    • application.completed_reviews: “Number of completed Reviews”

    • application.created_at: “Date created”

    • application.cumulative_score: “Review Score: Cumulative (across all stages)”

    • application.decision: “Decision by Admin”

    • application.id: “Application System ID”. Use this ID for making /api/applications/{id}/ calls

    • application.labels: “Current Label(s)”

    • application.last_submitted_at: “Date last submitted”

    • application.reference_id: “Application ID”

    • application.reviewer_task_{id}_review_score_percentage: The reviewer’s percentage score for task {id} for the application.

    • application.reviewer_task_{id}_review_score: The reviewer’s score for task {id} for the application.

    • application.stage: “Current Stage”

    • application.state: “Current State”

    • application.status: “Current Status”

    • application.title: “Application Title”

    • application.total_awarded: “Total Awarded to Application”


    Task Variables

    These variables appear in the application, review, and recommendation reports. For task variables, the task ID follows task.. For example task.17_completion is the completion state for task 17. You can fetch the task details using /api/tasks/{id}/ .

    Form responses take the form of application.{question} where question identifies the task and question id. For example, application.survey_73_xNO50LQ8c5 refers to question xNO50LQ8c5 from task 73. You can find the question IDs using /api/tasks/ . Using our example, call /api/tasks/73/ to retrieve the task. The fields property will have an entry for xNO50LQ8c5. The column label for these fields will be the name entry in the field description.

    • application.{id}: Form response

    • task.{id}_completion: Task completion status

    • task.{id}_completedat: Task completion timestamp


  • filter (object)

    • type (string)

      Must be AND

    • items (array of object)

      • predicate (string) Permitted values: before, after, greaterthan, lessthan, startswith, equals, notequals, contains, doesnotcontain, containsoneof, notcontainsoneof, hasresponse, noresponse, True, False

      • value (string)

      • variable (string)

        An ID which represents the variable being filtered on. Note that not all filters are supported on all report types. Supported variables are:

        Application report filters:

        • 0: current stage

        • 3:{id}: completed task matching id

        • 7: current label(s)

        • 12: number of completed reviews

        • 15:{id}: custom fields for applicants, organizations and applications. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

        • 21: assigned to team

        • 22: assigned to reviewer

        • 42: current status

        • 43: number of completed recommendations

        • 54: applicant decision

        • 55: administrator decision

        • 58: submit date

        • 59: current state

        • 60: created date

        • 61: number of collaborators

        • 62: total awarded


        Review report filters:

        • 0: application current stage

        • 7: application current label(s)

        • 15:{id}: custom fields for applicants, organizations, applications and reviewers. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

        • 42: application current status

        • 59: application current state

        • 64: number of reviewer conflicts

        • 70: number of reviewer assignments


        Recommendation filters:

        • 0: application current stage

        • 7: application current label(s)

        • 15:{id}: custom fields for applicants, organizations, applications and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

        • 42: application current status

        • 59: application current state

        • 71: number of recommender recommendations (total)

        • 72:{id}: recommendation is completed. id is the recommendation task ID

        • 73:{id}: recommendation last updated at. id is the recommendation task ID


        User report filters:

        • 15:{id}: custom fields for applicants, organizations, reviewers, and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

        • 31: user has role

        • 63: eligibility quiz completed

        • 65: has applications

        • 66: has review assignments

        • 67: has recommendation requests

        • 68: has been awarded

        • 69: has been declined

  • name (string)

    The report name must be unique.

Example request:

PATCH /api/reports/{id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "columns": [
        "string"
    ],
    "filter": {
        "type": "string",
        "items": [
            {
                "predicate": "before",
                "value": "string",
                "variable": "string"
            }
        ]
    },
    "name": "string"
}
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

    • created_at (string)

    • created_by (object)

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    • columns (array of string)

      The list of variables for the columns in the report. In the description of the variables, the text in “” is the column label that is used in the exported report. The possible variables are:

      Program Variables

      These variables are not valid in user reports.

      • program.balance: “Balance”

      • program.category: “Category”

      • program.deadline: “Deadline”

      • program.id: “Program System ID”. Use this ID for making /api/programs/{id}/ calls.

      • program.name: “Program Name”

      • program.open_at: “Open Date”


      Organization Variables

      • organization.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • organization.address: “Organization Address”

      • organization.city: “Organization City”

      • organization.country: “Organization Country”

      • organization.email: “Organization Email”

      • organization.id: “Organization System ID”. Use this ID for making /api/organizations/{id}/ calls

      • organization.members: “Organization Members”

      • organization.name: “Organization Name”

      • organization.phone: “Organization Phone Number”

      • organization.primary_admin: “Organization Primary Admin”

      • organization.website: “Organization Website”


      User Variables

      These are used in user reports. Applicants, reviewers, and recommenders have their own version when user data is included in application, review, or recommendation reports.

      • user.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • user.email: “User Email Address”

      • user.email_verified: “Email Verified”

      • user.first_login: “First Login”

      • user.first_name: “User First Name”

      • user.id: “User System ID”. Use this ID for making /api/user/{id}/ calls

      • user.language: “Preferred Language”

      • user.last_login: “Last Login”

      • user.last_name: “User Last Name”

      • user.number_of_application_memberships: “Collaborator to Applications (Count)”

      • user.number_of_applications: “Application Count”

      • user.number_of_assignments: “Number of Reviewer Assignments”

      • user.number_of_conflicts: “Number of Reviewer Conflicts”

      • user.organizations: “Organizations Affiliated With”

      • user.programs_applied_to: “Programs Applied To”

      • user.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • user.timezone: “Timezone”

      • user.total_awarded: “Total Awarded to User”


      Recommendation Variables

      • recommender.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • recommender.email: “Recommender Email Address”

      • recommender.email_verified: “Email Verified”

      • recommender.first_login: “Recommender First Login”

      • recommender.first_name: “Recommender First Name”

      • recommender.id: “Recommender System ID”. Use this ID for making /api/user/{id}/ calls

      • recommender.last_login: “Recommender Last Login”

      • recommender.last_name: “Recommender Last Name”

      • recommender.language: Recommender’s “Preferred Language”

      • recommender.number_of_recommendations: “Number of Recommendations (total)”

      • recommender.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • recommender.timezone: Recommender’s “Timezone”


      Review Variables

      • reviewer.assignment_completion: “Assignment Completion Progress (across all stages)”

      • reviewer.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • reviewer.email: “Reviewer Email Address”

      • reviewer.email_verified: “Email Verified”

      • reviewer.first_login: “Reviewer First Login”

      • reviewer.first_name: “Reviewer First Name”

      • reviewer.id: “Reviewer System ID”. Use this ID for making /api/user/{id}/ calls

      • reviewer.last_login: “Reviewer Last Login”

      • reviewer.last_name: “Reviewer Last Name”

      • reviewer.language: “Preferred Language”

      • reviewer.number_of_assignments: “Number of Reviewer Assignments (total)”

      • reviewer.number_of_conflicts: “Number of Reviewer Conflicts (total)”. Note that conflicts are registered with applicants, not applications.

      • reviewer.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • reviewer.timezone: “Timezone”


      Applicant Variables

      These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

      • applicant.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • applicant.email: “Applicant Email Address”

      • applicant.email_verified: “Email Verified”

      • applicant.first_login: “Applicant First Login”

      • applicant.first_name: “Applicant First Name”

      • applicant.id: “Applicant System ID”. Use this ID for making /api/user/{id}/ calls

      • applicant.last_login: “Applicant Last Login”

      • applicant.last_name: “Applicant Last Name”

      • applicant.language: “Preferred Language”

      • applicant.number_of_application_memberships: “Collaborator to Applications (Count)”

      • applicant.number_of_applications: “Application Count”

      • applicant.organizations: “Organizations Affiliated With”

      • applicant.roles: “Roles”. This can be one or more of applicant, reviewer, recommender, or admin

      • applicant.timezone: “Timezone”


      Application Variables

      These variables appear in the application report. A subset can also appear in the review, and recommendation reports.

      • application.applicant_decision: “Decision by Applicant”

      • application.average_score: “Review Score: Average (across all stages)”

      • application.cf_{id}: The value for Custom field matching id. See /api/customfields/{id}/ for details on the custom field.

      • application.collaborators: “Collaborators”

      • application.completed_recommendations: “Number of completed Recommendations”

      • application.completed_reviews: “Number of completed Reviews”

      • application.created_at: “Date created”

      • application.cumulative_score: “Review Score: Cumulative (across all stages)”

      • application.decision: “Decision by Admin”

      • application.id: “Application System ID”. Use this ID for making /api/applications/{id}/ calls

      • application.labels: “Current Label(s)”

      • application.last_submitted_at: “Date last submitted”

      • application.reference_id: “Application ID”

      • application.reviewer_task_{id}_review_score_percentage: The reviewer’s percentage score for task {id} for the application.

      • application.reviewer_task_{id}_review_score: The reviewer’s score for task {id} for the application.

      • application.stage: “Current Stage”

      • application.state: “Current State”

      • application.status: “Current Status”

      • application.title: “Application Title”

      • application.total_awarded: “Total Awarded to Application”


      Task Variables

      These variables appear in the application, review, and recommendation reports. For task variables, the task ID follows task.. For example task.17_completion is the completion state for task 17. You can fetch the task details using /api/tasks/{id}/ .

      Form responses take the form of application.{question} where question identifies the task and question id. For example, application.survey_73_xNO50LQ8c5 refers to question xNO50LQ8c5 from task 73. You can find the question IDs using /api/tasks/ . Using our example, call /api/tasks/73/ to retrieve the task. The fields property will have an entry for xNO50LQ8c5. The column label for these fields will be the name entry in the field description.

      • application.{id}: Form response

      • task.{id}_completion: Task completion status

      • task.{id}_completedat: Task completion timestamp


    • download_link (string)

      This is blank if there is no report to download

    • last_error_message (string)

    • last_generated_at (string)

      This is blank if the report has never been generated

    • job_id (string)

      This is the ID of the job that is generating the report. If this is blank then the reporting is not being generated

    • name (string)

    • report_filename (string)

      File name for the report

    • file_size (integer)

    • program (object)

      • id (integer)

        program ID

      • name (string)

        program name

    • source (integer) Permitted values: 0, 1, 2, 3

      • 0: Applications

      • 1: Reviews

      • 2: Recommendations

      • 3: Users

    • status (integer) Permitted values: 0, 1, 2, 3, 4, 5

      • 0: Created

      • 1: Queued

      • 2: Generating

      • 3: Generated

      • 4: Error

      • 5: Canceled

    • row (integer)

      The current row number being generated by the report

    • total_rows (integer)

      The total number of rows in the report

    • filter (object)

      • type (string)

        Must be AND

      • items (array of object)

        • predicate (string) Permitted values: before, after, greaterthan, lessthan, startswith, equals, notequals, contains, doesnotcontain, containsoneof, notcontainsoneof, hasresponse, noresponse, True, False

        • value (string)

        • variable (string)

          An ID which represents the variable being filtered on. Note that not all filters are supported on all report types. Supported variables are:

          Application report filters:

          • 0: current stage

          • 3:{id}: completed task matching id

          • 7: current label(s)

          • 12: number of completed reviews

          • 15:{id}: custom fields for applicants, organizations and applications. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 21: assigned to team

          • 22: assigned to reviewer

          • 42: current status

          • 43: number of completed recommendations

          • 54: applicant decision

          • 55: administrator decision

          • 58: submit date

          • 59: current state

          • 60: created date

          • 61: number of collaborators

          • 62: total awarded


          Review report filters:

          • 0: application current stage

          • 7: application current label(s)

          • 15:{id}: custom fields for applicants, organizations, applications and reviewers. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 42: application current status

          • 59: application current state

          • 64: number of reviewer conflicts

          • 70: number of reviewer assignments


          Recommendation filters:

          • 0: application current stage

          • 7: application current label(s)

          • 15:{id}: custom fields for applicants, organizations, applications and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 42: application current status

          • 59: application current state

          • 71: number of recommender recommendations (total)

          • 72:{id}: recommendation is completed. id is the recommendation task ID

          • 73:{id}: recommendation last updated at. id is the recommendation task ID


          User report filters:

          • 15:{id}: custom fields for applicants, organizations, reviewers, and recommenders. id is the custom field id. You can use /api/customfields/{id}/ for details on the custom field

          • 31: user has role

          • 63: eligibility quiz completed

          • 65: has applications

          • 66: has review assignments

          • 67: has recommendation requests

          • 68: has been awarded

          • 69: has been declined

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "created_at": "2023-02-17T01:28:34.788838",
        "created_by": {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        },
        "columns": [
            "string"
        ],
        "download_link": "string",
        "last_error_message": "string",
        "last_generated_at": "2023-02-17T01:28:34.788838",
        "job_id": "string",
        "name": "string",
        "report_filename": "string",
        "file_size": 1,
        "program": {
            "id": 1,
            "name": "string"
        },
        "source": 0,
        "status": 0,
        "row": 1,
        "total_rows": 1,
        "filter": {
            "type": "string",
            "items": [
                {
                    "predicate": "before",
                    "value": "string",
                    "variable": "string"
                }
            ]
        }
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Resource cannot be found

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/reports/{id}/

Delete a report.

Administrators need the Reports permission to make this call.

Parameters:
  • id (integer) – ID

Status Codes:
GET /api/reports/{id}/download/

Retrieve a copy of the generated report. If the report has not yet been generated, a 400 status code is returned.

Administrators need the Reports permission to make this call.

Parameters:
  • id (integer) – ID

Example request:

GET /api/reports/{id}/download/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
DELETE /api/reports/{id}/download/

Delete the generated report file. This does not delete the report.

Administrators need the Reports permission to make this call.

Parameters:
  • id (integer) – ID

Status Codes:
POST /api/reportsjobs/

Initiate a report generation. Report generation cannot be started for reports that have a status of Queued or Generating.

Admins need the Reports permission to make this call.

Endpoint properties

  • id (integer)

    The ID of the report to be generated

  • format (string) Permitted values: csv, excel

    Format for the generated file

Example request:

POST /api/reportsjobs/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "id": 1,
    "format": "csv"
}
Status Codes:
DELETE /api/reportsjobs/{id}/

Cancel the current report job.

Administrators need the Reports permission to make this call.

Parameters:
  • id (integer) – Report ID

Status Codes:
GET /api/reportsstatuses/

Fetches the list of report statuses.

If you only need to know the status of reports, this endpoint is faster than /api/reports/.

Administrators need the Reports permission to make this call.

Query Parameters:
  • id (integer) – limit statuses to a specific report id

Example request:

GET /api/reportsstatuses/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • id (integer)

        report id

      • last_generated_at (string)

        This is blank if the report has never been generated

      • job_id (string)

        This is the ID of the job that is generating the report. If this is blank then the reporting is not being generated

      • report_filename (string)

        File name for the report

      • file_size (integer)

      • status (integer) Permitted values: 0, 1, 2, 3, 4, 5

        • 0: Created

        • 1: Queued

        • 2: Generating

        • 3: Generated

        • 4: Error

        • 5: Canceled

      • row (integer)

        The current row number being generated by the report

      • total_rows (integer)

        The total number of rows in the report

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "last_generated_at": "2023-02-17T01:28:34.788838",
            "job_id": "string",
            "report_filename": "string",
            "file_size": 1,
            "status": 0,
            "row": 1,
            "total_rows": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

Reviews

GET /api/reviews/

Fetch all reviews on a site.

You will likely want to filter this call by application, stage, or reviewer.

Query Parameters:
  • application (integer) – limit reviews based on their application

  • completed_at (string) – limit reviews based on their completion date

  • program (integer) – limit reviews based on their program

  • reviewer (integer) – limit reviews based on the reviewer

  • score (number) – limit reviews based on the score

  • stage (integer) – limit reviews based on their stage

  • task (integer) – limit reviews based on their task

  • type (integer) –

    limit reviews based on their type:
    • 1 - Simple review

    • 2 - Advanced review

Example request:

GET /api/reviews/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    list of application reviews

    Endpoint properties

    • array of object

      • id (integer)

        review ID

      • application (object)

        • title (string)

        • id (integer)

      • completed_at (string)

      • reviewer (object)

        User Reference

        • first_name (string)

        • last_name (string)

        • email (string)

        • id (integer)

      • score (number)

      • score_out_of (number)

      • status (integer)

      • task (object)

        • name (string)

        • id (integer)

      • type (integer)

      • created_at (string)

      • updated_at (string)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "application": {
                "title": "string",
                "id": 1
            },
            "completed_at": "2023-02-17T01:28:34.788838",
            "reviewer": {
                "first_name": "string",
                "last_name": "string",
                "email": "name@example.com",
                "id": 1
            },
            "score": 1.0,
            "score_out_of": 1.0,
            "status": 1,
            "task": {
                "name": "string",
                "id": 1
            },
            "type": 1,
            "created_at": "2023-02-17T01:28:34.788838",
            "updated_at": "2023-02-17T01:28:34.788838"
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

Stages

GET /api/stages/

A list of program stages. Admins need the View workflow permission to make this call.

Query Parameters:
  • close_timestamp (string) – limit stages base on their close time

  • index (integer) – limit stages base on their order in the workflow

  • open_timestamp (string) – limit stages base on their open time

  • program (integer) – limit stages to a program

  • for_programs (string) – limit stages to certain types of program

  • review_group (integer) – limit stages based on their review group

  • title (string) – limit stages base on their title

  • type (integer) –

    limit stages to a particular type:
    • 0 - Applicant

    • 1 - Simple review

    • 2 - Advanced review

    • 4 - Holding

    • 5 - Review group

Example request:

GET /api/stages/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "program": {
                "id": 1,
                "name": "string"
            },
            "title": "string",
            "instructions": "string",
            "open_timestamp": "2023-02-17T01:28:34.788838",
            "close_timestamp": "2023-02-17T01:28:34.788838",
            "grace_period": 1,
            "default_status": "string",
            "recommendation_complete_message": "string",
            "completion_message": "string",
            "edit_after_submit": true,
            "all_tasks_visible_to_applicant": true,
            "tasks_visible_to_applicant": [
                {
                    "name": "string",
                    "id": 1
                }
            ],
            "all_tasks_visible_to_recommender": true,
            "tasks_visible_to_recommender": [
                {
                    "name": "string",
                    "id": 1
                }
            ],
            "show_application_to_recommender": true,
            "recommenders_can_see_organization_profile": true,
            "recommenders_can_see_application_members": true,
            "recommenders_can_see_organization_customfields": true,
            "recommenders_can_see_organization_members": true,
            "recommenders_can_see_other_organization_applications": true,
            "recommenders_can_see_organization_decision_history": true,
            "recommenders_can_see_organization_eligibility_profile": true
        },
        {
            "id": 1,
            "program": {
                "id": 1,
                "name": "string"
            },
            "title": "string",
            "instructions": "string",
            "open_timestamp": "2023-02-17T01:28:34.788838",
            "close_timestamp": "2023-02-17T01:28:34.788838",
            "grace_period": 1,
            "default_status": "string"
        },
        {
            "id": 1,
            "program": {
                "id": 1,
                "name": "string"
            },
            "title": "string",
            "instructions": "string",
            "open_timestamp": "2023-02-17T01:28:34.788838",
            "close_timestamp": "2023-02-17T01:28:34.788838",
            "grace_period": 1,
            "default_status": "string",
            "review_completion": "string",
            "complete_before_submit": true,
            "reopen_after_submit": true,
            "allow_review_editing": true,
            "allow_review_conflicts": true,
            "admins_notified_of_review_conflicts": true,
            "admins_notified_by_review_conflicts": [
                {
                    "first_name": "string",
                    "last_name": "string",
                    "email": "name@example.com",
                    "id": 1
                }
            ],
            "application_notes": true,
            "automatic_assignments": true,
            "review_completion_message": "string",
            "assignment_method": "all",
            "num_reviewers_per_application": 1,
            "max_assignments_per_reviewer": 1,
            "allow_reassignment": true,
            "review_group": {
                "title": "string",
                "id": 1
            },
            "assign_remaining": "assign",
            "show_applicant_info": true,
            "show_applicant_eligibility_profile": true,
            "show_applicant_decision_history": true,
            "show_application_labels": true,
            "show_application_title": true,
            "show_application_activity": true,
            "show_application_dates": true,
            "show_recommender_info": true,
            "visible_applicant_tasks": [
                {
                    "name": "string",
                    "id": 1
                }
            ],
            "reviewers_can_see_organization_profile": true,
            "reviewers_can_see_application_members": true,
            "reviewers_can_see_organization_members": true,
            "reviewers_can_see_other_organization_applications": true,
            "reviewers_can_see_organization_decision_history": true,
            "reviewers_can_see_organization_eligibility_profile": true,
            "reviewers_can_see_review_scores": true,
            "reviewers_can_see_other_reviews": true,
            "reviewers_can_only_see_reviews_from_own_team": true,
            "reviewers_can_see_previous_rankings": true,
            "reviewers_can_see_other_reviewer_info": true,
            "applications_can_see_review_scores": true,
            "applications_can_see_review_content": true,
            "applications_can_see_reviewer_info": true
        },
        {
            "id": 1,
            "program": {
                "id": 1,
                "name": "string"
            },
            "title": "string",
            "open_timestamp": "2023-02-17T01:28:34.788838",
            "close_timestamp": "2023-02-17T01:28:34.788838",
            "keep_dates_consistent": true,
            "grace_period": 1,
            "default_status": "string",
            "parallel_stages": [
                {
                    "title": "string",
                    "id": 1
                }
            ]
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/stages/{id}/

Details on a single stage.

Admins need the View workflow permission to make this call.

Parameters:
  • id (integer) – ID

Example request:

GET /api/stages/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "program": {
            "id": 1,
            "name": "string"
        },
        "title": "string",
        "instructions": "string",
        "open_timestamp": "2023-02-17T01:28:34.788838",
        "close_timestamp": "2023-02-17T01:28:34.788838",
        "grace_period": 1,
        "default_status": "string",
        "recommendation_complete_message": "string",
        "completion_message": "string",
        "edit_after_submit": true,
        "all_tasks_visible_to_applicant": true,
        "tasks_visible_to_applicant": [
            {
                "name": "string",
                "id": 1
            }
        ],
        "all_tasks_visible_to_recommender": true,
        "tasks_visible_to_recommender": [
            {
                "name": "string",
                "id": 1
            }
        ],
        "show_application_to_recommender": true,
        "recommenders_can_see_organization_profile": true,
        "recommenders_can_see_application_members": true,
        "recommenders_can_see_organization_customfields": true,
        "recommenders_can_see_organization_members": true,
        "recommenders_can_see_other_organization_applications": true,
        "recommenders_can_see_organization_decision_history": true,
        "recommenders_can_see_organization_eligibility_profile": true
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Stage does not exist

  • 429 Too Many Requests – Rate limit exceeded

Tasks

GET /api/tasks/

Fetches all tasks in a site. You will likely want to filter this list by program or stage.

Admins need the View workflow permission to make this call.

Query Parameters:
  • deadline (string) – limit tasks based on their deadline

  • index (integer) – limit tasks based on their order in the stage

  • name (string) – limit tasks based on their name

  • program (integer) – limit tasks based on which program they are in

  • required (integer) – limit tasks based on whether they are required or not

  • stage (integer) – limit tasks based on which stage they are in

  • type (integer) – limit tasks based on their type

Example request:

GET /api/tasks/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      Tasks for a reviewer

      • id (integer)

      • deadline (string)

      • edit_after_complete (boolean)

      • edit_after_deadline (boolean)

      • name (string)

      • hide_until_prerequisites (boolean)

      • applicants_can_reuse_data (boolean)

        If true, applicants can reuse data provided from previous instances of this task

      • reusable_task_auto_complete (boolean)

        If true, automatically complete this task for an applicant using data provided from the first instance of this task

      • index (integer)

        The order of the task within the stage

      • instructions (string)

      • prerequisite_tasks (array of object)

        • name (string)

        • id (integer)

      • required (boolean)

        if true, the task must be completed

      • stage (object)

        • title (string)

        • id (integer)

      • type (integer)

      • view_before_eligible (boolean)

      • custom_labels (string)

      • custom_values (string)

      • customize_labels (boolean)

        if true, custom labels are used

      • customize_scoring (boolean)

        if true, customized scoring is used

      • review_type (integer)

      • yesno_symbol (integer)

      • yes_no_custom_labels (integer)

      • positive_choice (integer)

      • negative_choice (integer)

      • symbol (integer)

      • scale (integer)

      • additional_comments (integer)

      • weight (integer)

      • has_weight (integer)

      Task for filling in a form

      • id (integer)

      • deadline (string)

      • edit_after_complete (boolean)

        If true, the task can be edited after the application has been submitted

      • edit_after_deadline (boolean)

        If true, the task can be edited after the deadline

      • fields (array of object)

        • name (string)

        • choices (array of object)

          • index (integer)

            Index of the item in the choices list

          • score (number)

            Review ranking score

          • label (string)

        • other (boolean)

          True if the radio button or checkbox field has an other option

        • identifier (string)

          Identifier for the field

        • required (boolean)

          True if the field must have a value

        • type (string) Permitted values: datasource, file, multi, single, text, timestamp

          • datasource: Datasource

          • file: File upload

          • multi: Multiple choice field, such as checkboxes

          • single: Single choice field, such as radio buttons

          • text: Text field which is used for text and numbers

          • timestamp: Date/time field

        • validation (object)

          • error_message (string)

            Error message displayed if an incorrect value is entered into the field

          • max_length (string)

            Maximum length of the field

          • type (string) Permitted values: all, alpha, alphanum, currency, currency-eu, date-day, date-month, date-year, domain, email, float, integer, integer-positive, percentage-bound, percentage-unbound, phone-10, phone-10-ext, phone-int, phone-int-ext, postal, postal-ca, postal-ca-3, postal-us, ssn-us, ssn-ca, phone-uk, postal-uk, url, word-count

            • all - Any character

            • alpha - Letters only

            • alphanum - Numbers and letters only

            • currency - Currency

            • currency-eu - EU currency

            • date-day - Date in dd/mm/yyyy format

            • date-month - Date in mm/dd/yyyy format

            • date-year - Date in yyyy/mm/dd format

            • domain - Domain name

            • email - Email address

            • float - Floating point number

            • integer - Integer number

            • integer-positive - Positive integer number

            • percentage-bound - Percentage from 0 to 100%

            • percentage-unbound - Any percentage value

            • phone-10 - 10 digit phone number 555-123-4567

            • phone-10-ext - 10 digit phone number with extension

            • phone-int - International phone number

            • phone-int-ext - International phone number with extension

            • phone-uk - UK phone number

            • postal - Postal code

            • postal-ca - Canadian postal code

            • postal-ca-3 - First the characters of a Canadian postal code

            • postal-uk - UK postal code

            • postal-us - ZIP code

            • ssn-us - Social insurance number, US

            • ssn-ca - Social insurance number, Canada

            • url - URL

            • word-count - Number of words in the response

          • min_length (string)

            Minimum length of the field

      • hide_until_prerequisites (boolean)

      • applicants_can_reuse_data (boolean)

        If true, applicants can reuse data provided from previous instances of this task

      • reusable_task_auto_complete (boolean)

        If true, automatically complete this task for an applicant using data provided from the first instance of this task

      • index (integer)

        The order of the task within the stage

      • instructions (string)

      • prerequisite_tasks (array of object)

        • name (string)

        • id (integer)

      • required (boolean)

        if true, the task must be completed

      • stage (object)

        • title (string)

        • id (integer)

      • type (integer) Permitted values: 1

      • view_before_eligible (boolean)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "deadline": "2023-02-17T01:28:34.788838",
            "edit_after_complete": true,
            "edit_after_deadline": true,
            "name": "string",
            "hide_until_prerequisites": true,
            "applicants_can_reuse_data": true,
            "reusable_task_auto_complete": true,
            "index": 1,
            "instructions": "string",
            "prerequisite_tasks": [
                {
                    "name": "string",
                    "id": 1
                }
            ],
            "required": true,
            "stage": {
                "title": "string",
                "id": 1
            },
            "type": 1,
            "view_before_eligible": true,
            "custom_labels": "string",
            "custom_values": "string",
            "customize_labels": true,
            "customize_scoring": true,
            "review_type": 1,
            "yesno_symbol": 1,
            "yes_no_custom_labels": 1,
            "positive_choice": 1,
            "negative_choice": 1,
            "symbol": 1,
            "scale": 1,
            "additional_comments": 1,
            "weight": 1,
            "has_weight": 1
        },
        {
            "id": 1,
            "deadline": "2023-02-17T01:28:34.788838",
            "edit_after_complete": true,
            "edit_after_deadline": true,
            "fields": [
                {
                    "name": "string",
                    "choices": [
                        {
                            "index": 1,
                            "score": 1.0,
                            "label": "string"
                        }
                    ],
                    "other": true,
                    "identifier": "string",
                    "required": true,
                    "type": "datasource",
                    "validation": {
                        "error_message": "string",
                        "max_length": "string",
                        "type": "all",
                        "min_length": "string"
                    }
                }
            ],
            "hide_until_prerequisites": true,
            "applicants_can_reuse_data": true,
            "reusable_task_auto_complete": true,
            "index": 1,
            "instructions": "string",
            "prerequisite_tasks": [
                {
                    "name": "string",
                    "id": 1
                }
            ],
            "required": true,
            "stage": {
                "title": "string",
                "id": 1
            },
            "type": 1,
            "view_before_eligible": true
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/tasks/{id}/

Fetch details about a specific task.

Admins need the View workflow permission to make this call.

Parameters:
  • id (integer) – task ID

Example request:

GET /api/tasks/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "deadline": "2023-02-17T01:28:34.788838",
        "edit_after_complete": true,
        "edit_after_deadline": true,
        "name": "string",
        "hide_until_prerequisites": true,
        "applicants_can_reuse_data": true,
        "reusable_task_auto_complete": true,
        "index": 1,
        "instructions": "string",
        "prerequisite_tasks": [
            {
                "name": "string",
                "id": 1
            }
        ],
        "required": true,
        "stage": {
            "title": "string",
            "id": 1
        },
        "type": 1,
        "view_before_eligible": true,
        "custom_labels": "string",
        "custom_values": "string",
        "customize_labels": true,
        "customize_scoring": true,
        "review_type": 1,
        "yesno_symbol": 1,
        "yes_no_custom_labels": 1,
        "positive_choice": 1,
        "negative_choice": 1,
        "symbol": 1,
        "scale": 1,
        "additional_comments": 1,
        "weight": 1,
        "has_weight": 1
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Task does not exist

  • 429 Too Many Requests – Rate limit exceeded

Review Teams

GET /api/teams/

Fetch the list of review teams. Only admins can make this call.

Example request:

GET /api/teams/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • name (string)

      • id (integer)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "name": "string",
            "id": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

POST /api/teams/

Create a review team.

Only admins with the Create Review Teams permission can make this call.

Endpoint properties

  • name (string)

Example request:

POST /api/teams/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "name": "string"
}
Status Codes:
  • 201 Created

    Team created

    Endpoint properties

    • name (string)

    • id (integer)

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "name": "string",
        "id": 1
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/teams/{id}/

Fetch a single review team. Only administrators can make this call.

Parameters:
  • id (integer) – team ID

Example request:

GET /api/teams/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • name (string)

    • id (integer)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "name": "string",
        "id": 1
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/teams/{id}/

Update a single review team.

Only admins with the Create Review Teams permission can make this call.

Parameters:
  • id (integer) – team ID

Endpoint properties

  • name (string)

Example request:

PATCH /api/teams/{id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "name": "string"
}
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • name (string)

    • id (integer)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "name": "string",
        "id": 1
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Resource cannot be found

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/teams/{id}/

Delete a review team.

Only admins with the Create Review Teams permission can make this call.

Parameters:
  • id (integer) – team ID

Query Parameters:
  • keep_review_assignments (integer) – If set to 1, review assignments will be kept when the team is deleted otherwise the assignments will also be deleted

Status Codes:
GET /api/teams/{id}/members/

Fetch the list of reviewers in a review team. Only administrators can make this call.

Parameters:
  • id (integer) – Team ID

Example request:

GET /api/teams/{id}/members/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Team does not exist

  • 429 Too Many Requests – Rate limit exceeded

POST /api/teams/{id}/members/

Add a reviewer to the review team.

Only admins with the Create Review Teams permission can make this call.

Parameters:
  • id (integer) – Team ID

Endpoint properties

  • id (integer)

    reviewer’s user ID

Example request:

POST /api/teams/{id}/members/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "id": 1
}
Status Codes:
  • 201 Created

    Reviewer added

    Endpoint properties

    • array of object

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    [
        {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – Team does not exist

  • 429 Too Many Requests – Rate limit exceeded

DELETE /api/teams/{team_id}/members/{user_id}/

Removes a reviewer from the specified team.

Only admins with the Create Review Teams permission can make this call.

Parameters:
  • team_id (integer) – Team ID

  • user_id (integer) – User ID

Query Parameters:
  • unassign (integer) – If 1, the reviewer’s assignments and reviews associated with the team will be deleted

Status Codes:

Users

GET /api/users/

The collection of users for a site. Non-admin users will see a user reference for everyone except themselves; admins will see the complete user representation.

The list of users returned depends on the role of the caller:

  • applicants can see any collaborators as well as people they have requested recommendations from. They can also see reviewers if reviewers have been made visible in the review stage.

  • recommenders can see applicants they need to recommend

  • reviewers can see applicants for any application they have been assigned if that option has been enabled in the review stage

  • admins can see all users in the system if they have the View users permission.

Only admins with the View users permission can make this call.

Query Parameters:
  • first_name (string) – limit users by user’s first name

  • last_name (string) – limit users by user’s last name

  • email (string) – limit users by user’s email address

  • status (integer) – limit users by user’s status

  • last_active (string) – limit users by user’s last active time

  • role (string) – limit users by user’s role

Example request:

GET /api/users/ HTTP/1.1
Host: example.com
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • array of object

      User

      • id (integer)

      • active (boolean)

        available to admin only

      • custom_fields (object)

        • applicant (array of object)

          • id (integer)

            custom field ID

          • name (string)

            name of the custom field

          • value (string)

            the custom field’s value

        • reviewer (array of object)

          • id (integer)

            custom field ID

          • name (string)

            name of the custom field

          • value (string)

            the custom field’s value

        • recommender (array of object)

          • id (integer)

            custom field ID

          • name (string)

            name of the custom field

          • value (string)

            the custom field’s value

      • email (string)

      • email_subscribed (boolean)

        true if user will receive emails

      • email_verified (boolean)

        true if user’s email address has been verified

      • first_name (string)

      • language_preference (string)

        user’s preferred language

      • last_active (string)

        last time user access the site

      • last_name (string)

      • roles (array of string)

        user’s roles; only available to an administrator

      • sso_tokens (array of string)

        user’s sso tokens; only available to an administrator

      • signed_up (boolean)

      • timezone (string)

        user’s default timezone

      User Reference

      • first_name (string)

      • last_name (string)

      • email (string)

      • id (integer)

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    [
        {
            "id": 1,
            "active": true,
            "custom_fields": {
                "applicant": [
                    {
                        "id": 1,
                        "name": "string",
                        "value": "string"
                    }
                ],
                "reviewer": [
                    {
                        "id": 1,
                        "name": "string",
                        "value": "string"
                    }
                ],
                "recommender": [
                    {
                        "id": 1,
                        "name": "string",
                        "value": "string"
                    }
                ]
            },
            "email": "string",
            "email_subscribed": true,
            "email_verified": true,
            "first_name": "string",
            "language_preference": "string",
            "last_active": "2023-02-17T01:28:34.788838",
            "last_name": "string",
            "roles": [
                "applicant"
            ],
            "sso_tokens": [
                "string1"
            ],
            "signed_up": true,
            "timezone": "string"
        },
        {
            "first_name": "string",
            "last_name": "string",
            "email": "name@example.com",
            "id": 1
        }
    ]
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

POST /api/users/

Create a user. Only applicant, recommenders and reviewers can be created with this call.

You must supply values for the required custom fields when creating users. A 400 is returned if required custom fields are not supplied.

Only admins with the Add users permission can make this call.

Endpoint properties

  • active (boolean)

    available to admin only

  • custom_fields (object)

    • applicant (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • reviewer (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • recommender (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

  • email (string)

  • email_subscribed (boolean)

    true if user will receive emails

  • email_verified (boolean)

    true if user’s email address has been verified

  • first_name (string)

  • language_preference (string)

    user’s preferred language

  • last_active (string)

    last time user access the site

  • last_name (string)

  • roles (array of string)

    user’s roles; only available to an administrator

  • sso_tokens (string)

    user’s sso tokens; only available to an administrator; can only be set on account creation; readonly once set

  • signed_up (boolean)

  • timezone (string)

    user’s default timezone

Example request:

POST /api/users/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "active": true,
    "custom_fields": {
        "applicant": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "reviewer": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "recommender": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ]
    },
    "email": "string",
    "email_subscribed": true,
    "email_verified": true,
    "first_name": "string",
    "language_preference": "string",
    "last_name": "string",
    "roles": [
        "applicant"
    ],
    "sso_tokens": "string",
    "signed_up": true,
    "timezone": "string"
}
Status Codes:
  • 201 Created

    created

    Endpoint properties

    • id (integer)

    • active (boolean)

      available to admin only

    • custom_fields (object)

      • applicant (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • reviewer (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • recommender (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

    • email (string)

    • email_subscribed (boolean)

      true if user will receive emails

    • email_verified (boolean)

      true if user’s email address has been verified

    • first_name (string)

    • language_preference (string)

      user’s preferred language

    • last_active (string)

      last time user access the site

    • last_name (string)

    • roles (array of string)

      user’s roles; only available to an administrator

    • sso_tokens (array of string)

      user’s sso tokens; only available to an administrator

    • signed_up (boolean)

    • timezone (string)

      user’s default timezone

    Example response:

    HTTP/1.1 201 Created
    Content-Type: application/json
    
    {
        "id": 1,
        "active": true,
        "custom_fields": {
            "applicant": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "reviewer": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "recommender": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ]
        },
        "email": "string",
        "email_subscribed": true,
        "email_verified": true,
        "first_name": "string",
        "language_preference": "string",
        "last_active": "2023-02-17T01:28:34.788838",
        "last_name": "string",
        "roles": [
            "applicant"
        ],
        "sso_tokens": [
            "string1"
        ],
        "signed_up": true,
        "timezone": "string"
    }
    

  • 400 Bad Request – Bad request; see response body for error messages

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 429 Too Many Requests – Rate limit exceeded

GET /api/users/{id}/

Fetch a site user. Non-admin users will see a user reference for everyone except themselves; admins will see the complete user representation.

The list of users returned depends on the role of the caller:

  • applicants can see any collaborators as well as people they have requested recommendations from. They can also see reviewers if reviewers have been made visible in the review stage.

  • recommenders can see applicants they need to recommend

  • reviewers can see applicant for any application they have been assigned if that option has been enabled in the review stage

  • admins can see all users in the system if they have the XX permission.

Parameters:
  • id (integer) – User ID

Example request:

GET /api/users/{id}/ HTTP/1.1
Host: example.com
Accept: application/json
Status Codes:
  • 200 OK

    Call was successful

    Endpoint properties

    • id (integer)

    • active (boolean)

      available to admin only

    • custom_fields (object)

      • applicant (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • reviewer (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • recommender (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

    • email (string)

    • email_subscribed (boolean)

      true if user will receive emails

    • email_verified (boolean)

      true if user’s email address has been verified

    • first_name (string)

    • language_preference (string)

      user’s preferred language

    • last_active (string)

      last time user access the site

    • last_name (string)

    • roles (array of string)

      user’s roles; only available to an administrator

    • sso_tokens (array of string)

      user’s sso tokens; only available to an administrator

    • signed_up (boolean)

    • timezone (string)

      user’s default timezone

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "active": true,
        "custom_fields": {
            "applicant": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "reviewer": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "recommender": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ]
        },
        "email": "string",
        "email_subscribed": true,
        "email_verified": true,
        "first_name": "string",
        "language_preference": "string",
        "last_active": "2023-02-17T01:28:34.788838",
        "last_name": "string",
        "roles": [
            "applicant"
        ],
        "sso_tokens": [
            "string1"
        ],
        "signed_up": true,
        "timezone": "string"
    }
    

  • 401 Unauthorized – Caller is not authenticated

  • 403 Forbidden – Caller does not have the required permissions

  • 404 Not Found – User does not exist

  • 429 Too Many Requests – Rate limit exceeded

PATCH /api/users/{id}/

Update an existing user. Non-admins can only update themselves.

Admins with the Assume role permission can make this call.

Parameters:
  • id (integer) – User ID

Endpoint properties

  • active (boolean)

    available to admin only

  • custom_fields (object)

    • applicant (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • reviewer (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

    • recommender (array of object)

      • id (integer)

        custom field ID

      • name (string)

        name of the custom field

      • value (string)

        the custom field’s value

  • email (string)

  • email_subscribed (boolean)

    true if user will receive emails

  • email_verified (boolean)

    true if user’s email address has been verified

  • first_name (string)

  • language_preference (string)

    user’s preferred language

  • last_active (string)

    last time user access the site

  • last_name (string)

  • roles (array of string)

    user’s roles; only available to an administrator

  • signed_up (boolean)

  • timezone (string)

    user’s default timezone

Example request:

PATCH /api/users/{id}/ HTTP/1.1
Host: example.com
Content-Type: application/json

{
    "active": true,
    "custom_fields": {
        "applicant": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "reviewer": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ],
        "recommender": [
            {
                "id": 1,
                "name": "string",
                "value": "string"
            }
        ]
    },
    "email": "string",
    "email_subscribed": true,
    "email_verified": true,
    "first_name": "string",
    "language_preference": "string",
    "last_name": "string",
    "roles": [
        "applicant"
    ],
    "signed_up": true,
    "timezone": "string"
}
Status Codes:
  • 200 OK

    User updated

    Endpoint properties

    • id (integer)

    • active (boolean)

      available to admin only

    • custom_fields (object)

      • applicant (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • reviewer (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

      • recommender (array of object)

        • id (integer)

          custom field ID

        • name (string)

          name of the custom field

        • value (string)

          the custom field’s value

    • email (string)

    • email_subscribed (boolean)

      true if user will receive emails

    • email_verified (boolean)

      true if user’s email address has been verified

    • first_name (string)

    • language_preference (string)

      user’s preferred language

    • last_active (string)

      last time user access the site

    • last_name (string)

    • roles (array of string)

      user’s roles; only available to an administrator

    • sso_tokens (array of string)

      user’s sso tokens; only available to an administrator

    • signed_up (boolean)

    • timezone (string)

      user’s default timezone

    Example response:

    HTTP/1.1 200 OK
    Content-Type: application/json
    
    {
        "id": 1,
        "active": true,
        "custom_fields": {
            "applicant": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "reviewer": [
                {
                    "id": 1,
                    "name": "string",
                    "value": "string"
                }
            ],
            "recommender": [
                {