Linkwarden Links API
The Links API from Linkwarden — 5 operation(s) for links.
The Links API from Linkwarden — 5 operation(s) for links.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
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.curl "https://apis.io/api/v1/apis/linkwarden:linkwarden-links-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
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: 3.2.0
info:
description: Linkwarden OpenAPI Documentation.
version: 1.0.0
title: Introduction Links API
license:
name: GNU Affero General Public License v3.0
url: https://www.gnu.org/licenses/agpl-3.0.html
tags:
- name: Links
paths:
/api/v1/links:
get:
deprecated: true
security:
- bearerAuth: []
tags:
- Links
summary: Retrieve a list of links
description: Fetches a paginated list of links, with optional filtering and sorting options. **This endpoint is deprecated in favor of `/api/v1/search`.**
parameters:
- name: sort
in: query
required: false
schema:
type: integer
- name: cursor
in: query
required: false
schema:
type: integer
- name: collectionId
in: query
required: false
schema:
type: integer
- name: tagId
in: query
required: false
schema:
type: integer
- name: pinnedOnly
in: query
required: false
schema:
type: boolean
- name: searchQueryString
in: query
required: false
schema:
type: string
responses:
'200':
description: Successfully retrieved the list of links.
content:
application/json:
schema:
type: object
properties:
response:
items:
$ref: '#/components/schemas/Link'
'401':
$ref: '#/components/responses/Unauthorized'
operationId: getApiV1Links
x-operation-id-source: derived
post:
security:
- bearerAuth: []
tags:
- Links
summary: Create a new link
description: Creates a new link with optional tags and collection information.
operationId: createLink
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
name:
type:
- string
- 'null'
maxLength: 2048
url:
type:
- string
- 'null'
maxLength: 2048
example: https://example.com
type:
type:
- string
- 'null'
enum:
- url
- pdf
- image
example: url
description:
type:
- string
- 'null'
maxLength: 2048
example: Some additional thoughts...
tags:
type:
- array
- 'null'
items:
type: object
properties:
id:
type: integer
example: 1
name:
type: string
maxLength: 50
example: test
example:
- id: 1
name: test
collection:
type:
- object
- 'null'
properties:
id:
type: integer
example: 1
name:
type: string
maxLength: 2048
example: Unorganized
example:
id: 1
name: Unorganized
responses:
'200':
description: Successfully created the link.
content:
application/json:
schema:
type: object
properties:
response:
$ref: '#/components/schemas/Link'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
put:
security:
- bearerAuth: []
tags:
- Links
summary: Bulk update links
description: Updates multiple links at once, with options to update tags and collection.
operationId: bulkUpdateLinks
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
links:
type: array
items:
$ref: '#/components/schemas/Link'
removePreviousTags:
type: boolean
newData:
type: object
properties:
collectionId:
type: integer
tags:
type: array
items:
type: object
properties:
id:
type:
- integer
- 'null'
name:
type: string
maxLength: 50
responses:
'200':
description: All links updated successfully.
content:
application/json:
schema:
type: object
properties:
response:
type: string
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
delete:
security:
- bearerAuth: []
tags:
- Links
summary: Delete a list of links
description: Deletes multiple links based on the provided list of link IDs.
operationId: deleteLinks
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
linkIds:
type: array
items:
type: integer
description: List of link IDs to be deleted.
responses:
'200':
description: Successfully deleted the links.
content:
application/json:
schema:
type: object
properties:
response:
type: object
properties:
count:
type: integer
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/links/{id}:
get:
security:
- bearerAuth: []
tags:
- Links
summary: Get a link by ID
parameters:
- name: id
in: path
description: The ID of the link to be retrieved.
required: true
schema:
type: integer
operationId: getLink
responses:
'200':
description: Successfully retrieved the link.
content:
application/json:
schema:
type: object
properties:
response:
type: object
$ref: '#/components/schemas/Link'
'401':
$ref: '#/components/responses/Unauthorized'
put:
security:
- bearerAuth: []
tags:
- Links
summary: Update a link
description: Updates the details of an existing link by its ID.
operationId: updateLink
parameters:
- name: id
in: path
required: true
description: The ID of the link to update.
schema:
type: integer
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
id:
type: integer
name:
type:
- string
- 'null'
maxLength: 2048
url:
type:
- string
- 'null'
maxLength: 2048
description:
type:
- string
- 'null'
maxLength: 2048
icon:
type:
- string
- 'null'
maxLength: 50
iconWeight:
type:
- string
- 'null'
maxLength: 50
color:
type:
- string
- 'null'
maxLength: 10
tags:
type: array
items:
type: object
properties:
id:
type:
- integer
- 'null'
name:
type: string
maxLength: 50
collection:
type: object
properties:
id:
type: integer
ownerId:
type: integer
pinnedBy:
type: array
items:
type: object
properties:
id:
type:
- integer
- 'null'
responses:
'200':
description: Link successfully updated.
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
delete:
security:
- bearerAuth: []
tags:
- Links
summary: Delete a link
description: Deletes the specified link from the system.
operationId: deleteLink
parameters:
- name: id
in: path
description: The ID of the link to be deleted.
required: true
schema:
type: integer
responses:
'200':
description: Successfully deleted the link.
content:
application/json:
schema:
type: object
properties:
response:
type: object
properties:
id:
type: integer
name:
type: string
type:
type: string
description:
type: string
createdById:
type: number
collectionId:
type: number
icon:
type:
- string
- 'null'
iconWeight:
type:
- string
- 'null'
color:
type:
- string
- 'null'
url:
type: string
textContent:
type:
- string
- 'null'
preview:
type:
- string
- 'null'
image:
type:
- string
- 'null'
pdf:
type:
- string
- 'null'
readable:
type:
- string
- 'null'
monolith:
type:
- string
- 'null'
lastPreserved:
type:
- string
- 'null'
format: date-time
importDate:
type:
- string
- 'null'
format: date-time
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
/api/v1/links/{id}/archive:
put:
security:
- bearerAuth: []
tags:
- Links
summary: Archive a link
description: Updates a links archive files
operationId: archiveLink
parameters:
- name: id
in: path
description: The ID of the link to be archived.
required: true
schema:
type: integer
responses:
'200':
description: Successfully archived the link.
content:
application/json:
schema:
type: object
properties:
response:
type: string
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
'404':
$ref: '#/components/responses/NotFound'
/api/v1/links/{id}/highlights:
get:
security:
- bearerAuth: []
tags:
- Links
summary: Get highlights for a link
parameters:
- name: id
in: path
required: true
description: The ID of the link whose highlights should be returned.
schema:
type: integer
responses:
'200':
description: Highlights retrieved successfully.
content:
application/json:
schema:
type: object
properties:
response:
type: array
items:
type: object
properties:
id:
type: integer
userId:
type: integer
linkId:
type: integer
color:
type: string
comment:
type:
- string
- 'null'
startOffset:
type: integer
endOffset:
type: integer
text:
type: string
createdAt:
type: string
format: date-time
updatedAt:
type: string
format: date-time
'401':
$ref: '#/components/responses/Unauthorized'
operationId: getApiV1LinksByIdHighlights
x-operation-id-source: derived
/api/v1/links/archive:
delete:
security:
- bearerAuth: []
tags:
- Links
summary: Delete archived files for multiple links
description: Removes stored archive files for the provided link IDs and resets their preservation fields.
requestBody:
required: true
content:
application/json:
schema:
type: object
required:
- linkIds
properties:
linkIds:
type: array
items:
type: integer
responses:
'200':
description: Archive deletion queued successfully.
content:
application/json:
schema:
type: object
properties:
response:
type: string
'400':
$ref: '#/components/responses/BadRequest'
'401':
$ref: '#/components/responses/Unauthorized'
operationId: deleteApiV1LinksArchive
x-operation-id-source: derived
components:
responses:
NotFound:
description: Resource not found
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
BadRequest:
description: Bad request error.
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
Unauthorized:
description: Unauthorized
content:
application/json:
schema:
$ref: '#/components/schemas/ErrorResponse'
schemas:
ErrorResponse:
type: object
properties:
response:
type: string
Link:
type: object
properties:
id:
type: integer
example: 4
name:
type: string
example: Example link
type:
type: string
example: url
description:
type: string
example: Some additional thoughts...
createdById:
type: integer
example: 1
collectionId:
type: integer
example: 3
icon:
type:
- string
- 'null'
example: Airplane
iconWeight:
type:
- string
- 'null'
example: fill
enum:
- fill
- bold
- light
- regular
- duotone
- thin
color:
example: '#0ea5e9'
type: string
url:
type: string
example: https://example.com
textContent:
type:
- string
- 'null'
example: Example Domain This domain is for use in illustrative examples in documents. You may use this domain in literature without prior coordination or asking for permission. More information...
preview:
type:
- string
- 'null'
example: archives/preview/3/4.jpeg
image:
type:
- string
- 'null'
example: archives/preview/3/4.jpeg
pdf:
type:
- string
- 'null'
example: archives/preview/3/4.pdf
readable:
type:
- string
- 'null'
example: archives/3/4_readability.json
monolith:
type:
- string
- 'null'
example: unavailable
lastPreserved:
type:
- string
- 'null'
format: date-time
example: '2024-12-02T00:40:22.295Z'
importDate:
type:
- string
- 'null'
example: '2024-12-02T00:40:22.295Z'
createdAt:
type: string
example: '2024-12-02T00:40:22.295Z'
format: date-time
updatedAt:
type: string
example: '2024-12-02T00:40:22.295Z'
format: date-time
tags:
type: array
items:
type: object
properties:
id:
type: integer
example: 2
name:
type: string
example: Technology
ownerId:
type: integer
example: 1
createdAt:
type: string
example: '2024-12-02T00:40:22.295Z'
format: date-time
updatedAt:
type: string
example: '2024-12-02T00:40:22.295Z'
format: date-time
collection:
type: object
properties:
id:
type: integer
example: 3
name:
type: string
example: Health and Wellness
description:
type: string
example: Latest articles on health and wellness.
icon:
type:
- string
- 'null'
description: Acorn
iconWeight:
type:
- string
- 'null'
example: fill
enum:
- fill
- bold
- light
- regular
- duotone
- thin
color:
example: '#0ea5e9'
type: string
parentId:
type:
- integer
- 'null'
example: null
isPublic:
type: boolean
example: false
ownerId:
type: integer
example: 1
createdById:
type: integer
example: 2
createdAt:
type: string
example: '2024-12-02T00:40:22.295Z'
format: date-time
updatedAt:
type: string
example: '2024-12-02T00:40:22.295Z'
format: date-time
pinnedBy:
type: array
items:
type: integer
example:
- 1
- 2
- 3
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT