diff --git a/pinterest-sdk/pinterest-sdk-tests.ts b/pinterest-sdk/pinterest-sdk-tests.ts
new file mode 100644
index 000000000..ea1e2d438
--- /dev/null
+++ b/pinterest-sdk/pinterest-sdk-tests.ts
@@ -0,0 +1,17 @@
+///
+
+// Examples from https://github.com/pinterest/pinterest-api-demo
+
+const PIN_FIELDS = "id,name,image[small]";
+const PIN_SCOPE = "read_public, write_public";
+const CALLBACK = (...args: any[]) => {};
+const DATA = { board: "test", note: "test", link: "tets", image_url: "test" };
+
+// Auth
+PDK.login({ scope : PIN_SCOPE }, CALLBACK);
+PDK.logout();
+PDK.getSession();
+
+// Requests
+PDK.request("/pins/", "POST", DATA, CALLBACK);
+PDK.me("boards", { fields: PIN_FIELDS }, CALLBACK);
diff --git a/pinterest-sdk/pinterest-sdk.d.ts b/pinterest-sdk/pinterest-sdk.d.ts
new file mode 100644
index 000000000..a72fe9d89
--- /dev/null
+++ b/pinterest-sdk/pinterest-sdk.d.ts
@@ -0,0 +1,146 @@
+// Type definitions for pinterest-sdk
+// Project: https://assets.pinterest.com/sdk/sdk.js
+// Definitions by: Adam Burmister
+// Definitions: https://github.com/adamburmister/DefinitelyTyped
+declare module PDK {
+
+ enum OAuthScopes { 'read_public', 'write_public', 'read_relationships', 'write_relationships' }
+
+ enum HttpMethod { 'get', 'put', 'post', 'delete' }
+
+ type OauthSession = {
+ accessToken?: string;
+ scope?: string;
+ error?: string;
+ }
+
+ interface LoginOptions {
+ scope: string|OAuthScopes;
+ method?: string;
+ appId?: string;
+ cookie?: boolean;
+ logging?: boolean;
+ session?: OauthSession;
+ }
+
+ interface OAuthRequestParams {
+ accessToken?: string;
+ data?: any;
+ }
+
+ interface InitOptions {
+ /** Your application ID from developer.pinterest.com */
+ appId?: string;
+ cookie?: boolean;
+ logging?: boolean;
+ session?: OauthSession;
+ }
+
+ /**
+ * Get information on the currently authenticated user
+ * @param cb the callback export function to handle the response
+ */
+ export function me(callback: Function): void;
+
+ /**
+ * Get information on the currently authenticated user
+ * @param path the url path
+ * @param cb the callback export function to handle the response
+ */
+ export function me(path: string, callback: Function): void;
+
+ /**
+ * Get information on the currently authenticated user
+ * @param path the url path
+ * @param params the parameters for the request
+ * @param cb the callback export function to handle the response
+ */
+ export function me(path: string, params: Object, callback: Function): void;
+
+ /**
+ * Make an API call to the server
+ *
+ * The path is the only required argument.
+ *
+ * @param path URL path
+ * @param httpMethod HTTP verb
+ */
+ export function request(path: string, httpMethod?: string|HttpMethod, params?: OAuthRequestParams, callback?: Function): void;
+
+ /**
+ * Show user login dialog, and save access token
+ */
+ export function login(options: LoginOptions, callback: Function): void;
+
+ /**
+ * Remove the session of the current user.
+ *
+ * Need to call login to re-connect, unless session is saved on server.
+ */
+ export function logout(callback?: (session: OauthSession) => any): void;
+
+ /**
+ * Get the active session for the current user
+ */
+ export function getSession(): OauthSession;
+
+ /**
+ * Save the user specified session
+ */
+ export function setSession(session: OauthSession, callback?: (session: OauthSession) => any): void;
+
+ /**
+ * Initialize the library.
+ *
+ * Typical initialization enabling all optional features:
+ * ```
+ *
+ *
+ * ```
+ * The best place to put this code is right before the closing
+ * `