Cut the Clutter: Test Ignore Files Feature - sign up to become a beta tester here.

Forum Discussion

Ruslan G.1's avatar
Ruslan G.1
Explorer | Level 4
6 years ago

Terrible experience with Paper API

Hell, 

I am a long time Dropbox paid user and I`ve decided to convert propietary notes to Dropbox Paper documents on my phone.

Unable to find import function I created simple program to do just that.

Here is my experience with it:

  • API slow
  • No way to filter by parent_folder_id when downloading/getting docs
  • No ID of document?!
  • On creating document, API sometimes throws 500 Internal Server Error but still creates doc
  • No declaration of API limits (requests/second)
  • No way to set doc metadata (id, etc, custom)
  • No way to set title but somehow it is automatically generated?
  • Downloading slow, list fetching (pagination) slow
  • After deleting docs from UI they are still available on API

Question

Given the state of API, is Paper is still a PoC project and might go out of production soon or should rely on it being improved in future?

5 Replies

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    6 years ago

    Thanks for the detailed feedback! We appreciate you taking the time to share your experience with the API. I'm sending these specific pieces of feedback and feature requests along to the team.

    To address a few points in particular:

    • "No ID of document?!": I'm not sure I understand what you're referring to. The Paper API does expose IDs for Paper document, e.g., as returned by /2/paper/docs/list.
    • "On creating document, API sometimes throws 500 Internal Server Error but still creates doc": That sounds like a bug on our side. Please share the steps/code to reproduce this and some sample 'X-Dropbox-Request-Id' response header values for this error if you'd like us to investigate.
    • "No declaration of API limits (requests/second)":  The Dropbox API does have a general rate limiting system, but we don't have any specific numbers documented. We prefer API apps to be written to dynamically handle rate limit exceptions instead of hard-coding specific limits. That is, in any case that you get a 429 or 503 the best practice is to retry the request, respecting the Retry-After header if given in the response, or using an exponential back-off, if not.
    • "No way to set title but somehow it is automatically generated?": The Paper doc title is currently taken from the first line of the supplied data.
    • "After deleting docs from UI they are still available on API": Thanks for the note. I can reproduce this and I'll bring it up with the team.

    And in response to your question, I don't have any news to share regarding the Paper API in general. Dropbox will announce any significant changes if/when there is something to share though.

  • Ruslan G.1's avatar
    Ruslan G.1
    Explorer | Level 4
    6 years ago

    Hello Greg, thanks for reply!

    > API sometimes throws 500 Internal Server Error but still creates doc

    Example ID with 500 Internal Server Error.

    "x-dropbox-request-id":["f25fd3b330d2e7c768f53df00be859bf"]

    Example code: https://pastebin.com/i3kEYRfU

    The amount of documents I upload is ~100 and I sometimes get error in the middle of upload, however documents still created.

    > No ID of document

    Yes there is an API but Dropbox.paperDocsDownload() return result PaperDocExportResult which does not contain document ID.

    Is there any way to fetch all metadata of documents without content download? I don`t need a document, just a title and an ID.

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    6 years ago
    • "API sometimes throws 500 Internal Server Error but still creates doc": Thanks! That's helpful. We'll look into it. 
    • "No ID of document": I see, thanks. For that method, the doc ID is a required input parameter, so I imagine it wasn't expected that the output would necessarily need the doc ID, since the client already knew it. So to clarify, is the issue that this makes it harder to track the result, especially when operating on multiple documents in an asynchronous fashion? Let me know if I have that right or not and I'll pass this along as a request with that context.
    • "Is there any way to fetch all metadata of documents without content download?": No unfortunately there isn't a way to request the metadata only, but I'll pass this along as a feature request as well. I can't promise if or when any of these might be implemented though. 
  • Ruslan G.1's avatar
    Ruslan G.1
    Explorer | Level 4
    6 years ago

    Thanks.

    As a resolution there is 2 serious issues I would consider to prioritize.

    1. Deleted documents visible through API. This is a showstopper as it does not give ability to fix import mistakes.

    2. No way to filter documents by a folder when fetching a list of documents. And there is no folder_id in document metadata. Ugh. This makes folders invisible to API (except when creating).

     

  • Greg-DB's avatar
    Greg-DB
    Icon for Dropbox Community Moderator rankDropbox Community Moderator
    6 years ago

    Thanks!

    For the folder information, there is /2/paper/docs/get_folder_info, but that does require one call per Paper doc, so I can see that being inefficient for some use cases. I've sent this along as a feature request for a better solution.

About Dropbox API Support & Feedback

Node avatar for Dropbox API Support & Feedback
Find help with the Dropbox API from other developers.6,039 PostsLatest Activity: 13 hours ago
415 Following

The Dropbox Community team is active from Monday to Friday. We try to respond to you as soon as we can, usually within 2 hours.

If you need more help you can view your support options (expected response time for an email or ticket is 24 hours), or contact us on X or Facebook.

For more info on available support options for your Dropbox plan, see this article.

If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!