Startup Portugal API

API Documentation for the Startup Portugal platform

Authentication

Most endpoints require authentication using a JWT token. To authenticate:

  1. Use the /api/auth/signin endpoint to obtain a token
  2. Include the token in the Authorization header for subsequent requests using the format: Bearer YOUR_TOKEN

Base URL

/api

Authentication Endpoints

POST /auth/signin

Authenticate a user and get a JWT token.

Request Body:
{
  "email": "user@example.com",
  "password": "your_password"
}
Response (200 OK):
{
  "name": "User Name",
  "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
POST /auth/signup

Register a new user.

Request Body:
{
  "name": "New User",
  "email": "newuser@example.com",
  "password": "secure_password",
  "isAdmin": false
}
Response (201 Created):
{
  "msg": "Utilizador criado com sucesso"
}
DELETE /auth/delete Requires Authentication

Delete a user account.

Request Body:
{
  "name": "User Name",
  "email": "user@example.com",
  "password": "your_password"
}
Response (200 OK):
{
  "msg": "Utilizador eliminado com sucesso"
}

Companies Endpoints

GET /companiesList/:type/:skip?/:take?

Get all companies with optional pagination.

Parameters:
  • type: "all" or "verified"
  • skip (optional): Number of records to skip
  • take (optional): Number of records to return
Response (200 OK):

Array of company objects

GET /companiesList/:id

Get a company by ID.

Parameters:
  • id: UUID of the company
Response (200 OK):

Company object

GET /companiesList/query

Search companies by query parameter.

Query Parameters:
  • search: Search term
  • type (optional): "all" or "verified"
Response (200 OK):

Array of company objects matching the search criteria

Programs Endpoints

POST /programs/create

Create a new program for a company.

Request Body:
{
  "companyId": "uuid",
  "program": "Road2WebSummit", // one of the ProgramType enum values
  "yearAttended": 2025 // optional
}
Response (201 Created):
{
  "message": "Company Program created successfully",
  "data": { ... }
}
POST /programs/bulk

Create multiple company programs.

Request Body:
[
  {
    "NIPC": "123456789",
    "program": "Road2WebSummit",
    "yearAttended": 2025,
    "brandName": "Optional Brand Name"
  },
  ...
]
Response (201 Created):
{
  "message": "Company Programs created successfully",
  "count": 5,
  "attempted": 5
}

Startup Request Endpoints

GET /startupRequest Requires Authentication

Get all startup requests.

Response (200 OK):

Array of startup request objects

GET /startupRequest/:id Requires Authentication

Get a startup request by ID.

Parameters:
  • id: ID of the startup request
Response (200 OK):

Startup request object