A permalink is a short, stable stand-in for a long URL: it stores a target URL together with a generated 6-character alphanumeric key, and a request to /minerva/x?<key> redirects to that URL. The target can be any URL; the typical use is shortening long map view addresses so they can be shared. All operations below require the administrator role. The endpoints are served from /new_api/permalinks/.

Returns a page of the permalinks stored in this instance, each with its redirect key, target URL and creation time.

Note
The result is paged - use the page and size query parameters to walk through it.

1.1. HTTP request

GET /minerva/new_api/permalinks/ HTTP/1.1

1.2. Query Parameters

Parameter Description

page

index of the page to fetch, counted from 0; 0 by default

size

number of entries on a page; 20 by default, 10000 at most

1.3. CURL sample

$ curl 'https://minerva-dev.lcsb.uni.lu/minerva/new_api/permalinks/' -X GET \
    -H 'Authorization: Bearer xxxxxxxx'

1.4. HTTP response

HTTP/1.1 200 OK

1.5. Response Fields

Path Type Description

content

Array

list of permalinks on the page

content[].id

Number

unique numeric identifier

content[].redirectId

String

6-character alphanumeric redirect key used in URL

content[].url

String

target URL the redirect points to

content[].createdAt

String

timestamp when the permalink was created

totalPages

Number

total number of pages

totalElements

Number

total number of elements

numberOfElements

Number

number of elements on this page

size

Number

page size

number

Number

page number

1.6. Sample Response

{
  "content" : [ {
    "id" : 3,
    "redirectId" : "aJOM5L",
    "url" : "https://stark.biz",
    "createdAt" : "2026-09-23T23:11:10Z"
  }, {
    "id" : 4,
    "redirectId" : "xHMTKN",
    "url" : "https://mraz.co",
    "createdAt" : "2026-09-23T23:11:10Z"
  } ],
  "totalPages" : 1,
  "totalElements" : 2,
  "numberOfElements" : 2,
  "size" : 20,
  "number" : 0
}

Returns a single permalink by its numeric id - note that this is the database id, not the 6-character redirect key used in the short URL.

2.1. HTTP request

GET /minerva/new_api/permalinks/2 HTTP/1.1

2.2. CURL sample

$ curl 'https://minerva-dev.lcsb.uni.lu/minerva/new_api/permalinks/2' -X GET \
    -H 'Authorization: Bearer xxxxxxxx'

2.3. HTTP response

HTTP/1.1 200 OK

2.4. Response Fields

Path Type Description

id

Number

unique numeric identifier

redirectId

String

6-character alphanumeric redirect key used in URL

url

String

target URL the redirect points to

createdAt

String

timestamp when the permalink was created

2.5. Sample Response

{
  "id" : 2,
  "redirectId" : "os16h0",
  "url" : "https://jaskolski.net",
  "createdAt" : "2026-09-23T23:11:09Z"
}

Registers a target URL and returns the new permalink with the redirect key generated for it by the server; the key cannot be chosen by the caller.

3.1. HTTP request

POST /minerva/new_api/permalinks/ HTTP/1.1

3.2. Request Fields

Path Type Description

url

String

target URL the permalink should redirect to

3.3. CURL sample

$ curl 'https://minerva-dev.lcsb.uni.lu/minerva/new_api/permalinks/' -X POST \
    -H 'Authorization: Bearer xxxxxxxx' \
    -d '{"url":"https://ferry.net"}' \
    -H 'Content-Type: application/json'

3.4. HTTP response

HTTP/1.1 201 Created

3.5. Response Fields

Path Type Description

id

Number

unique numeric identifier

redirectId

String

6-character alphanumeric redirect key used in URL

url

String

target URL the redirect points to

createdAt

String

timestamp when the permalink was created

3.6. Sample Response

{
  "id" : 0,
  "redirectId" : "JxchRY",
  "url" : "https://ferry.net",
  "createdAt" : "2026-09-23T23:11:09Z"
}

Points an existing permalink at a different target URL. The redirect key stays the same, so links already shared keep working.

4.1. HTTP request

PUT /minerva/new_api/permalinks/1 HTTP/1.1

4.2. Request Fields

Path Type Description

url

String

target URL the permalink should redirect to

4.3. CURL sample

$ curl 'https://minerva-dev.lcsb.uni.lu/minerva/new_api/permalinks/1' -X PUT \
    -H 'Authorization: Bearer xxxxxxxx' \
    -d '{"url":"https://walsh.co"}' \
    -H 'Content-Type: application/json'

4.4. HTTP response

HTTP/1.1 200 OK

4.5. Response Fields

Path Type Description

id

Number

unique numeric identifier

redirectId

String

6-character alphanumeric redirect key used in URL

url

String

target URL the redirect points to

createdAt

String

timestamp when the permalink was created

4.6. Sample Response

{
  "id" : 1,
  "redirectId" : "FAalDq",
  "url" : "https://walsh.co",
  "createdAt" : "2026-09-23T23:11:09Z"
}