Fenergo Nebula Portal API 1.0.0.0

Fenergo Nebula Portal API — OpenAPI 3.0.4 contract published by Fenergo for the portal-bff service of the Fen-X SaaS platform, carrying 3 path(s) and 3 operation(s). Harvested verbatim from Fenergo's own published specification endpoint.

Operations 3

POST /api/passwordless/init Initializes Seamless Passwordless with magic link SSO authentication flow.
POST /api/passwordless/magiclink Returns magic link
POST /api/passwordless/encrypted-url Gets encrypted passwordless URL that can be used as a query string parameter

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/portal-bff-v1-0-0-0"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

fenergo-portal-bff-v1-0-0-0-openapi.json Raw ↑
{
  "openapi": "3.0.4",
  "info": {
    "title": "Fenergo Nebula Portal API",
    "description": "**Portal API**:\n\n<br> Portal API provides methods related to the Portal application.\n\n<br> **Portal API provides**:<br><ul><li> The ability to initiate Seamless Passwordless SSO.</li><li> The ability to query for Magic Link (Seamless Passwordless SSO).</li></ul>",
    "version": "1.0.0.0"
  },
  "servers": [
    {
      "url": "/portal-bff"
    }
  ],
  "paths": {
    "/api/passwordless/init": {
      "post": {
        "tags": [
          "Passwordless"
        ],
        "summary": "Initializes Seamless Passwordless with magic link SSO authentication flow.",
        "parameters": [
          {
            "name": "X-PORTALTENANT-ID",
            "in": "header",
            "description": "The UiD of the Portal tenant representing organization",
            "schema": {
              "type": "string"
            },
            "example": "6bd87873-d7d8-40e4-9d33-ebbf312d4505"
          }
        ],
        "requestBody": {
          "description": "Parameter containing all required information to initialize Seamless Passwordless with magic link SSO authentication flow.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessInitializeDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessInitializeDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessInitializeDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessInitializeDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/passwordless/magiclink": {
      "post": {
        "tags": [
          "Passwordless"
        ],
        "summary": "Returns magic link",
        "parameters": [
          {
            "name": "X-PORTALTENANT-ID",
            "in": "header",
            "description": "The UiD of the Portal tenant representing organization",
            "schema": {
              "type": "string"
            },
            "example": "6bd87873-d7d8-40e4-9d33-ebbf312d4505"
          }
        ],
        "requestBody": {
          "description": "Parameter containing all required information to retrieve magic link.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessMagicLinkRequestDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessMagicLinkRequestDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessMagicLinkRequestDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessMagicLinkRequestDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "type": "string"
                }
              },
              "application/json": {
                "schema": {
                  "type": "string"
                }
              },
              "text/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    },
    "/api/passwordless/encrypted-url": {
      "post": {
        "tags": [
          "Passwordless"
        ],
        "summary": "Gets encrypted passwordless URL that can be used as a query string parameter",
        "parameters": [
          {
            "name": "X-PORTALTENANT-ID",
            "in": "header",
            "description": "The UiD of the Portal tenant representing organization",
            "schema": {
              "type": "string"
            },
            "example": "6bd87873-d7d8-40e4-9d33-ebbf312d4505"
          }
        ],
        "requestBody": {
          "description": "Parameter containing all required information to encrypt for passwordless authentication",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.GetEncryptedUrlDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.GetEncryptedUrlDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.GetEncryptedUrlDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.GetEncryptedUrlDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Domain.Models.Response.BffResponseData`1[Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.EncryptedPasswordlessDataDto]"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Domain.Models.Response.BffResponseData`1[Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.EncryptedPasswordlessDataDto]"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Domain.Models.Response.BffResponseData`1[Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.EncryptedPasswordlessDataDto]"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "401": {
            "description": "Unauthorized",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "text/plain": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              },
              "text/json": {
                "schema": {
                  "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Fenergo.Nebula.Portal.BFF.Application.Models.ClientCredentials.ClientCredentialsRequestBase": {
        "required": [
          "clientId",
          "clientSecret"
        ],
        "type": "object",
        "properties": {
          "clientId": {
            "minLength": 1,
            "type": "string",
            "description": "ID of client_credentials client",
            "example": "d86b3298-7f69-4095-8271-590ce2d7ad51"
          },
          "clientSecret": {
            "minLength": 1,
            "type": "string",
            "description": "Secret of client_credentials client",
            "example": "b17d8fe8-cefe-4825-b9fc-2f941ac27f40"
          }
        },
        "additionalProperties": false,
        "description": "Contains data required for client_credentials authentication"
      },
      "Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.EncryptedPasswordlessDataDto": {
        "type": "object",
        "properties": {
          "encryptedData": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.GetEncryptedUrlDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.ClientCredentials.ClientCredentialsRequestBase"
          },
          {
            "required": [
              "entityId",
              "journeyId",
              "languageIsoCode",
              "returnUrl",
              "userIdentifier"
            ],
            "type": "object",
            "properties": {
              "entityId": {
                "minLength": 1,
                "type": "string",
                "description": "ID of an entity to which user will have access",
                "example": "941a59d5-4835-4755-9da9-efff70598ba0"
              },
              "userIdentifier": {
                "minLength": 1,
                "type": "string",
                "description": "User identifier",
                "example": "sample-user@client.com"
              },
              "returnUrl": {
                "minLength": 1,
                "type": "string",
                "description": "Return URL to which user will be redirected after journey completion",
                "example": "https://return-user-to.destination"
              },
              "journeyId": {
                "minLength": 1,
                "type": "string",
                "description": "Journey ID",
                "example": "941a59d5-4835-4755-9da9-efff70598ba0"
              },
              "languageIsoCode": {
                "minLength": 1,
                "type": "string",
                "description": "Language ISO code",
                "example": "en-US"
              },
              "expiresAtMilliseconds": {
                "minimum": 0,
                "exclusiveMinimum": true,
                "type": "integer",
                "description": "Expiration time in milliseconds since Unix epoch",
                "format": "int64",
                "example": 1696118400000
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Contains data required to encrypt passwordless initialization data using symmetric encryption"
      },
      "Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessInitializeDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.ClientCredentials.ClientCredentialsRequestBase"
          },
          {
            "required": [
              "entityId",
              "journeyId",
              "languageIsoCode",
              "userIdentifier"
            ],
            "type": "object",
            "properties": {
              "entityId": {
                "minLength": 1,
                "type": "string",
                "description": "ID of an entity to which user will have access",
                "example": "941a59d5-4835-4755-9da9-efff70598ba0"
              },
              "userIdentifier": {
                "minLength": 1,
                "type": "string",
                "description": "User identifier",
                "example": "sample-user@client.com"
              },
              "returnUrl": {
                "type": "string",
                "description": "Return URL to which user will be redirected after journey completion",
                "nullable": true,
                "example": "https://return-user-to.destination"
              },
              "callbackUrl": {
                "type": "string",
                "description": "Callback URL for sending a webhook to clients application when magic link is generated and ready to be retrieved",
                "nullable": true,
                "example": "https://callback-to.destination"
              },
              "journeyId": {
                "minLength": 1,
                "type": "string",
                "description": "ID of a journey to which user will be redirected",
                "example": "77e256e1-3c8b-43c4-a13e-53c5d4c63b20"
              },
              "languageIsoCode": {
                "minLength": 1,
                "type": "string",
                "description": "ISO code of a language that will be used for user's next login session",
                "example": ""
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Contains data required to initialize Seamless Passwordless with magic link SSO authentication flow"
      },
      "Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.PasswordlessMagicLinkRequestDto": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.ClientCredentials.ClientCredentialsRequestBase"
          },
          {
            "required": [
              "userIdentifier"
            ],
            "type": "object",
            "properties": {
              "userIdentifier": {
                "minLength": 1,
                "type": "string",
                "description": "User identifier",
                "example": "sample-user@client.com"
              }
            },
            "additionalProperties": false
          }
        ],
        "description": "Contains data required to get magic link"
      },
      "Fenergo.Nebula.Portal.BFF.Domain.Models.Response.BffResponseData`1[Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.EncryptedPasswordlessDataDto]": {
        "type": "object",
        "properties": {
          "data": {
            "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Application.Models.Passwordless.EncryptedPasswordlessDataDto"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Fenergo.Nebula.Portal.BFF.Domain.Models.Response.CommonResponseMessage"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Fenergo.Nebula.Portal.BFF.Domain.Models.Response.CommonResponseMessage": {
        "type": "object",
        "properties": {
          "message": {
            "type": "string",
            "nullable": true
          },
          "type": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "Microsoft.AspNetCore.Http.HttpValidationProblemDetails": {
        "allOf": [
          {
            "$ref": "#/components/schemas/Microsoft.AspNetCore.Mvc.ProblemDetails"
          },
          {
            "type": "object",
            "properties": {
              "errors": {
                "type": "object",
                "additionalProperties": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "nullable": true
              }
            },
            "additionalProperties": { }
          }
        ]
      },
      "Microsoft.AspNetCore.Mvc.ProblemDetails": {
        "type": "object",
        "properties": {
          "type": {
            "type": "string",
            "nullable": true
          },
          "title": {
            "type": "string",
            "nullable": true
          },
          "status": {
            "type": "integer",
            "format": "int32",
            "nullable": true
          },
          "detail": {
            "type": "string",
            "nullable": true
          },
          "instance": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": { }
      }
    },
    "securitySchemes": {
      "Bearer": {
        "type": "apiKey",
        "description": "Please insert JWT with Bearer into field",
        "name": "Authorization",
        "in": "header"
      }
    }
  },
  "security": [
    {
      "Bearer": [ ]
    }
  ]
}