Button Create API
The Create API from Button — 2 operation(s) for create.
The Create API from Button — 2 operation(s) for create.
openapi: 3.1.0
info:
title: billing-api Accounts Create API
version: '4'
description: Retrieve billing accounts and affiliate commission transactions across currencies.
servers:
- url: https://api.usebutton.com/v1/affiliation
security:
- sec0: []
tags:
- name: Create
paths:
/create/:
post:
summary: Generate a Shortlink
description: Generate and return a Button-templated shortlink that redirects to the URL destination specified. This link can then be used by a Creator to link a product and make attributed purchases.
operationId: generate-a-brand-shortlink
requestBody:
content:
application/json:
schema:
type: object
required:
- link_url
- btn_pub_ref
properties:
link_url:
type: string
description: The target destination URL, such as `https://storeurl.com/products?queryparam=tag12345`.
btn_pub_ref:
type: string
description: A Publisher reference value (e.g. a tracking ID) that can be used to associate any value with any downstream Brand activity such as orders, etc. This value will be passed back to you in reporting. String with a maximum length of 512.
btn_pub_user:
type: string
description: Your user's unique identifier. Typically a user ID or a stable hash of one. This value will be utilized for reporting performance back to you. Must be a string between 1 and 255 characters long in the ASCII range [0x21-0x7E].
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"meta\": {\n \"status\": \"ok\"\n },\n \"object\":{\n \"short_url\": \"https://o.bttn.io/1234ABCDE\",\n \"url\": \"https://r.bttn.io?btn_url=https%3A%2F%2Fmybrand.com%2Fproducts%3Ftag%3Dtag12345&btn_pub_user=your-user-id&btn_pub_ref=your-publisher-reference&btn_ref=org-XXX\"\n }\n}"
schema:
type: object
properties:
meta:
type: object
properties:
status:
type: string
example: ok
object:
type: object
properties:
short_url:
type: string
example: https://o.bttn.io/1234ABCDE
url:
type: string
example: https://r.bttn.io?btn_url=https%3A%2F%2Fmybrand.com%2Fproducts%3Ftag%3Dtag12345&btn_pub_user=your-user-id&btn_pub_ref=your-publisher-reference&btn_ref=org-XXX
'401':
description: '401'
content:
application/json:
examples:
Result:
value: "{\n \"meta\": {\n \"status\": \"error\"\n },\n \"error\": {\n \"message\": \"Invalid api_key\"\n }\n}"
schema:
type: object
properties:
meta:
type: object
properties:
status:
type: string
example: error
error:
type: object
properties:
message:
type: string
example: Invalid api_key
'404':
description: '404'
content:
application/json:
examples:
Result:
value: "{\n \"meta\": {\n \"status\": \"error\"\n },\n \"error\": {\n \"message\": \"could not create shortlink\",\n }\n}"
deprecated: false
x-readme:
code-samples:
- language: curl
code: "curl https://api.usebutton.com/v1/shortlink/create \\\n -X POST \\\n -u YOUR_API_KEY: \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"link_url\": \"https://mybrand.com/products?tag=tag12345\",\n \"btn_pub_ref\":\"your-publisher-reference\",\n \"btn_pub_user\": \"your-pub-user-value\"\n }'"
samples-languages:
- curl
tags:
- Create
/create:
post:
summary: Generate a Button Shortlink for an Amazon URL
description: 'Generate and return a Button-templated shortlink that redirects to an Amazon page. This link can then be used by a Creator to link an Amazon product and make attributed purchases.
NOTE: Please reach out to your Button representative after configuring this on your end, as we will need to add your organization to an allowlist to fully enable functionality.'
operationId: generate-a-shortlink
requestBody:
content:
application/json:
schema:
type: object
required:
- link_url
- btn_pub_user
properties:
link_url:
type: string
description: The target destination URL, such as `https://amazon.com/products?tag=tag12345`.
btn_pub_user:
type: string
description: Your user's unique identifier. Typically a user ID or a stable hash of one. This value will be utilized for reporting performance back to you. Must be a string between 1 and 255 characters long in the ASCII range [0x21-0x7E].
btn_pub_ref:
type: string
description: A Publisher reference value (e.g. Amazon tracking ID) that can be used to associate any value with any downstream Brand activity such as orders, etc. This value will be passed back to you in reporting. String with a maximum length of 512.
responses:
'200':
description: '200'
content:
application/json:
examples:
Result:
value: "{\n \"meta\": {\n \"status\": \"ok\"\n },\n \"object\":{\n \"short_url\": \"https://amzlink.to/1234ABCDE\",\n \"url\": \"https://r.amzlink.to?btn_url=https%3A%2F%2Famazon.com%2Fproducts%3Ftag%3Dtag12345&btn_pub_user=your-user-id&btn_pub_ref=your-publisher-reference&btn_ref=org-XXX\"\n }\n}"
schema:
type: object
properties:
meta:
type: object
properties:
status:
type: string
example: ok
object:
type: object
properties:
short_url:
type: string
example: https://amzlink.to/1234ABCDE
url:
type: string
example: https://r.amzlink.to?btn_url=https%3A%2F%2Famazon.com%2Fproducts%3Ftag%3Dtag12345&btn_pub_user=your-user-id&btn_pub_ref=your-publisher-reference&btn_ref=org-XXX
'401':
description: '401'
content:
application/json:
examples:
Result:
value: "{\n \"meta\": {\n \"status\": \"error\"\n },\n \"error\": {\n \"message\": \"Invalid api_key\"\n }\n}"
schema:
type: object
properties:
meta:
type: object
properties:
status:
type: string
example: error
error:
type: object
properties:
message:
type: string
example: Invalid api_key
'404':
description: '404'
content:
application/json:
examples:
Result:
value: "{\n \"meta\": {\n \"status\": \"error\"\n },\n \"error\": {\n \"message\": \"could not create shortlink\",\n }\n}"
deprecated: false
x-readme:
code-samples:
- language: curl
code: "curl https://api.usebutton.com/v1/shortlink/create \\\n -X POST \\\n -u YOUR_API_KEY: \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"link_url\": \"https://amazon.com/products?tag=tag12345\",\n \"btn_pub_ref\":\"your-publisher-reference\",\n \"btn_pub_user\": \"your-pub-user-value\"\n }'"
samples-languages:
- curl
tags:
- Create
components:
securitySchemes:
sec0:
type: http
scheme: basic