LinkAce Links API
The Links API from LinkAce — 4 operation(s) for links.
The Links API from LinkAce — 4 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/linkace:linkace-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:
title: LinkAce Links API
version: '2.0'
license:
name: GPL-3.0-or-later
url: https://opensource.org/licenses/gpl-3.0.html
contact:
url: https://github.com/Kovah/LinkAce
description:
$ref: ./intro.md
servers:
- url: https://demo.linkace.org
description: Demo Server
tags:
- name: Links
paths:
/api/v2/links:
parameters:
- $ref: '#/components/parameters/DefaultAccept'
get:
summary: 'Links: Get all Links'
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/LinkPaginator'
'401':
description: Unauthorized
operationId: get-api-v2-links
description: Get all links.
parameters:
- $ref: '#/components/parameters/PaginatorAmount'
- schema:
type: string
enum:
- id
- url
- title
- description
- visibility
- status
- check_disabled
- created_at
- updated_at
in: query
name: order_by
description: Order elements by the specified field
- $ref: '#/components/parameters/OrderDirection'
security:
- api_token: []
tags:
- Links
post:
summary: 'Links: Create'
operationId: post-api-v2-links
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'401':
description: Unauthorized
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LinkRequest'
examples:
Example Request for DuckDuckGo.com:
$ref: '#/components/examples/LinkRequest'
Example Request with tags as a string:
$ref: '#/components/examples/LinkRequestWithStringTags'
Example Request with tags as strings in array:
$ref: '#/components/examples/LinkRequestWithArrayTags'
description: ''
security:
- api_token: []
description: Create a new Link.
tags:
- Links
/api/v2/links/{link_id}:
parameters:
- $ref: '#/components/parameters/DefaultAccept'
- schema:
type: integer
name: link_id
in: path
required: true
get:
summary: 'Links: Link Details'
operationId: get-api-v2-links-link_id
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'401':
description: Unauthorized
'404':
description: Not Found
security:
- api_token: []
description: Get one specific link, including his lists and tags.
tags:
- Links
patch:
summary: 'Links: Update'
operationId: patch-api-v2-links-link_id
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/Link'
'401':
description: Unauthorized
'404':
description: Not Found
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/LinkRequest'
examples:
Example Request for DuckDuckGo.com:
$ref: '#/components/examples/LinkRequest'
Example Request with tags as a string:
$ref: '#/components/examples/LinkRequestWithStringTags'
Example Request with tags as strings in array:
$ref: '#/components/examples/LinkRequestWithArrayTags'
security:
- api_token: []
description: Update one specific link.
tags:
- Links
delete:
summary: 'Links: Delete'
operationId: delete-api-v2-links-link_id
responses:
'200':
description: OK
'401':
description: Unauthorized
'404':
description: Not Found
'500':
description: Internal Server Error
security:
- api_token: []
description: Delete one specific link.
tags:
- Links
/api/v2/search/links:
parameters:
- $ref: '#/components/parameters/DefaultAccept'
get:
summary: Search Links
tags:
- Links
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/LinkPaginator'
'401':
description: Unauthorized
'422':
description: Unprocessable Entity
content:
application/json:
schema:
$ref: '#/components/schemas/ValidationError'
operationId: get-api-v2-search-links
description: Search all links saved in LinkAce
security:
- api_token: []
parameters:
- $ref: '#/components/parameters/PaginatorAmount'
- schema:
type: string
in: query
name: query
description: Query used to search for Links
required: true
- schema:
type: boolean
in: query
name: search_title
description: Enables searching in the title
- schema:
type: boolean
in: query
description: Enables searching in the description
name: search_description
- schema:
type: boolean
in: query
name: private_only
description: Search for private links only
- schema:
type: boolean
in: query
name: broken_only
description: Search for broken links only (Status is not "Ok")
- schema:
type: boolean
in: query
name: empty_lists
description: Search for links without any lists attatched
- schema:
type: boolean
in: query
name: empty_tags
description: Search for links without any tags attatched
- schema:
type: string
in: query
name: only_lists
description: Comma-separated list of list IDs a link must have
- schema:
type: string
in: query
name: only_tags
description: Comma-separated list of tag IDs a link must have
- schema:
type: string
default: title:asc
enum:
- title:asc
- title:desc
- url:asc
- url:desc
- created_at:asc
- created_at:desc
in: query
name: order_by
description: 'Order the results by the following format: "field_to_order:order_direction", e.g. "title:asc"'
/api/v2/links/{link_id}/notes:
parameters:
- $ref: '#/components/parameters/DefaultAccept'
- schema:
type: integer
name: link_id
description: ID of the link you want to get notes for
in: path
required: true
get:
summary: 'Links: Notes for a Link'
tags:
- Links
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/NotePaginator'
'401':
description: Unauthorized
'404':
description: Not Found
operationId: get-api-v2-links-link_id-notes
description: Get all notes of one specific link.
security:
- api_token: []
parameters:
- $ref: '#/components/parameters/PaginatorAmount'
components:
schemas:
LinkWithoutRelations:
title: 'Model: Link'
type: object
x-examples:
Example Response for DuckDuckGo.com:
id: 85
user_id: 1
url: https://duckduckgo.com
title: DuckDuckGo — Privacy, simplified.
description: The Internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs.
icon: fa fa-link
visibility: 1
status: 1
check_disabled: false
lists: []
tags: []
created_at: '2020-03-09T19:33:23.000000Z'
updated_at: '2020-03-09T19:33:23.000000Z'
deleted_at: null
properties:
id:
type: integer
minimum: 1
example: 84
user_id:
type: integer
example: 1
minimum: 1
url:
type: string
format: uri
example: https://duckduckgo.com
title:
type: string
description:
type:
- string
- 'null'
icon:
type:
- string
- 'null'
pattern: fa fa-link
visibility:
$ref: '#/components/schemas/Visibility'
status:
type: integer
enum:
- 1
- 2
- 3
check_disabled:
type: boolean
created_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
updated_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
deleted_at:
type:
- string
- 'null'
format: date-time
example: '2020-03-09T19:33:23.000000Z'
x-tags:
- model
Tag:
title: 'Model: Tag'
type: object
x-examples:
Example of a Tag:
id: 118
user_id: 1
name: alternative
visibility: 1
created_at: '2019-02-24T20:39:25.000000Z'
updated_at: '2019-02-24T20:39:25.000000Z'
deleted_at: null
properties:
id:
type: integer
user_id:
type: integer
name:
type: string
visibility:
type: integer
enum:
- 1
- 2
- 3
created_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
updated_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
deleted_at:
type:
- string
- 'null'
format: date-time
example: '2020-03-09T19:33:23.000000Z'
x-tags:
- model
List:
title: 'Model: List'
type: object
x-examples:
Example of a List:
id: 3
user_id: 1
name: CSS Frameworks
description: null
visibility: 1
created_at: '2020-01-24T13:13:02.000000Z'
updated_at: '2020-01-24T13:13:02.000000Z'
deleted_at: null
links: https://example.com/api/v2/list/3/links
properties:
id:
type: integer
user_id:
type: integer
name:
type: string
description:
type:
- string
- 'null'
visibility:
$ref: '#/components/schemas/Visibility'
created_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
updated_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
deleted_at:
type:
- string
- 'null'
format: date-time
example: '2020-03-09T19:33:23.000000Z'
links:
type: string
description: Contains the API URL to get the actual links of a list.
x-tags:
- model
ValidationError:
title: 'Model: ValidationError'
type: object
properties:
message:
type: string
example: The given data was invalid.
errors:
type: object
properties:
form_key:
type: array
items:
type: string
uniqueItems: false
x-tags:
- model
LinkPaginator:
title: 'Paginator: Links'
type: object
properties:
total:
type: integer
to:
type: integer
prev_page_url:
type:
- string
- 'null'
per_page:
type: string
path:
type: string
next_page_url:
type:
- string
- 'null'
last_page_url:
type: string
example: http://linkace.localhost/api/v2/links?page=7
last_page:
type: integer
from:
type: integer
first_page_url:
type: string
example: http://linkace.localhost/api/v2/links?page=1
data:
type: array
items:
$ref: '#/components/schemas/LinkWithoutRelations'
current_page:
type: integer
x-tags:
- model
Link:
title: 'Model: Link'
type: object
x-examples:
Example Response for DuckDuckGo.com:
id: 85
user_id: 1
url: https://duckduckgo.com
title: DuckDuckGo — Privacy, simplified.
description: The Internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs.
icon: fa fa-link
visibility: 1
status: 1
check_disabled: false
lists: []
tags: []
created_at: '2020-03-09T19:33:23.000000Z'
updated_at: '2020-03-09T19:33:23.000000Z'
deleted_at: null
properties:
id:
type: integer
minimum: 1
example: 84
user_id:
type: integer
example: 1
minimum: 1
url:
type: string
format: uri
example: https://duckduckgo.com
title:
type: string
description:
type:
- string
- 'null'
icon:
type:
- string
- 'null'
pattern: fa fa-link
visibility:
$ref: '#/components/schemas/Visibility'
status:
type: integer
enum:
- 1
- 2
- 3
check_disabled:
type: boolean
lists:
type: array
items:
$ref: '#/components/schemas/List'
tags:
type: array
items:
$ref: '#/components/schemas/Tag'
created_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
updated_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
deleted_at:
type:
- string
- 'null'
format: date-time
example: '2020-03-09T19:33:23.000000Z'
x-tags:
- model
Visibility:
type: integer
enum:
- 1
- 2
- 3
description: 'Defines the visibility: 1 - public, 2 - internal, 3 - private'
x-tags:
- model
LinkRequest:
title: 'Model: Link Request'
type: object
description: '#### Tag and list referencing
Attention! Tags and lists might be passed in three different ways:
- comma-separated strings (`''List 1,List 2''`),
- arrays containing strings (`[''List 1'', ''List 2'']`) or
- arrays containing Tag / List IDs (`[1,2]`).
In the first two cases tags / lists are created if they don''t exist.'
properties:
url:
type: string
format: uri
example: https://duckduckgo.com
title:
type: string
description:
type: string
lists:
description: Must be either an array of List IDs or List names, or a string with comma-separated List names
oneOf:
- type: string
- type: array
items:
oneOf:
- type: string
- type: integer
tags:
description: Must be either an array of List IDs or List names, or a string with comma-separated List names
oneOf:
- type: string
- type: array
items:
oneOf:
- type: string
- type: integer
visibility:
$ref: '#/components/schemas/Visibility'
check_disabled:
type: boolean
required:
- url
x-tags:
- model
Note:
title: 'Model: Note'
type: object
x-examples:
Example Response for a Note:
id: 85
user_id: 1
link_id: 23
note: Interesting article, may be useful for later research about state machines in Go.
visibility: 1
created_at: '2020-03-09T19:33:23.000000Z'
updated_at: '2020-03-09T19:33:23.000000Z'
deleted_at: null
properties:
id:
type: integer
minimum: 1
example: 84
user_id:
type: integer
example: 1
minimum: 1
link_id:
type: integer
example: 1
minimum: 1
note:
type: string
visibility:
$ref: '#/components/schemas/Visibility'
created_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
updated_at:
type: string
format: date-time
example: '2020-03-09T19:33:23.000000Z'
deleted_at:
type:
- string
- 'null'
format: date-time
example: '2020-03-09T19:33:23.000000Z'
x-tags:
- model
NotePaginator:
title: 'Paginator: Notes'
type: object
properties:
total:
type: integer
to:
type: integer
prev_page_url:
type:
- string
- 'null'
per_page:
type: string
path:
type: string
next_page_url:
type:
- string
- 'null'
last_page_url:
type: string
example: http://linkace.localhost/api/v2/notes?page=7
last_page:
type: integer
from:
type: integer
first_page_url:
type: string
example: http://linkace.localhost/api/v2/notes?page=1
data:
type: array
items:
$ref: '#/components/schemas/Note'
current_page:
type: integer
x-tags:
- model
examples:
LinkRequestWithArrayTags:
value:
url: https://duckduckgo.com
title: DuckDuckGo — Privacy, simplified.
description: The Internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs.
lists:
- List 1
- List 2
tags:
- tag1
- tag2
visibility: 1
check_disabled: false
LinkRequest:
value:
url: https://duckduckgo.com
title: DuckDuckGo — Privacy, simplified.
description: The Internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs.
lists:
- 5
tags:
- 9
- 13
- Search Engines
visibility: 1
check_disabled: false
LinkRequestWithStringTags:
value:
url: https://duckduckgo.com
title: DuckDuckGo — Privacy, simplified.
description: The Internet privacy company that empowers you to seamlessly take control of your personal information online, without any tradeoffs.
lists: List 1,List 2
tags: tag1,tag2,tag3
visibility: 1
check_disabled: false
parameters:
DefaultAccept:
name: accept
description: Default header needed for every request
in: header
required: true
schema:
type: string
default: application/json
PaginatorAmount:
name: per_page
description: Amount of entries to return per page. Use -1 to return all items.
in: query
schema:
type: integer
minimum: -1
x-examples:
100 entries per page:
per_page: 100
all entries on first page:
per_page: -1
OrderDirection:
name: order_dir
description: Order elements in ascending or descending order
in: query
schema:
type: string
enum:
- asc
- desc
securitySchemes:
api_token:
type: http
scheme: bearer
description: API token received from the user settings