Proposed API draft, RFC

1186 views
Skip to first unread message

maciej

unread,
Jan 6, 2021, 4:44:33 PM1/6/21
to Pinboard
I'm working on an early version of the new Pinboard API, and would like some feedback! Please take a look at the proposed API structure here and let me know if there's anything missing, or that doesn't fit a need you have.

Please ignore typos, missing arguments, missing examples, etc. There will be another chance to comment on the finer details once the rough outline of the API is in place.

I'll also have separate request of comments about authentication, caching, API keys, HTTP headers, rate limits, and all the other mechanics around API use. For now, I just want to get the calls roughly right.

I look forward to your ideas and input!


Maciej

Maksim Lin

unread,
Jan 6, 2021, 8:43:47 PM1/6/21
to Pinboard
Thanks Maciej, this looks great!

As I've mentioned previously, I'm writing a Flutter Desktop (and maybe mobile) client for keeping notes but where I want to also combine in management of pinboard bookmarks too, so super happy with the proposed new API functionality for note!

Reading the notes section of the new API, it looks great and exactly what I need for my application.

One small piece of feedback I have at this stage is for the `GET /notes/id/` end point - would it possible to add a property to the json `use_markdown` to match the property in the PUT/POST end points?

On the bookmarks side, on a quick read it looks great too, especially the new `GET /delta/` end-point would be really useful for me as I intend to have my client keep a local cache of all the users data for offline access. I noticed though its only for bookmarks - would it be possible to have this end-point available for notes too?

Btw the final end point is my favourite, though I had to look up the definition of approbation.

Finally would you have plans to create a dev/test (or even prod :-) ) server for this new api version initially? as I think it would help to spot any more subtle issues that may crop up while implementing support for it on clients. 

thanks again,
Maks.

Matthew Johnson

unread,
Jan 6, 2021, 9:01:12 PM1/6/21
to Maciej via Pinboard
Very Cool.   Do you have the ERD to compare against? Or maybe that is too much information. 
--
You received this message because you are subscribed to the Google Groups "Pinboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pinboard-dev...@googlegroups.com.

maciej

unread,
Jan 6, 2021, 10:40:15 PM1/6/21
to Pinboard
I have no idea what an ERD is and suspect I don't want to learn.

nei...@aol.com

unread,
Jan 7, 2021, 4:20:57 AM1/7/21
to pinboa...@googlegroups.com, mcegl...@gmail.com
What about the delicious bookmarks? Still nothing.


Dimitris Saltabassis

unread,
Jan 7, 2021, 8:09:34 AM1/7/21
to Pinboard
Apologies in advance if this is irrelevant. 

Not being (that) technical, I'd only use the API through someone else's implementation. The functionality I'd like is to be able to post to Wordpress automatically when I pin a link (or, hopefully, a selected excerpt). 

Pinboard Tour mentions:

Feeds, Badges, and Widgets
Pinboard provides RSS feeds for every bookmark page. Look for the orange 'RSS" link at the top of the page, or the RSS icon in your browser address bar.
Feeds for pages with private content have a secret token in the URL, to safeguard your privacy.
These secret URLs let you use your feeds in aggregators like Google Reader that do not support RSS authentication.
Pinboard also offers javascript badges for use in your blog template, along with a WordPress plugin.

But plugin link is dead.

Also noticed this Wordpress plugin, but have no experience with it. Anybody who has used it and cares to offer some feedback?

Hope above is of some relevance.
Best of luck with your renewed efforts, Maciej. I hope Pinboard remains relevant for years to come.



Kaliatech

unread,
Jan 7, 2021, 8:24:30 AM1/7/21
to Pinboard
Minor question for clarification:  Is the since argument of GET /delta/ inclusive or exclusive? Said another way, would GET /delta?since=XXXXXXXX` response include a bookmark with a timestamp of XXXXXXX? That detail would be useful to know for API users that want to get a delta using the timestamp of the most recent bookmark received previously.

Though perhaps more work than is worthwhile, the GET /delta/ endpoint could also support paging (count/offsets).  Without that, perhaps should indicate in these docs how many bookmark IDs can be returned in that call before erroring with " too many changes". 

I'm glad you did not rate limit POST /awesome/.

maciej

unread,
Jan 7, 2021, 11:09:35 AM1/7/21
to Pinboard
The delicious bookmarks are safe and sound and happily frolicking on a farm upstate. 

Maggie Park

unread,
Jan 7, 2021, 11:44:55 AM1/7/21
to pinboa...@googlegroups.com
I don't know if this is the right time/place to ask this, but is there an upper limit on the number of tags that can be renamed in one go? I use a python script to do batch renaming, and it uses a 1:1 old:new system that seems to match what your API requires - I don't quite understand the part about up to 3 comma delimited tags, is that saying you can use the API to rename 3 different tags to 1 new tag all at the same time?

Similarly, I'm confused about the limit on deleting tags - it says you can only delete 10 at a time. I know that's not the case when I do it directly on the website; is there a reason for that API limitation?

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers


Maggie Park

unread,
Jan 7, 2021, 11:44:59 AM1/7/21
to pinboa...@googlegroups.com
Also, something that I don't see as a functionality but that would be super cool is if you can get not only a list of tags and how many times they're used, but also how many and what bundles they belong to.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers

Maggie Park

unread,
Jan 7, 2021, 11:45:01 AM1/7/21
to pinboa...@googlegroups.com
It would also be nice to be able to rename tag bundles and reorder them. (Full disclosure - I am a fandom power-user and so my use of the site is very different from most use cases, I think.)

If there's a hard cap on the number of tags and/or bundles, it would be useful to have that information readily available and/or have a method of requesting a check on how many you have remaining - I broke the entire mass tag and bundling edit functions on the site a while back by having too many tags, and I'm still not sure what threshold it is that I crossed, only that after I deleted 1-2k of them the functionality was restored.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers

Charlie Lindahl

unread,
Jan 7, 2021, 1:50:07 PM1/7/21
to Pinboard
Could you please also post an example of how to "auth" (login) to be able to use the API?

I've joined this group and hope to participate more in 2021 ...

Thanks,
Charlie

Kristof Adriaenssens

unread,
Jan 7, 2021, 2:49:00 PM1/7/21
to pinboa...@googlegroups.com
Thanks Maciej. Looks good.

Good to see that getting bookmarks with a filter that supports the 'to read' status is included.
Also good to see support for tab sets but the documentation only indicates support for retrieving tab sets not saving?

I also expect and hope that the v1 api will keep on being supported for a while after v2 is available so we have some time to migrate?

Thanks,
Kristof

Op wo 6 jan. 2021 om 22:44 schreef maciej <mcegl...@gmail.com>:
--

nei...@aol.com

unread,
Jan 7, 2021, 6:01:26 PM1/7/21
to mcegl...@gmail.com, pinboa...@googlegroups.com
So- despite all the promises, they are gone. Why tell me that you were going to renew the site 'later in the summer' if you were not?
Thanks a lot


Christoph Zwerschke

unread,
Jan 7, 2021, 11:15:25 PM1/7/21
to pinboa...@googlegroups.com
Hi Maciej,

good to see some fresh activity here.

Same question as the other Kristof: How long will the old API be
supported? Asking as author of the Pinboard-Pin add-on for Firefox. I
currently don't have enough time to adapt the addon to the new API.

Also, the old API had a method to get suggested tags for a given url. I
don't see anything similar in the new API. This is an extremely
important method for my add-on.

-- Christoph
> Maciej

David E

unread,
Jan 7, 2021, 11:15:34 PM1/7/21
to Pinboard
When using /tags/rename, is renaming to the value of a pre-existing tag safe? Are tags a whole other entity that are many-to-many joined to Bookmark, and thus a rename has to worry about creating duplicate records in some Tag table?

Richard Hsu

unread,
Jan 7, 2021, 11:15:47 PM1/7/21
to pinboa...@googlegroups.com
#1 POST /auth/
Not GET /auth ?

#2 Many of them have both POST and PUT?
Just have POST? 
Keep it simple for us and you? (imagine all the discussions in the next 50 years where someone says POST, another say PUT, or POST/PUT, or PUT/POST)

Or, have PUT for idempotent changes, and POST for the rest?

e.g.
PUT /bookmarks/id

--

Christoph Zwerschke

unread,
Jan 8, 2021, 2:13:11 AM1/8/21
to pinboa...@googlegroups.com
Hi Maciej,

good to see some fresh activity here.

Same question as the other Kristof: How long will the old API be
supported? Asking as author of the Pinboard-Pin add-on for Firefox. I
currently don't have enough time to adapt the addon to the new API.

Also, the old API had a method to get suggested tags for a given url. I
don't see anything similar in the new API. This is an extremely
important method for my add-on.

-- Christoph


On 06.01.2021 22:44, maciej wrote:
> Maciej

Dimitris Saltabassis

unread,
Jan 8, 2021, 5:31:44 AM1/8/21
to Pinboard
> a method to get suggested tags for a given url

Further to that, would it be possible to implement tag suggestions/tag recommendations based on tag? Meaning: When a tag is added, Pinboard suggests other tags I have used in conjunction with that tag. Perhaps also (enabled only by a preference setting) related tags from other users.

Shrayas rajagopal

unread,
Jan 8, 2021, 6:54:17 AM1/8/21
to pinboa...@googlegroups.com
Hi Maciej,

On Fri, Jan 8, 2021 at 9:45 AM Christoph Zwerschke <ci...@online.de> wrote:
>
> Same question as the other Kristof: How long will the old API be
> supported? Asking as author of the Pinboard-Pin add-on for Firefox. I
> currently don't have enough time to adapt the addon to the new API.

Same question. I made and maintain the pinboard.net library so would
like some time to analyze and port

Regards,
Shrayas

clvrobj

unread,
Jan 8, 2021, 11:00:06 PM1/8/21
to Pinboard
Hi Maciej,

Thanks for working on the new API!

Good to see the notes get more supports in the new API. 

Any support on getting the user's specific bookmark by given URL which "/v1/posts/get" supported? I assume this could be done by using the new v2 API "/search/user/", but not sure if it is the case.
Also, the same question as Christoph asked about the method to get suggested tags for a given URL which is supported in "/v1/posts/suggest".

Thanks,
Chi

nei...@aol.com

unread,
Jan 9, 2021, 8:23:37 AM1/9/21
to clv...@gmail.com, pinboa...@googlegroups.com
Ideas and input:
Restore the delicious bookmarks, as you have promised to do, several times.


--
You received this message because you are subscribed to the Google Groups "Pinboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pinboard-dev...@googlegroups.com.
To view this discussion on the web visit

Craig Carl

unread,
Jan 9, 2021, 2:08:33 PM1/9/21
to Pinboard
I’d love to have a way to download the actual archive of a page, my Pinboard backups aren’t complete without them. Something like `GET /bookmarks/id/archive`, it would return a WARC file. I’d expect this call would be heavily rate limited. 

Craig

t.h...@gmail.com

unread,
Jan 9, 2021, 2:09:08 PM1/9/21
to Pinboard
Hi, this looks great, but I'm missing some metadata on when bookmarks are actually marked read. I use the unread feature a lot, and would like to know when I actually read a given bookmark. The `updated` field isn't necessarily accurate for this, as updating any other field would also update it. A nullable datetime field like `read_at` instead of the boolean `unread` would be sufficient.

Thanks!

maciej

unread,
Jan 9, 2021, 2:12:36 PM1/9/21
to Pinboard
Thanks Maks! 

1. I'm not sure if I understand what the behavior of a "use_markdown" parameter in the GET call would be. Is the idea that it would return a note already formatted on the server side, instead of raw markdown?

2. I'm happy to provide a notes/delta endpoint with the same semantics as the bookmarks one.

3. As far as putting up a test version of the API first, I think that's a great idea and will do that.

M

maciej

unread,
Jan 9, 2021, 2:15:43 PM1/9/21
to Pinboard
The GET argument for delta would have the same semantics as the corresponding MySQL query, which I will have to look up. I *believe* that is inclusive but welcome corrections. 

I've left the max size of the 'delta'  call ambiguous while I figure out the load it will impose, particularly on large accounts. I don't think I can do pagination/offset without a huge redesign of the way bookmarks are stored, but my aim is to make the delta call as useful as possible before clients have to fall back on retrieving all posts.

maciej

unread,
Jan 9, 2021, 2:19:34 PM1/9/21
to Pinboard
This is the right place to ask!

The 3 tag limit means that you can consolidate up to three tags into one in one API call ("bear", "cat", "coyote" => "mammal"). 

The limits on tag renaming and delete reflect the fact that this is an expensive operation (it has to touch all bookmarks affected, which can be an issue for humungous accounts). People tend to do crazy stuff through the API that they would never attempt through the site (like massive batch operations) so  I prefer to put stricter limits in place and then relax them as appropriate if there's room, rather than go in the other direction.

maciej

unread,
Jan 9, 2021, 2:20:34 PM1/9/21
to Pinboard
The GET /bundles/ call should return a full list of all tags in bundles. Is it too troublesome to have two separate API calls for this?

maciej

unread,
Jan 9, 2021, 2:22:53 PM1/9/21
to Pinboard
Hey Christoph,

My aim is not to sunset the old API so much as to offer a higher-performance one that reflects the design of Pinboard, rather than 2009-era Delicious. So I can commit to keeping V1 alive at least until 2022, and I'll check with developers before I deprecate it.  Is that a sufficient guarantee for your needs?

The suggested tags is an accidental omission; I'll go fix it! The intent is to have V2 be a strict superset of the functionality in V1. Please let me know if I forgot anything else.

maciej

unread,
Jan 9, 2021, 2:32:07 PM1/9/21
to Pinboard
Thanks for posting!

I made an early design decision that Pinboard wouldn't auto-post to outside sites, mostly to keep the complexity of the service down. But now that I see pricing for things like IFTTT and Zapier getting astronomical, I might revisit it. I know a lot of people want to auto-tweet or post to Wordpress when they bookmark something. I don't understand those people :-) but I know they exist!

Dan Dascalescu

unread,
Jan 9, 2021, 9:22:05 PM1/9/21
to pinboa...@googlegroups.com
On Sat, Jan 9, 2021 at 9:32 AM maciej <mcegl...@gmail.com> wrote:
I know a lot of people want to auto-tweet or post to Wordpress when they bookmark something. I don't understand those people :-) but I know they exist!

I can see how this would be a useful form of microblogging. For example, I do in-depth research on a topic and spend several days mostly bookmarking my findings, with detailed descriptions (example - https://pinboard.in/search/u:dandv/?query=keto). It'd be valuable to share those bookmarks with the wider world.

Christoph Zwerschke

unread,
Jan 10, 2021, 12:50:13 PM1/10/21
to pinboa...@googlegroups.com
Thanks, that should be sufficient time for me to make the changes, when
v2 will be a full superset of v1.

Btw, I found the following note that I made regarding the suggested
tags. It looked to me as if there was some mix-up in v1. If you can
confirm, this should be fixed in v2:

"The Pinboard API seems to have the 'popular' and 'recommended'
categories interchanged in the 'suggest' method for tags.
'Popular' are actually those taken from our own tags, contrary to what
the Pinboard API v1 docs say."

-- Christoph

Maksim Lin

unread,
Jan 10, 2021, 12:50:19 PM1/10/21
to pinboa...@googlegroups.com
Hi Maciej,

On Sun, Jan 10, 2021 at 6:12 AM maciej <mcegl...@gmail.com> wrote:
>
> Thanks Maks!
>
> 1. I'm not sure if I understand what the behavior of a "use_markdown" parameter in the GET call would be. Is the idea that it would return a note already formatted on the server side, instead of raw markdown?

Ah sorry about that not being more clear.
What I had in mind was just to still have the API GET return the raw
markdown text, but to have "use_markdown" parameter as a flag to help
the client app know if it should try treat the note as markdown or
plain text. I guess the app could just treat everything as markdown
but I wanted to have the distinction in my app for users who just
wanted to use plain text and the app be smart then about not trying to
show markdown formatting UI, not try to do auto-complete for things
like markdown list items etc.

> 2. I'm happy to provide a notes/delta endpoint with the same semantics as the bookmarks one.
>
> 3. As far as putting up a test version of the API first, I think that's a great idea and will do that.
>
> M

Thanks again for working on this! very excited to start using the new
API once its ready.

Maks.

maciej

unread,
Jan 10, 2021, 10:48:12 PM1/10/21
to Pinboard
Thanks for pointing out the discrepancy in the recommended/suggest semantics. I'll leave the behavior as-is in V1 (in order not to break anything) but make sure it matches the docs in V2.

nei...@aol.com

unread,
Jan 11, 2021, 5:57:27 AM1/11/21
to mcegl...@gmail.com, pinboa...@googlegroups.com
I'd like to point out the discrepancy between your words and actions. Despite your repeated promises, it seems I have now lost all of my bookmarks.


-----Original Message-----
From: maciej <mcegl...@gmail.com>
To: Pinboard <pinboa...@googlegroups.com>
--
You received this message because you are subscribed to the Google Groups "Pinboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pinboard-dev...@googlegroups.com.
To view this discussion on the web visit

Maggie Park

unread,
Jan 11, 2021, 11:59:24 AM1/11/21
to pinboa...@googlegroups.com
Oh, that definitely makes sense! and I am almost certainly the kind of person who you want those stricter controls in place for.  (to illustrate my point, I currently have 6690 tags and 105 tag bundles.) I just really appreciate having them defined somewhere so I don't run into them by accident. XD

So my main questions here remain:
  1. Is there a maximum number of tags?
  2. A maximum number of tag bundles? (
  3. Is there a rate limit on the number of 1:1 tag renames you can do in one API call? (I try to only do 100 at a time because I've noticed failures at higher numbers but it'd be nice to have an actual number.)

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers

Maggie Park

unread,
Jan 11, 2021, 11:59:41 AM1/11/21
to pinboa...@googlegroups.com
If it helps, the reason I cross-post (and only cross-post specific tags) is that I also run a tumblr blog that recs fics. By cross-posting using IFTTT, I can queue up rec posts and schedule them to go out in tidy intervals instead of huge bursts, providing a steady stream of new content for my followers.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers

Maggie Park

unread,
Jan 11, 2021, 11:59:50 AM1/11/21
to pinboa...@googlegroups.com
That's a slightly different set of information, but this isn't really a needed piece of functionality so much as it is something I thought would be cool - I do a lot of tag bundle management and one thing I love (being able to filter out already bundled tags) sometimes backfires on me when I've got tags that belong in multiple bundles and no clear indication of which bundles I've already added them to without checking each individual bundle. As I've said, though, I'm a pretty fringe use-case, even in fandom.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers

Maksim Lin

unread,
Jan 11, 2021, 12:00:01 PM1/11/21
to pinboa...@googlegroups.com
Hi Maciej,

Sorry I completely forgot to ask about tags for notes!

In the existing website page for adding a note there's a textfield to
add tags to the note, would it please be possible to have
adding/editing tags on a note in the new v2 API too?

Thanks again,
Maks.
----
Maksim Lin
Freelance Android & Flutter Developer
GDG and Flutter Melbourne Co-Organiser, Flutter GDE
www.manichord.com


On Sun, Jan 10, 2021 at 6:12 AM maciej <mcegl...@gmail.com> wrote:
>
> --
> You received this message because you are subscribed to the Google Groups "Pinboard" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to pinboard-dev...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/pinboard-dev/616ab12b-58c1-4768-bef3-d4ccf3635338n%40googlegroups.com.

maciej

unread,
Jan 11, 2021, 12:10:16 PM1/11/21
to Pinboard
I'm going to ask you nicely, one time, to stop spamming this list and making scary accusations to my customers. 

The free service (delicious) that you used for a decade while it was resold progressively down the food chain isn't available right now for you to finally export your data. You had a decade in which to do it. 

Pinboard users pay for this service, and yet they've never shown a fraction of the aggrieved entitlement that I get routinely from delicious users, for the crime of buying the site before it got handed off to some spammer.  I'm a solo developer, and my efforts have to go to earning my livelihood before I do free work on my own time to bring you back your free website. Enough. 

maciej

unread,
Jan 11, 2021, 2:36:17 PM1/11/21
to Pinboard
On the question of renaming tags, tags are not first-class entities in Pinboard; they are attributes of bookmarks. A tag that is not assigned to any bookmark ceases to exist. So you can rename to your heart's content without worrying whether the target tag exists or not.

maciej

unread,
Jan 11, 2021, 2:37:26 PM1/11/21
to Pinboard
I'm making /auth/ a POST operation to keep passwords out of log files.  

As far as POST and PUT go, I confuse the two all the time, so I am just going to accept both and put the burden of remembering the correct usage on the developer side.

nei...@aol.com

unread,
Jan 11, 2021, 5:20:01 PM1/11/21
to mcegl...@gmail.com, pinboa...@googlegroups.com
Yes. But you said, in no uncertain terms, that the delicious bookmarks were safe. Several times. And at no time do I remember any message telling me that it was about to be shut down and that I should transfer everything.
And have I EVER made any scary, or otherwise accusations to your customers, or indeed to anyone.


Shrayas rajagopal

unread,
Jan 15, 2021, 5:28:59 AM1/15/21
to pinboa...@googlegroups.com
On Sun, Jan 10, 2021 at 12:52 AM maciej <mcegl...@gmail.com> wrote:

> My aim is not to sunset the old API so much as to offer a higher-performance one that reflects the design of Pinboard, rather than 2009-era Delicious. So I can commit to keeping V1 alive at least until 2022, and I'll check with developers before I deprecate it. Is that a sufficient guarantee for your needs?

This answers my question too, Maciej. Thanks.

Anh Quang Do

unread,
Jan 28, 2021, 5:54:33 PM1/28/21
to pinboa...@googlegroups.com
Glad to see the new API draft. 

Few comments as I’m working on an app that basically stores a local copy of every single bookmark:
  1. The ability to get all bookmarks seems to be gone. Max count in /bookmarks is 1000. Is this intentional? I see a lot of users have dozens of thousands of bookmarks and it’d be a pain to retrieve them all. It’d be nice if you can add an endpoint to do this - heavily rate limiting it is fine.
  2. I need a way to differentiate between manually created vs. imported bookmarks (the “via:twitter” ones). Can another attribute be added to the /bookmarks response?
    1. As I’m interested in retrieving everything, this is different from filtering imported ones (like the “filter” boolean you have in /network/bookmarks)
  3. Seems to be no way to star/unstar a bookmark
Thanks for working on this!

--
You received this message because you are subscribed to a topic in the Google Groups "Pinboard" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/pinboard-dev/a5aQscw4uVE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to pinboard-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pinboard-dev/CAEkH89OWkF1Mu86GrZMKDw%3DA2J6pmQx-XXo_U3nwHYGXg15wig%40mail.gmail.com.

shamelessly mkp

unread,
Feb 1, 2021, 11:13:05 AM2/1/21
to pinboa...@googlegroups.com
Hi, Maciej! 

Did you recently update the current API? I'm asking because my IFTTT connection to Pinboard has gone down and I can't seem to reconnect using my API token. I use IFTTT on an ongoing basis to automate the microblogging of fic recs, and really rely on that functionality.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers

You received this message because you are subscribed to the Google Groups "Pinboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pinboard-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/pinboard-dev/34d59496-7d32-4175-a109-7fa4b535a1f0%40Spark.

Maggie Park

unread,
Feb 1, 2021, 11:13:18 AM2/1/21
to pinboa...@googlegroups.com
I was wondering if it would be possible to implement an API method for renaming bookmarks as well as tags - presumably this would need to be rate limited in some way, if I'm understanding correctly, but I know I for one would find the ability incredibly helpful in terms of keeping my bookmarks organized, as I attempt to keep to a standardized naming convention and have difficulty doing so on the front end when originally bookmarking a URL; I can rename the title of the bookmark through the site interface, of course, but it's a rather slow process fixing them one by one and would be way easier to do using excel and python.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers

--
You received this message because you are subscribed to the Google Groups "Pinboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pinboard-dev...@googlegroups.com.

maciej

unread,
Feb 1, 2021, 11:16:24 AM2/1/21
to Pinboard
Hi mkp (and everyone else!),

I have temporarily blocked IFTTT since requests from that site were in danger of taking the API down for everyone. Some of you may have noticed this weekend that there were lots of API errors and timeouts. As soon as I can bring it up safely, I will do so. 

I don't know if this is some change in IFTTT's use of the API, or if they simply crossed some threshold of use. It looks like they are making expensive calls to posts/all, which can be replaced by cheaper calls to posts/recent, so I will try to add some code that makes this change on the server side.

M

shamelessly mkp

unread,
Feb 1, 2021, 11:26:21 AM2/1/21
to pinboa...@googlegroups.com
ah OK! That makes sense. If it helps at all, looking at my activity feed it seems like it's polling for any new posts with x tag once every 4-5 minutes, which seems a little excessive to me but there doesn't seem to be an option to increase the polling interval. I wouldn't be surprised if they've decreased to that polling interval for pro users from a previous larger interval (one presumably still used by free accounts) - they've been really pushing for the paid subscriptions.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers


David Jae

unread,
Feb 11, 2021, 4:06:27 PM2/11/21
to Pinboard
The revamped API looks really great so far. Thanks for sharing the proposal with the group.

Just a few suggestions:

1. For the GET /bookmarks/ command "filter" argument, can "read" (as opposed to "unread" ) be added as an allowed value. As an example use case, I often find myself searching for a bookmark of something I know that I read at some point (and marked as such). A filter for "read" bookmarks which could be used in conjunction with tags and a specific date range could help narrow down the search.

2. In the example output for the GET /bookmarks/ command, there is no key that marks the "toread: boolean" status.

3. Would it be possible to add a GET /random/ command, much like what "http://pinboard.in/random/" does but with arguments to narrow down the pool of bookmarks the random item is drawn from. For instance, this would allow one to get a random unread bookmark with a certain tag and specific date range, or perhaps a random read bookmark between 4 and 5 years ago.

Again, thanks for all the work you've done with this so far. Really looking forward to seeing it in action!

David

mkp

unread,
Feb 20, 2021, 5:39:59 PM2/20/21
to pinboa...@googlegroups.com
The more I think about it, the more I think this functionality would be useful, particularly if it ever ended up getting coded into the gui of the site, although I imagine that'd be far more complicated. The difference between this function and say, the current GET /bundles/name/ call is that GET /bundles/(bundle_name)/ would give me a list of all tags in a specific bundle - 1 bundle : multiple tags - when what I want is to be able to query for 1 tag : multiple bundles and ideally for a list of all tags as a .csv or something of tag1, bundle_a, bundle_b,  bundle_c; tag2, bundle_d, bundle_e etc. using something like GET /tags/bundles/. Relatedly, it would be helpful to be able to assign tags to multiple bundles at one time using an api call like POST /tags/bundles with a comma delimited list of bundle names. Or even just to have the ability to assign a bundle to a tag as well as assigning a tag to a bundle - both of these actions have the same end result (bundle now contains tag), but the data is input entirely differently. Since for most users the numbers of tags will vastly outnumber the bundles, it's easier to go tag by tag and identify the names of all the bundles you want to associate with them than it is to go bundle by bundle and identify all the tags you want to fall under that umbrella.

again, disclaimer: I come from fandom and am quite possibly a fringe use-case.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers

On Mon, Jan 11, 2021 at 9:08 AM
That's a slightly different set of information, but this isn't really a needed piece of functionality so much as it is something I thought would be cool - I do a lot of tag bundle management and one thing I love (being able to filter out already bundled tags) sometimes backfires on me when I've got tags that belong in multiple bundles and no clear indication of which bundles I've already added them to without checking each individual bundle. As I've said, though, I'm a pretty fringe use-case, even in fandom.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers


On Sat, Jan 9, 2021 at 2:20 PM maciej <mcegl...@gmail.com> wrote:
The GET /bundles/ call should return a full list of all tags in bundles. Is it too troublesome to have two separate API calls for this?

On Thursday, January 7, 2021 at 9:44:59 AM UTC-7
Also, something that I don't see as a functionality but that would be super cool is if you can get not only a list of tags and how many times they're used, but also how many and what bundles they belong to.

--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers


On Thu, Jan 7, 2021 at 11:22 AM
I don't know if this is the right time/place to ask this, but is there an upper limit on the number of tags that can be renamed in one go? I use a python script to do batch renaming, and it uses a 1:1 old:new system that seems to match what your API requires - I don't quite understand the part about up to 3 comma delimited tags, is that saying you can use the API to rename 3 different tags to 1 new tag all at the same time?

mkp

unread,
Feb 21, 2021, 4:40:57 PM2/21/21
to mkp, pinboa...@googlegroups.com
Another function that would be really awesome but possibly difficult to code would be something that lets us 'split' an existing tag xy into two tags (x, y) or to add a specific tag x to all bookmarks in a specific bundle bundle_xy (or alternatively to all bookmarks also tagged y).

Trent Shell

unread,
Mar 26, 2021, 6:48:13 PM3/26/21
to Pinboard
I'm fairly new to API design, so this may be a dumb question: is there a reason that you'd want to POST /bookmarks/id/ to update a bookmark instead of using the PATCH method?

Anh

unread,
Jun 26, 2021, 12:14:51 PM6/26/21
to Pinboard
API feature request: An endpoint to update bookmarks (e.g. apply tags, toggle unread). I’m looking for a way to replicate Edit view on mobile/desktop and this would be very helpful. 

Thanks!

shamelessly mkp

unread,
Nov 18, 2021, 1:22:16 PM11/18/21
to pinboa...@googlegroups.com
Hi again, Macej!

I have a few questions about some tag limitations I've run into over time -
  1. On the website and in any bookmarklet, there seems to be a character limit of how many tags can be displayed, and that character limit doesn't care if it's in the middle of a tag; it changes the link to the (non-existent) tag created by the truncated text. The tags are still fully associated with the bookmark and if I go to the tag manually, the bookmark will show up there, but the bookmark still won't display the full text of the truncated tag or any of the text of the following tags. I originally assumed the character limitation was on purpose, but since all of the tags are still assigned, I'm not sure why the display would be limited. Is there a reason for this?
  2. As far as I can tell, bookmarks starting with a triple special character such as ::: can't be edited via api call, although they can be created (note: this might be limited to colons; after I realized I couldn't edit them via python script I didn't use any triple special characters as tag prefixes). Is this something that might be addressed in the new API?
  3. Would you ever consider implementing a tag merge functionality? i.e., the ability to take several tags at once and rename them all as a single new tag
thanks again for all you do!
--
mkp
tumblr: shamelesslymkp | pinboard: shamelessly_mkp
*she/her/hers


--
You received this message because you are subscribed to the Google Groups "Pinboard" group.
To unsubscribe from this group and stop receiving emails from it, send an email to pinboard-dev...@googlegroups.com.

Maksim Lin

unread,
Feb 23, 2022, 10:37:47 PMFeb 23
to Pinboard
Hi Maciej,

It's been a while so wanted to ask about the new API again: is there any news on when a test server for it might be available?

Thanks,
Maksim.
Reply all
Reply to author
Forward
0 new messages