Step 1. Get your API key

The Powerdrill Enterprise Open API is currently in . Join our waitlist by filling in the form. Once approved, you’ll receive a confirmation email promptly.

  1. Sign in to Powerdrill with the email that you’ve used to join our waitlist.

  2. Visit https://powerdrill.ai/teamspace.

  3. On the displayed page, enter your organization name, review and accept our Terms of Service and Privacy Notice, then click Continue.

  4. Connect to your credit card as prompted. You will then be directed to the Teamspace page.

    Your credit card won’t be charged unless you purchase a subscription.

  5. Navigate to the API tab, click + API access key to generate an API key, and make sure to save it securely, as it will only be displayed once on the Powerdrill platform.

    Keep your API key SECRET. Never share it or include it in client-side code, such as browsers or apps. For production use, ensure all requests are routed through your backend server, where the API key can be securely accessed from an environment variable or a key management service.

Step 2. Create a dataset and a data source

This step is optional but highly recommended, as it allows you to receive insights tailored to your own data.

Data sources are the data you upload to Powerdrill for embedding, indexing, knowledge extraction, and vectorized storage and retrieval, while datasets are collections of data sources that help organize and categorize them.

You can create data sources and datasets in two ways:

  • Method 1: Create a dataset first, then add data sources to it.

  • Method 2: Upload data sources directly without specifying a dataset, and Powerdrill will automatically create a default dataset for them.

  1. Make a request to POST /v1/datasets endpoint to create a dataset.

    Example request:

    Replace $PD_API_KEY with the API key you’ve obtained in Step 1.

    Example response:

    {
        "code": 0,
        "data": {
            "id": "cm3my37en3q36017q7x3hyyf4"
        }
    }
    
    

    Obtain the id value (dataset ID) from the response and save it for later use.

  2. Make a request to the POST /v1/datasets/{datasetId}/datasources endpoint.

    Example request:

    When making a request:

    • Replace the datasetId value with the ID of the dataset you’ve created in the previous sub-step.

    • Specify either url or fileKey, but not both. Use url to upload a file through a publicly accessible URL. For privately accessible files, use fileKey (this feature will be supported soon).

    Example response:

    {
        "code": 0,
        "data": {
            "id": "cm3myfsfc03jn011csb8wah6p",
            "datasetId": "cm3my37en3q36017q7x3hyyf4",
            "name": "test.pdf",
            "fileName": "test.pdf",
            "type": "FILE",
            "status": "pending"
        }
    }
    
    

    Repeat this sub-step to create multiple data sources in the same dataset.

When the data source created,

Step 3. Create a session

To create a session, make a request to the POST /v1/sessions endpoint. Sessions are essential for running jobs on Powerdrill, as each job must be linked to a session using its session ID.

Example request:

When making a request:

  • Replace $PD_API_KEY with the API key you’ve obtained in Step 1.

  • Since this topic covers running a general job and no data agent is used, set the x-pd-api-agent-id header to GENERAL (uppercase).

Example response:

{
    "code": 0,
    "data": {
        "id": "4440ab38-3df0-465b-a66c-bf6acb0f1bc2"
    }
}

Obtain the id value (session ID) from the response and save it for use in the following step.

Step 4. Create a job

Now, after you’ve prepared a session and probably a dataset stuffed with data sources, you can create a job to start conversing with Powerdrill.

For the definition of job, see What Is Job?.

Make a request to the POST /v1/jobs endpoint.

Powerdrill provides the ability to stream responses, controlled by the stream parameter. For more details about how to understand the streaming mode, see Streaming.

  • If stream is set to true, streaming is enabled.

  • If stream is set to false, streaming is disabled.

Example request:


When making a request:

  • Replace $PD_API_KEY with the API key you’ve obtained in Step 1.

  • Since this topic covers running a general job and no data agent is used, set the x-pd-api-agent-id header to GENERAL (uppercase).

  • Replace the sessionId value with the ID of the session you’ve created in Step 3.

  • To enable Powerdrill to retrieve information from your own data and provide responses specific to it, set the datasetId to the ID of the dataset obtained in Step 2.

More to know

For each new organization, Powerdrill Enterprise offers 500 general jobs for free. After the free quota is consumed, to run more general jobs, you must subscribe to Powerdrill Enterprise via the POST /v1/subscriptions endpoint.

Sample request:

Example response:

{
    "code": 0,
    "data": {
        "id": "sub-cfgdsagdgsfa45232",
        "paymentMode": "ONE_TIME",
        "tier": "TIER1",
        "targetId": "team-sadgtatcafstagdsagfas",
        "targetType": "TEAM_WORKSPACE_CAPACITY",
        "curPeriodStartTime": "2019-08-24T14:15:22.123Z",
        "curPeriodEndTime": "2019-08-24T14:15:22.123Z",
        "status": "incomplete_checkout"
    }
}

When making a request:

  • Replace $PD_API_KEY with the API key you’ve obtained in Step 1.

  • Set targetID to your team/project ID, targetType to RPOJECT_GENERAL_MODE_PLAN, tier to your desired tier. For more information about the resources provided by each tier, see Pricing plans for general mode.

To check whether your subscription is active, make a request to the GET /v1/subscriptions/{subscriptionId} endpoint.

Example request:

Example response:

{
    "code": 0,
    "data": {
        "id": "sub-cfgdsagdgsfa45232",
        "paymentMode": "ONE_TIME",
        "tier": "TIER1",
        "targetId": "team-sadgtatcafstagdsagfas",
        "targetType": "TEAM_WORKSPACE_CAPACITY",
        "curPeriodStartTime": "2019-08-24T14:15:22.123Z",
        "curPeriodEndTime": "2019-08-24T14:15:22.123Z",
        "status": "active"
    }
}

Check the value of the status field. Value active indicates the subscription is currently active. Other possible values are:

  • incomplete_checkout: The payment is pending.

  • past_due: The subscription is overdue but within the grace period.

  • fail: Subscription failed.