Skip to content
Getting started

Build your first query in 5 minutes

No credit card, no waiting. A free key gets you a sandbox with 100 test credits — enough to run every example on this page.

  1. 1

    Get your API key

    Go to openappend.com/start, enter your email, and click Create my key. You’ll see your key instantly — it starts with oa_test_. Test keys hit a sandbox and never charge you; when you’re ready you’ll generate a live key (oa_live_) and buy prepaid credits.

    Save it somewhere safe — you’ll use it on every request:

    bash
    export OA_KEY="oa_test_<your_key_here>"
    
  2. 2

    Count peopleFREE

    Say you want to know how many homeowners in California are 30–50 years old. Count them first — it’s free.

    POST/v1/people/countFREE
    requestbash
    curl -X POST https://api.openappend.com/v1/people/count \
      -H "Authorization: Bearer $OA_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "filters": {
          "state": "CA",
          "home_owner": true,
          "age": { "gte": 30, "lte": 50 }
        }
      }'
    
    responsejson
    {
      "data": { "count": 847000 },
      "meta": {
        "credits_used": 0,
        "credits_remaining": 100,
        "request_id": "req_abc123"
      }
    }
    

    No charge — you just qualified an audience of 847,000 people.

  3. 3

    Search without revealingFREE

    See the record shape and field names before you spend anything. Contact info stays gated.

    POST/v1/people/searchFREE
    requestbash
    curl -X POST https://api.openappend.com/v1/people/search \
      -H "Authorization: Bearer $OA_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "filters": {
          "state": "CA",
          "home_owner": true,
          "age": { "gte": 30, "lte": 50 }
        },
        "reveal": false,
        "limit": 10
      }'
    
    responsejson
    {
      "data": [
        {
          "id": "person_xyz123",
          "first_name": "Jane",
          "last_name": "Smith",
          "state": "CA",
          "home_owner": true,
          "age": 38,
          "phones_count": 2,
          "emails_count": 1
        }
        // ... 9 more records
      ],
      "meta": {
        "total": 847000,
        "returned": 10,
        "credits_used": 0,
        "credits_remaining": 100,
        "request_id": "req_def456"
      }
    }
    
  4. 4

    Unlock contact info

    Ready for real phone numbers and emails? Flip reveal: true.

    POST/v1/people/search
    requestbash
    curl -X POST https://api.openappend.com/v1/people/search \
      -H "Authorization: Bearer $OA_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "filters": {
          "state": "CA",
          "home_owner": true,
          "age": { "gte": 30, "lte": 50 }
        },
        "reveal": true,
        "limit": 3
      }'
    
    responsejson
    {
      "data": [
        {
          "id": "person_xyz123",
          "first_name": "Jane",
          "last_name": "Smith",
          "phones": [
            { "number": "+16505551234", "line_type": "mobile", "dnc": false, "rank": 1 },
            { "number": "+16505552345", "line_type": "landline", "dnc": false, "rank": 2 }
          ],
          "emails": ["jane.smith@email.com"]
        }
        // ... 2 more records
      ],
      "meta": {
        "returned": 3,
        "credits_used": 3,
        "credits_remaining": 97,
        "request_id": "req_ghi789"
      }
    }
    
    • Phones are ranked by dialability — phones[0] is your safest bet.
    • Every phone carries a DNC flag: false means safe to call.
    • 3 credits for 3 records — you only pay for what you pull.
  5. 5

    Reverse an email to a phone

    Have Jane’s email but need her phone number? Use the shortcut.

    POST/v1/email-to-phone
    requestbash
    curl -X POST https://api.openappend.com/v1/email-to-phone \
      -H "Authorization: Bearer $OA_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "email": "jane.smith@email.com" }'
    
    responsejson
    {
      "data": {
        "email": "jane.smith@email.com",
        "phones": [
          { "number": "+16505551234", "line_type": "mobile", "dnc": false, "rank": 1 },
          { "number": "+16505552345", "line_type": "landline", "dnc": false, "rank": 2 }
        ]
      },
      "meta": { "credits_used": 1, "credits_remaining": 96, "request_id": "req_jkl012" }
    }
    

    1 credit for a hit. No match, no charge.

Or skip the code
You don’t have to write any of this yourself. Connect openappend to Claude and just ask in plain English — “find homeowners in Dallas between 35 and 55 with a mobile that’s not on the Do-Not-Call list.” See /agents for the 2-minute setup.

Next steps

Try the playground

Build queries with your mouse at /playground — no code, no key required.

Read the full API

/docs covers every field, filter operator, view, and response shape.

Connect to Claude

/agents walks through MCP setup for Claude, LangChain, or n8n.

Go live

Generate an oa_live_ key on /dashboard and buy credits on /pricing.

Common questions

Will I be charged for the test key?

No. Test keys hit a sandbox. All 100 free credits are real — use them to learn the API risk-free.

What if I run out of credits?

Your key stops working on metered calls. Buy more on /pricing — credits never expire.

Is this TCPA-safe?

Every record carries a DNC flag. Filter by dnc: false and you’re only pulling numbers clear of the National Do Not Call Registry.

Can my agent use openappend directly?

Yes — download the MCP server or point it at the remote SSE endpoint. See /agents for setup.