Download OpenAPI specification:Download
An API for sharing links. Users can create link boards and invite other users to join them. Links can be posted to boards, users can rate and discover them using queries.
Creates a new board. The creating user will have the "owner" role. A board can have at most 32 users.
name required | string [ 1 .. 100 ] characters |
description | string <= 1000 characters |
{- "name": "Example board",
- "description": "This is a description."
}
{- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "name": "Best board ever",
- "description": "Just a description, nothing to see here.",
- "createdTime": "1665570512173963500,",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "modifiedTime": "1665570512173963500,",
- "modifiedBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "users": [
- {
- "user": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "role": "owner",
- "createdTime": 1665570512173963500,
- "invitedBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "modifiedTime": 1665570512173963500,
- "modifiedBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}
}
], - "invites": [
- {
- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "inviteId": "i-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "role": "owner",
- "user": {
- "userId": "u-3921-5901",
- "name": "Testi Tester"
}, - "createdTime": 1665570512173963500,
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "expiresTime": 1665570512173963500
}
]
}
Returns boards the user making the request is part of. Results are sorted by the time the user joined the board, i.e. newer ones first. Since the number of results might be large, the query can be paginated.
limit | integer Maximum number of results to return |
cursor | integer <int64> Return only boards the user joined at or before the given Unix time (in nanoseconds) |
[- {
- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "name": "Best board ever",
- "description": "Just a description, nothing to see here.",
- "createdTime": "1665570512173963500,",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}
}
]
Returns the board with the given id. The board's users and invites will only be included if the user making the request has an authorized role.
boardId required | string |
{- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "name": "Best board ever",
- "description": "Just a description, nothing to see here.",
- "createdTime": "1665570512173963500,",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "modifiedTime": "1665570512173963500,",
- "modifiedBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "users": [
- {
- "user": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "role": "owner",
- "createdTime": 1665570512173963500,
- "invitedBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "modifiedTime": 1665570512173963500,
- "modifiedBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}
}
], - "invites": [
- {
- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "inviteId": "i-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "role": "owner",
- "user": {
- "userId": "u-3921-5901",
- "name": "Testi Tester"
}, - "createdTime": 1665570512173963500,
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "expiresTime": 1665570512173963500
}
]
}
boardId required | string |
name | string [ 1 .. 100 ] characters |
description | string <= 1000 characters |
{- "name": "string",
- "description": "string"
}
{- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "name": "Best board ever",
- "description": "Just a description, nothing to see here.",
- "createdTime": "1665570512173963500,",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}
}
Creates a new invite for the given board. If a user is provided in the request, only that user will be able to accept the invite, otherwise any user can. Note that an invite cannot be created if the board is full or the invite is for a user that is already part of the board. The number of users and invites per board is limited to 32.
boardId required | string |
role required | string (role) Enum: "owner" "viewer" "editor" |
object (user) |
{- "role": "owner",
- "user": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}
}
{- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "inviteId": "i-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "role": "owner",
- "user": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "createdTime": "1665570512173963452",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "expiresTime": "1665570512173963452"
}
An invite can only be declined by a user if it was created for that user.
boardId required | string |
inviteId required | string |
response required | string Enum: "accept" "decline" |
{- "response": "accept"
}
{- "error": {
- "code": 42,
- "message": "Invalid request"
}
}
Returns invites for the user making the request, sorted by the time the invite was created, i.e. newest invites first. Since the number of results might be large, the query can be paginated.
limit | integer Maximum number of results to return |
cursor | integer <int64> Return only invites created at or before the given Unix time (in nanoseconds) |
[- {
- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "inviteId": "i-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "role": "owner",
- "user": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "createdTime": "1665570512173963452",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "expiresTime": "1665570512173963452"
}
]
Can be used to change the role a user has on the board.
boardId required | string |
userId required | string |
role required | string Enum: "editor" "viewer" |
{- "role": "editor"
}
{- "user": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "role": "owner",
- "createdTime": "1665570512173963452",
- "invitedBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "modifiedTime": "1665570512173963452",
- "modifiedBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}
}
Creates a new link on the given board.
boardId required | string |
title required | string [ 1 .. 100 ] characters |
url required | string must use "https" scheme |
{- "title": "Greatest link ever",
}
{- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "linkId": "l-7765378e-3592-47e6-b89e-fd12a0fdf8d2",
- "title": "The greatest link ever shared",
- "createdTime": "1665570512173963452",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "score": 0,
- "upvotes": 0,
- "downvotes": 0,
- "userRating": -1
}
Query links on the board, results are paginated.
limit | integer Maximum number of results to return |
sort | string Default: "newest" Enum: "newest" "top" Order of results |
cursorScore | integer Return only links with less than or with score |
cursorCreatedTime | integer <int64> Return only links created at or before the given Unix time (in nanoseconds) |
[- {
- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "linkId": "l-7765378e-3592-47e6-b89e-fd12a0fdf8d2",
- "title": "The greatest link ever shared",
- "createdTime": "1665570512173963452",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "score": 0,
- "upvotes": 0,
- "downvotes": 0,
- "userRating": -1
}
]
{- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "linkId": "l-7765378e-3592-47e6-b89e-fd12a0fdf8d2",
- "title": "The greatest link ever shared",
- "createdTime": "1665570512173963452",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "score": 0,
- "upvotes": 0,
- "downvotes": 0,
- "userRating": -1
}
Update/create a link rating. The only valid ratings are -1 (downvote) and 1 (upvote).
boardId required | string |
linkId required | string |
rating required | integer Enum: -1 1 -1 for downvote, 1 for upvote |
{- "rating": -1
}
{- "boardId": "b-55067be9-62a4-4861-8bbe-9e8382dd9751",
- "linkId": "l-7765378e-3592-47e6-b89e-fd12a0fdf8d2",
- "title": "The greatest link ever shared",
- "createdTime": "1665570512173963452",
- "createdBy": {
- "userId": "u-1234-5678",
- "name": "John Doe"
}, - "score": 0,
- "upvotes": 0,
- "downvotes": 0,
- "userRating": -1
}