Multi-language support in the API coming soon, any questions, ideas or requests?

80 views
Skip to first unread message

Corey Losenegger

unread,
May 24, 2012, 4:49:47 PM5/24/12
to etsy-...@googlegroups.com

Hi all, 

My name is Corey and I’m a current Etsy engineer and former Etsy API app developer. I wanted to give you a heads up that on the heels of launching Etsy in French and German we’re planning on opening up access to this platform via our public API. 

Besides letting you all know that translation editing/viewing is coming in the near future, I also wanted to ask if there’s any specific data/functionality you’d like access to in relation to our listing translations.

We’re looking forward to seeing what our developer community does with this new section of our API! 

Thanks,
Corey

Graeme Grant

unread,
May 24, 2012, 7:04:44 PM5/24/12
to etsy-...@googlegroups.com
Hi Corey,

Are you able to give us more information about the new Translation API so that we can better understand and ask informed questions?

Thanks,

G.


Date: Thu, 24 May 2012 13:49:47 -0700
From: close...@etsy.com
To: etsy-...@googlegroups.com
Subject: Multi-language support in the API coming soon, any questions, ideas or requests?
--
You received this message because you are subscribed to the Google Groups "Etsy API V2" group.
To view this discussion on the web visit https://groups.google.com/d/msg/etsy-api-v2/-/ab_63kerbdYJ.
To post to this group, send email to etsy-...@googlegroups.com.
To unsubscribe from this group, send email to etsy-api-v2...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/etsy-api-v2?hl=en.

Lacy Rhoades

unread,
May 24, 2012, 8:14:15 PM5/24/12
to etsy-...@googlegroups.com
Graeme;

Currently our API provides functionality like the following.

Action: GET /listings/12345
Result: JSON encoded data about the listing 12345 (in English)


Our forthcoming API release should bring the advent of a language* parameter.

Action: GET /listings/12345?language=de
Result: JSON encoded data about listing 12345 (with Title, Description and Tags in German, provided the seller has created German translations for listing 12345) **

Action: GET /listings/12345?language=en-US
Result: JSON encoded data about listing 12345 (with Title, Description and Tags in English, provided English content exists)


That said, we don't want you to be limited by our plans in your feedback. Please let us know how you WOULD LIKE to see the forthcoming features to be designed. After all, these features are for you to use. :)

Look forward to hearing back from you..
Lacy


* Language codes should conform to the IETF standard. http://en.wikipedia.org/wiki/IETF_language_tag

** The actual pecking order for determining which language is given back from the API is a concept we call "bleedthrough". If content in one language doesn't exist, other languages should "bleed through". The bleedthrough logic is as follows:
  1. Return the content in the language the user asked for.
  2. If that content is not available, return English content.
  3. If English is also not available, return the content in the "Primary Language" of the seller account who created the content. (All shops have a Primary Language setting, and it doesn't have to be English.)

Graeme Grant

unread,
May 24, 2012, 8:56:44 PM5/24/12
to etsy-...@googlegroups.com
Hi Lacy,

Thanks for the quick response.

I have not used or been exposed to Etsy's Multi-language support. 

So you are saying that the international language support is based on the user entering the translation of their Listing data for each of the Multi-languages supported? It is totally manual?

It is good to see the public access to this data however our tools are designed to update the data. For this we will require private access to create/update. This is what our users are requesting - how far away is this from the API? This is a priority for us.

We can request up to 100 records at a time and each resource type can have a Sub-Resource & a Sub-Resource Child. With regards to the "IETF standard", how are we as developers supposed to identify if the data returned is not in the language requested?  Will each Resource have a new "language"/"culture" field type in all levels of the returned data structure?

Thanks,

G.


Date: Thu, 24 May 2012 17:14:15 -0700
From: la...@etsy.com
To: etsy-...@googlegroups.com
Subject: Re: Multi-language support in the API coming soon, any questions, ideas or requests?
--
You received this message because you are subscribed to the Google Groups "Etsy API V2" group.
To view this discussion on the web visit https://groups.google.com/d/msg/etsy-api-v2/-/KaWLXG2_cGwJ.

Lacy Rhoades

unread,
May 25, 2012, 3:29:59 PM5/25/12
to etsy-...@googlegroups.com
1) Welcome to the exciting world of multilanguage data at Etsy! I'm glad you're interested in learning more. :)

2) Multi-language support for user-generated content is totally manual, yes. Translations derived from machine translation services (Google Translate, etc.) would be much too crude for the unique goods of Etsy Sellers. Sellers must first opt-in to having multiple language listings, and then also they must translate their listings themselves. (I hope language support in the API can eventually assist sellers in overcoming this somewhat cumbersome burden.)

3) This forthcoming release will be for read-only access to the multi-language data we're talking about. Subsequent releases will open the doors for creating and updating this data via the API.

4) Answering the question of "what language is this data?" is answered in two parts.
  a) We will provide an endpoint to answer "what languages does Etsy support?" Any resources we provide (like our Category names for example) are guaranteed to be returned in the language you asked for, so long as that language is one we support in the Listing process. Currently this would be English, French and German.
  b) We will also provide an endpoint for "what languages does this individual Seller support?" That list will show what languages the Seller has signed up to support. The Seller's diligence and the quality of that translated data cannot be guaranteed as it is controlled by the Seller himself.

Lacy

Graeme Grant

unread,
May 25, 2012, 7:45:45 PM5/25/12
to etsy-...@googlegroups.com
Thanks for the detailed response.

It is a shame that private support will be delayed. Do you have a roadmap or timeline?

It good that there is a global seller language endpoint however resources return by the API are complex structures and not simple. From an editing perspective we need to be able to identify at a resource level. Therefore it would be good if the resources identify the language / culture returned.

G.

Sent from my Windows Phone

From: Lacy Rhoades
Sent: 26/05/2012 5:30 AM

To: etsy-...@googlegroups.com
Subject: Re: Multi-language support in the API coming soon, any questions, ideas or requests?

--
You received this message because you are subscribed to the Google Groups "Etsy API V2" group.
To view this discussion on the web visit https://groups.google.com/d/msg/etsy-api-v2/-/AyJP0zyl-DUJ.

Lacy Rhoades

unread,
May 27, 2012, 6:00:08 PM5/27/12
to etsy-...@googlegroups.com
The "read" endpoints must be established first, and then work can proceed with the "write" endpoints. Neither of these are terribly complicated but as you can see, neither is terribly trivial either.

I understand about your "editing perspective" concern. Right now the plan is that the Translations themselves will be their own discrete resource.

Let's say for example a multi-language Seller has a Listing called 45678. Their primary language is English but they support German translations as well.

You can access the data of that listing like this:

GET /listings/45678?language=de

This would give data for all fields of the listing including translatable things like title, description, tags, etc. The content of translatable data corresponds to the language parameter of the request. If for example a title doesn't exist in German even though that's what the requester asked for, the English title would "bleed through" so that the title data is never blank.

To create a Listing you would always need to supply the Seller's primary language preference, but then to update a Listing you could use any language the Seller is enrolled in.

POST /listings/45678?language=en
PUT /listings/45678?language=de

For a more detailed perspective on the data you would be able to access language-specific data like this:

GET /listings/45678/translations/de

This example would give you only the German translations for that listing. If the translations don't exist, blank values would be returned.

You would be able to update the specific translations this way as well:

PUT /listigs/45678/translations/de

Let me know what you think about this. Thanks for your insights.

Lacy

Graeme Grant

unread,
May 28, 2012, 10:31:44 PM5/28/12
to etsy-...@googlegroups.com
Hi Lacy,

The endpoints that we currently use to read private shop data are:

GET /shops/:shop_id/listings/active 
GET /shops/:shop_id/listings/draft 
GET /shops/:shop_id/listings/expired  
GET  /shops/:shop_id/listings/inactive  

Sold Out Items are tracked through the following:

GET   /receipts/:receipt_id/listings   

So, if we were to work with multi-language support, we would be required to make a separate set of calls for every Listing and every language that the shop supports using  GET  /listings/[listing_id]/translations/xx on top of the standard set of calls that we are already making? Will we be able to pass an array of Listing IDs to this endpoint to batch the request? I ask as we have shops with over 3,000 listings and private calls are limited to a maximum of 10,000/day @ 10 CPS - supporting French & German would hit the limit in no time. If the answer is no, is it possible to have this cap increased?

G.



Date: Sun, 27 May 2012 15:00:08 -0700
From: la...@etsy.com

To: etsy-...@googlegroups.com
Subject: Re: Multi-language support in the API coming soon, any questions, ideas or requests?

--
You received this message because you are subscribed to the Google Groups "Etsy API V2" group.
To view this discussion on the web visit https://groups.google.com/d/msg/etsy-api-v2/-/d9Cn3aBydB8J.

Corey Losenegger

unread,
May 29, 2012, 2:18:00 PM5/29/12
to etsy-...@googlegroups.com

Thanks for your thoughts Graeme. On the note of rate limiting, and ease-of-use for that matter, I think it would really help to expose the translations as associations.

For example, to pull english listings with translations you could do something like:

GET /shops/:shop_id/listings/active?language=en&includes=Translations
GET /shops/:shop_id/listings/active?language=en&includes=Translations(de)
GET /shops/:shop_id/listings/draft?language=en&includes=Translations(de,fr)

If you flip it to wanting german listings (which would have possible bleedthrough to english) and then just the english content you could do:

GET /shops/:shop_id/listings/expired?language=de&includes=Translations(en)

Would accessing translations like this make sense in your application?

Thanks,

Corey

To unsubscribe from this group, send email to etsy-api-v2+unsubscribe@googlegroups.com.

Chipit Prom

unread,
May 29, 2012, 2:39:01 PM5/29/12
to etsy-...@googlegroups.com
Corey brings up really good points, especially on rate limiting. I 2nd his motion.

To view this discussion on the web visit https://groups.google.com/d/msg/etsy-api-v2/-/INXfC5L3QvoJ.

To post to this group, send email to etsy-...@googlegroups.com.
To unsubscribe from this group, send email to etsy-api-v2...@googlegroups.com.

Graeme Grant

unread,
May 29, 2012, 4:11:10 PM5/29/12
to etsy-...@googlegroups.com
Hi Corey, 

As an associated resource to the main (english) resource would help. But for it to work, each translation resource would require a culture fileld with the listing_id field to make it identifiable as a unique resource.

Thanks, 

G


Date: Tue, 29 May 2012 11:18:00 -0700
From: close...@etsy.com
To view this discussion on the web visit https://groups.google.com/d/msg/etsy-api-v2/-/INXfC5L3QvoJ.

To post to this group, send email to etsy-...@googlegroups.com.
To unsubscribe from this group, send email to etsy-api-v2...@googlegroups.com.

Lacy Rhoades

unread,
Jun 4, 2012, 6:42:02 PM6/4/12
to etsy-...@googlegroups.com
Graeme; I think you're right. The unique identifier you mention would be the language field. The effective "primary key" of each Translation association would be listing_id + language, where language is one of those IETF language codes ("fr" etc.).

Here is some example JSON for a Listing with the Translations association included..

{
    count: 1,
    results: [
        {
            listing_id: xxxxxxxxx,
            state: "active",
            user_id: xxxxxxxxx,
            category_id: xxxxxxxxx,
            title: "English Title",
            description: "English Description",
...
            Translations: [
                {
                    language: "en-US",
                    title: "English Title",
                    description: "English Description",
                    tags: [
                        "entag1",
                        "entag2"
                    ]
                },
                {
                    language: "de",
                    title: "German Title",
                    description: "German Description",
                    tags: [
                        "detag1",
                        "detag2"
                    ]
                },
                {
                    language: "fr",
                    title: "French Title",
                    description: "French Description",
                    tags: [
                        "frtag1",
                        "frtag2"
                    ]
                }
            ]
        }
    ],
...

Graeme Grant

unread,
Jun 4, 2012, 11:40:27 PM6/4/12
to etsy-...@googlegroups.com
Hi Lacy,

The sample looks good... We can definitely work with this structure. 

Is there any timeline for the release of the Public and Private endpoints?

Many Thanks,

Graeme


Date: Mon, 4 Jun 2012 15:42:02 -0700

From: la...@etsy.com
To: etsy-...@googlegroups.com
Subject: Re: Multi-language support in the API coming soon, any questions, ideas or requests?

--
You received this message because you are subscribed to the Google Groups "Etsy API V2" group.
To view this discussion on the web visit https://groups.google.com/d/msg/etsy-api-v2/-/VEv7OIBZihsJ.

Lacy Rhoades

unread,
Jun 5, 2012, 10:54:13 AM6/5/12
to etsy-...@googlegroups.com
Hey Graeme;

This week we're working really hard to get the read-only public endpoints out promptly. We realize that these endpoints aren't very exciting on the surface but on the back end we're learning a lot and having to make certain internal decisions that will hopefully make the private endpoints a piece of cake. You can look for a "private endpoints" launch in the next few weeks. After that will come the question of supporting multi-langage searching methods and further expansion of multi-language data into more of the models.

Lacy

Graeme Grant

unread,
Jun 5, 2012, 5:37:00 PM6/5/12
to etsy-...@googlegroups.com
Hi Lacy,

Thanks for sharing. This gives up a time frame that we can plan around... :)

G.


Date: Tue, 5 Jun 2012 07:54:13 -0700

From: la...@etsy.com
To: etsy-...@googlegroups.com
Subject: Re: Multi-language support in the API coming soon, any questions, ideas or requests?

Hey Graeme;

This week we're working really hard to get the read-only public endpoints out promptly. We realize that these endpoints aren't very exciting on the surface but on the back end we're learning a lot and having to make certain internal decisions that will hopefully make the private endpoints a piece of cake. You can look for a "private endpoints" launch in the next few weeks. After that will come the question of supporting multi-langage searching methods and further expansion of multi-language data into more of the models.

Lacy

--
You received this message because you are subscribed to the Google Groups "Etsy API V2" group.
To view this discussion on the web visit https://groups.google.com/d/msg/etsy-api-v2/-/S5f8PFzDx2cJ.
Reply all
Reply to author
Forward
0 new messages