API Documentation

Learn how to integrate with the FiboDC API using your API key

Authentication

All API requests require authentication using an API key. To authenticate, include your API key in the request headers:

Authorization: Bearer YOUR_API_KEY

API keys can be generated in the Settings page when admin features are enabled.

Get All Applications

Retrieves a list of all applications with pagination support.

Endpoint

GET /api/external/applications

Query Parameters

  • page (optional): Page number (default: 1)
  • limit (optional): Number of items per page (default: 20)
  • search (optional): Search term to filter applications by name or description
  • status (optional): Filter applications by status

Response

{
  "success": true,
  "data": [
    {
      "id": "application_id",
      "name": "Application Name",
      "description": "Application Description",
      "status": ["New", "Archived"],
      "isPublished": true,
      "isPublic": true,
      "isSLA": false,
      "hasDeadline": false,
      "deadline": null,
      "accessLevel": "public",
      "createdAt": "2025-03-25T12:00:00.000Z",
      "updatedAt": "2025-03-25T12:00:00.000Z",
      "organization": {
        "id": "organization_id",
        "name": "Organization Name"
      },
      "user": {
        "id": "user_id",
        "name": "User Name",
        "email": "user@example.com"
      },
      "_count": {
        "Submissions": 5
      }
    }
  ],
  "pagination": {
    "page": 1,
    "limit": 20,
    "totalCount": 50,
    "totalPages": 3,
    "hasNextPage": true,
    "hasPrevPage": false
  }
}

Get Application by ID

Retrieves detailed information about a specific application.

Endpoint

GET /api/external/applications/{id}

Response

{
  "success": true,
  "data": {
    "id": "application_id",
    "name": "Application Name",
    "description": "Application Description",
    "formTitle": "Form Title",
    "formDescription": "Form Description",
    "questionnaire": "Questionnaire JSON",
    "status": ["New", "Archived"],
    "isPublished": true,
    "isPublic": true,
    "isSLA": false,
    "hasDeadline": false,
    "deadline": null,
    "accessLevel": "public",
    "submissionAccess": "any_person",
    "allowedOrgIds": [],
    "createdAt": "2025-03-25T12:00:00.000Z",
    "updatedAt": "2025-03-25T12:00:00.000Z",
    "organization": {
      "id": "organization_id",
      "name": "Organization Name",
      "description": "Organization Description"
    },
    "user": {
      "id": "user_id",
      "name": "User Name",
      "email": "user@example.com"
    },
    "_count": {
      "Submissions": 5,
      "tasks": 2
    }
  }
}

Error Responses

All endpoints return a consistent error response format:

{
  "success": false,
  "error": "Error message"
}

Common HTTP Status Codes

  • 400: Bad Request - Missing or invalid parameters
  • 401: Unauthorized - Missing or invalid API key
  • 403: Forbidden - Admin features not enabled
  • 404: Not Found - Resource not found
  • 500: Internal Server Error - Server-side error

Code Examples

Get All Applications

curl -X GET "https://fibodc.com//api/external/applications?page=1&limit=20" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json"

Update Submission Status

curl -X PATCH "https://fibodc.com//api/external/submissions/submission_id" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"status": "In Progress"}'