b00st-api


b00st api logo

b00st-api

Endpoints to start, stop, analyze reports, pay, get help, dig into howtos, and manage your account.

Flask view function names should correspond 1:1 with their respective endpoint names, as highlighted above.

Functions

def account()

/account

Add, view and remove authorized campaign actors from a B00ST campaign.

def docs()

/ documentation page

Render the documentation page.

def help()

/help

Get a basic response email with an overview of available B00ST endpoints.

def howto()

/howto

Get a detailed response email with links to specific how-tos and FAQ sections.

def pay()

/pay

Pay for a campaign and see past invoices.

Input Schema

{
    "b00st_id": `str, len(str) == 8`,
    "campaign_amount": `int or float > 49.99`,
    "email": "<example@example.com>"
}

Output Schema

{
    "payment_url": `str`,
}

Notes

The url returned includes a receipt-unique B00ST id and other metadata to generate a payment form at that url.

⚠️ Don't alter these query parameters or the receipt submission may fail. ⚠️

In particular, you are able to generate as many links as you'd wish for one campaign. For example, a $2500 campaign could be split into five receipts of $500 each.

def report(b00st_id: Optional[str] = None)

/report

Get and update summary metrics report on demand.

GET requests

Retrive the latest data for all campaigns given no b00st_id

POST requests

Update and retrive the latest data for all campaigns. This requires special permissions for your authorization token. If b00st_id is specified and present returns data for just that campaign, however runs the update pipeline for all.

Output

Output format should be identical for both POST and GET requests.

{
    "<campaign_b00st_id>": {
        "123434343": {
            "spend": 42.42,
            "cpc": .4242,
            "cpm": 4.2,
            "ctr": 4.2
        }
    },
    ...
}

Inputs

None. As with outputs, both GET and POST requests are identical in-use.

ℹ️ Ad metrics are reported on the following window schedules (from our providers): a 28-day window for spend and 7-day window for cpc, ctr, and cpm. ℹ️

def start()

/start POST

Initiate a new campaign. This method returns an fbid string as a JSON attribute, if successful.

In particular, successfully initializing a new campaign includes appropriate metadata generation and platform ad campaign configuration setups, stored in their respective firestore collections.

Upon successful metadata and configuration setup, the full ad campaign is sent to staging.

Note: The staging happens asynchronously such that this method will return prior to its completion. Once it's completed, it will notify the default notification Pub/Sub topic.

Initiate campaign

Using curl, simply send a post request to the endpoint.

curl -X POST https://api.b00st.com/start

Parameters

None

Return codes

  • 200: { "fbid": "" }
  • 400: ""
  • 500: "Server error."

Where possible error_message and fbid are dynamically determined during request processing.

def stop(b00st_id: str)

/stop

Stop a currently running campaign.

Input Schema

There are no request body inputs for this function, as the b00st_id parameter should point to the campaign for modification.

Output Schemas

There are no response body outputs for this function. A successfully deleted campaign includes a response with 'success' in it.

def upload_ping()

Ping the uploader service.

def verify_password(username, password)