Connect API Documentation

    Overview

    The Connect API allows you to programmatically access your project data. All API requests require authentication using your project-specific API key.

    With this API, you can retrieve various project resources including table definitions, operation flows, screen designs, system architectures, and more.

    Authentication

    All API requests require an API key which should be included in the request headers.

    Request Headers

    X-API-Key: your_api_key_here

    You can obtain your API key from your project settings. Each API key is scoped to a specific project, and will only work for resources within that project.

    Authentication Code Examples

    curl

    curl -X GET "https://gearindigo.app/api/connect/v1/projects/{project_id}" \
      -H "X-API-Key: your_api_key_here"

    JavaScript

    fetch('https://gearindigo.app/api/connect/v1/projects/{project_id}', {
      method: 'GET',
      headers: {
        'X-API-Key': 'your_api_key_here'
      }
    })
    .then(response => response.json())
    .then(data => console.log(data))
    .catch(error => console.error('Error:', error));

    Python

    import requests
    
    url = "https://gearindigo.app/api/connect/v1/projects/{project_id}"
    headers = {
        "X-API-Key": "your_api_key_here"
    }
    
    response = requests.get(url, headers=headers)
    data = response.json()
    print(data)

    Base URL

    https://gearindigo.app/api/connect/v1

    Endpoints

    Get Project Details

    GET/projects/{project_id}

    Retrieves details for a specific project.

    Path Parameters

    ParameterTypeDescription
    project_idstringThe unique identifier for the project

    Response

    {
      "data": {
        "id": "project_123",
        "name": "Example Project",
        "description": "This is a sample project",
        "created_at": "2023-06-01T12:00:00Z",
        "updated_at": "2023-06-15T14:30:00Z",
        "owner_id": "user_456",
        "status": "active"
      },
      "request_id": "550e8400-e29b-41d4-a716-446655440000"
    }

    Get Table Definitions

    GET/projects/{project_id}/table-definitions

    Retrieves all table definitions for a specific project.

    Path Parameters

    ParameterTypeDescription
    project_idstringThe unique identifier for the project

    Query Parameters

    ParameterTypeRequiredDescription
    limitintegerNoMaximum number of records to return (default: 20, max: 100)
    offsetintegerNoNumber of records to skip (default: 0)

    Response

    {
      "data": [
        {
          "id": "table_def_123",
          "name": "users",
          "description": "Users table containing account information",
          "fields": [
            {
              "name": "id",
              "type": "uuid",
              "primary_key": true,
              "description": "Unique identifier for the user"
            },
            {
              "name": "email",
              "type": "string",
              "unique": true,
              "description": "User's email address"
            },
            {
              "name": "created_at",
              "type": "timestamp",
              "description": "When the user was created"
            }
          ],
          "created_at": "2023-06-01T12:00:00Z",
          "updated_at": "2023-06-15T14:30:00Z"
        },
        // Additional table definitions
      ],
      "meta": {
        "total": 12,
        "limit": 20,
        "offset": 0
      },
      "request_id": "550e8400-e29b-41d4-a716-446655440000"
    }

    Get a Specific Table Definition

    GET/projects/{project_id}/table-definitions/{table_def_id}

    Use this endpoint to retrieve a specific table definition by ID.

    Operation Flows

    Access ASIS and TOBE operation flows

    Get ASIS Operation Flows

    GET/projects/{project_id}/asis-operation-flows

    Retrieves all as-is operation flows for a specific project.

    Get TOBE Operation Flows

    GET/projects/{project_id}/tobe-operation-flows

    Retrieves all to-be operation flows for a specific project.

    Response Format (Example)

    {
      "data": [
        {
          "id": "flow_123",
          "name": "User Registration Flow",
          "description": "Process for new user registration",
          "flow_data": {
            "nodes": [
              // Flow node objects
            ],
            "edges": [
              // Flow edge objects
            ]
          },
          "created_at": "2023-06-01T12:00:00Z",
          "updated_at": "2023-06-15T14:30:00Z"
        },
        // Additional flows
      ],
      "meta": {
        "total": 8,
        "limit": 20,
        "offset": 0
      },
      "request_id": "550e8400-e29b-41d4-a716-446655440000"
    }

    Screen Resources

    Access screen-related resources including lists, UIs, and transitions

    Get Screen Lists

    GET/projects/{project_id}/screens-lists

    Retrieves the list of all screens for a specific project.

    Get Screen UIs

    GET/projects/{project_id}/screen-uis

    Retrieves all screen UI designs for a specific project.

    Get Screen Transitions

    GET/projects/{project_id}/screen-transitions

    Retrieves all screen transition flows for a specific project.

    Diagrams and Architecture

    Access system architecture, ER diagrams, and sequence diagrams

    Get System Architectures

    GET/projects/{project_id}/system-architectures

    Retrieves system architecture diagrams and documentation.

    Get ER Diagrams

    GET/projects/{project_id}/er-diagrams

    Retrieves entity-relationship diagrams for the project.

    Get Sequence Diagrams

    GET/projects/{project_id}/sequence-diagrams

    Retrieves sequence diagrams showing interaction flows.

    Requirements and Functions

    Access functional and non-functional requirements

    Get Requirements Lists

    GET/projects/{project_id}/requirements-lists

    Retrieves all requirements for the project.

    Get Functions Lists

    GET/projects/{project_id}/functions-lists

    Retrieves all function specifications for the project.

    Get Non-Functions Lists

    GET/projects/{project_id}/non-functions-lists

    Retrieves all non-functional requirements for the project.

    Additional Resources

    Other available project resources

    Get Backend Handles Lists

    GET/projects/{project_id}/backend-handles-lists

    Retrieves backend API endpoints and handlers for the project.

    Get Common Components

    GET/projects/{project_id}/common-components

    Retrieves reusable components defined in the project.

    Get System Abstractions

    GET/projects/{project_id}/system-abstractions

    Retrieves high-level system abstractions and models.

    Pagination

    Endpoints that return multiple items support pagination through the limit and offset query parameters.

    Pagination Parameters

    ParameterDescription
    limitNumber of records to return (default: 20, max: 100)
    offsetNumber of records to skip (default: 0)

    Paginated responses include a meta object with pagination information:

    {
      "data": [...],
      "meta": {
        "total": 42,    // Total number of records
        "limit": 20,    // Current limit
        "offset": 20    // Current offset
      },
      "request_id": "..."
    }

    Error Handling

    The API uses standard HTTP status codes to indicate the success or failure of requests. In case of an error, the response will include an error code and message.

    Error Response Format

    {
      "error": {
        "code": "ERROR_CODE",
        "message": "Error message providing more details"
      },
      "request_id": "550e8400-e29b-41d4-a716-446655440000"
    }
    Status CodeError CodeDescription
    400INVALID_REQUESTThe request contains invalid parameters
    401AUTHENTICATION_ERRORInvalid or missing API key
    403AUTHORIZATION_ERRORAccess to the requested resource is forbidden
    404RESOURCE_NOT_FOUNDThe requested resource was not found
    500INTERNAL_ERRORAn internal server error occurred