Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

TheAlphamerc/dub-dart

Open more actions menu

Repository files navigation

dub (EXPERIMENTAL)

Dub is link management infrastructure for companies to create marketing campaigns, link sharing features, and referral programs.

For more information, please visit https://dub.co/api

Requirements

Installation & Usage

pub.dev

To use the package from pub.dev, please include the following in pubspec.yaml

dependencies:
  dub: 0.0.3

Github

To use this package from Github, please include the following in pubspec.yaml

dependencies:
  dub:
    git:
      url: https://github.com/thealphamerc/dub-dart.git
      #ref: main

Local development

To use the package from your local drive, please include the following in pubspec.yaml

dependencies:
  dub:
    path: /path/to/dub

Getting Started

Please follow the installation procedure and then run the following:

import 'package:dub/dub.dart';


final api = Dub().getLinksApi();
final analyticsApi = Dub().getAnalyticsApi();
final String workspaceId = 'ws_cluuwcv0r....' // String | The ID of the workspace.

// Create a link
try {
    final response = await api.createLink(
      workspaceId: workspaceId!,
      createLinkRequest: CreateLinkRequest(
        url: 'https://www.google.com',
        externalId: "12345", // Optional
      ),
    );
    print(response);
} catch on DioException (e) {
    print("Exception when calling LinkAPI->createLink: $e\n");
}

// Upsert a link
// Update the link if same URL already exists or create a new link
try {
    final response = await api.upsertLink(
      workspaceId: workspaceId!,
      createLinkRequest: CreateLinkRequest(
        url: 'https://www.google.com',
        externalId: "12345", // Optional
      ),
    );
    print(response);
} catch on DioException (e) {
    print("Exception when calling LinkAPI->upsertLink: $e\n");
}

// Update a link
try {
    final response = await api.upsertLink(
      linkId: 'clv3o9p9q000au1h0mc7r6l63',
      workspaceId: workspaceId!,
      createLinkRequest: CreateLinkRequest(
        url: 'https://www.google.com',
      ),
    );

    // Update a link by its externalId
    final response2 = await api.upsertLink(
      linkId: 'ext_12345',
      workspaceId: workspaceId!,
      createLinkRequest: CreateLinkRequest(
        url: 'https://www.google.com',
      ),
    );
    print(response);
} catch on DioException (e) {
    print("Exception when calling LinkAPI->upsertLink: $e\n");
}

// Retrieve the timeseries analytics for the last 7 days for a link
try {
    final response = await analyticsApi.retrieveAnalytics(
        linkId: 'clv3o9p9q000au1h0mc7r6l63',
        workspaceId: workspaceId,
        interval: '7d',
        event: 'click',
        groupBy: 'timeseries'
      );
    print(response);
} catch on DioException (e) {
    print("Exception when calling AnalyticsAPI->retrieveAnalytics: $e\n");
}

Documentation for API Endpoints

All URIs are relative to https://api.dub.co

Class Method HTTP request Description
AnalyticsApi retrieveAnalytics GET /analytics Retrieve analytics for a link, a domain, or the authenticated workspace.
DomainsApi addDomain POST /domains Add a domain
DomainsApi deleteDomain DELETE /domains/{slug} Delete a domain
DomainsApi listDomains GET /domains Retrieve a list of domains
DomainsApi setPrimaryDomain POST /domains/{slug}/primary Set a domain as primary
DomainsApi transferDomain POST /domains/{slug}/transfer Transfer a domain
DomainsApi updateDomain PATCH /domains/{slug} Update a domain
LinksApi bulkCreateLinks POST /links/bulk Bulk create links
LinksApi createLink POST /links Create a new link
LinksApi deleteLink DELETE /links/{linkId} Delete a link
LinksApi getLinkInfo GET /links/info Retrieve a link
LinksApi getLinks GET /links Retrieve a list of links
LinksApi getLinksCount GET /links/count Retrieve the number of links
LinksApi updateLink PATCH /links/{linkId} Update a link
LinksApi upsertLink PUT /links/upsert Upsert a link
MetatagsApi getMetatags GET /metatags Retrieve the metatags for a URL
QRCodesApi getQRCode GET /qr Retrieve a QR code
TagsApi createTag POST /tags Create a new tag
TagsApi getTags GET /tags Retrieve a list of tags
TrackApi trackCustomer POST /track/customer Track a customer
TrackApi trackLead POST /track/lead Track a lead
TrackApi trackSale POST /track/sale Track a sale
WorkspacesApi createWorkspace POST /workspaces Create a workspace
WorkspacesApi getWorkspace GET /workspaces/{idOrSlug} Retrieve a workspace
WorkspacesApi getWorkspaces GET /workspaces Retrieve a list of workspaces

Documentation For Models

Documentation For Authorization

Authentication schemes defined for the API:

token

  • Type: HTTP Bearer Token authentication. You can create your token from the Dub.co dashboard.

Author

support@dub.co

Morty Proxy This is a proxified and sanitized view of the page, visit original site.