Introduction
PanadaData provides high performance fake data generation.
Testing your application with realistic data is an important step in creating a successful product. Quite often you can’t actually use production data for your (performance) testing. This is where we come in. We can generate arbitrary amounts of high quality testing data to your specifications. Either access the APIs directly or even download generated data for easy offline ingestion. This is especially useful for system which are not connected to the internet for security reasons. The data is generated in a convenient JSON dump which you can import in pretty much any language!
If you need a custom data format or are missing a datatype, please don’t hesitate to get in touch!
Test drive the future of your application!
Noteworthy updates
- Summer 2022 rewrote parts of the backend, switched hosting, improve performance
- 5/1/18 some bugfixes on the backend
- 4/7/17 new backend implementation (now using golang): about 15x faster data generation
- 3/17/17 initial release
Getting started
Hello world
{
"count":5,
"fields":[
{"name":"Name","type":"name"},
{"name":"Age","type":"integer","min":0,"max":100}
]
}
Let’s generate our first row of data. We’re going to use curl for this. We need to tell the enginge what kind of fields we want to have and how many rows we want.
The way to do that is to create a POST body with the options as simple JSON:
We’re just going to have it create 5 rows of names and random ages. Let’s use CURL to actually request the rows:
curl -H "Content-Type: application/json" -X POST --data "@testbody" https://data.panadadata.com/generate
This will give us our 5 rows:
[["Taylor,Lisa F.",13],["Quilty,Emma R.",11],["Martinez,Edgar F.",16],["Jung,Brendan A.",19],["Koivu,Jane W.",10]]
Examples
Downloading test data as a file
Downloading test data as a file for later or offline use is pretty straightforward. You just call the API directly and save the data you get. Here’s a simple example:
curl -H "Content-Type: application/json" \
-X POST \
--data '{"count":10000,"fields":[{"name":"Name","type":"name"},{"name":"Age","type":"integer"}],"headers":false}' \
https://data.panadadata.com/generate \
-o 10kdata.json
This will give us 10k rows into 10kdata.json.
Accessing the API directly
Integrating the API directly into your program can be as simple as this:
require 'rest-client'
payload = '{"count":"10","fields":[{"name":"Name","type":"name"}]}'
response=RestClient.post("https://data.panadadata.com/generate", payload,headers={content_type: :"application/json", accept: :json})
data=JSON.parse(response.body)
Request builder
Number of rows | |||
Return headers | |||
Fields | |||
---|---|---|---|
Name | Type | ||
Name | Type | ||
Documentation
General Options
count:integer
```json
{ "count":42 }
```
The number of rows to be generated. Currently limited to 1000
headers:boolean
```json
{ "headers":false}
```
Output the field names as first row, defaults to false.
fields:array
{
"fields":[
{"name":"Name","type":"name"},
{"name":"Age","type":"integer","min":0,"max":100}
]
}
Array of column definitions. See below for details.
Field Options
{
"fields":[
{"type":"string"}
]
}
The only required field is type. If you have enabled namedfields
or headers
, name
also becomes required.
name:string
{
"fields":[
{"name":"something","type":"string"},
{"name":"stuff","type":"string"}
]
}
Name of the returned field. Requried if either namedfields
or headers
are enabled.
type:string
{
"count":1,
"namedfields":true,
"headers":true,
"fields":[
{"name":"city","type":"city"},
{"name":"color","type":"color"},
{"name":"company","type":"company"},
{"name":"float","type":"float"},
{"name":"integer","type":"integer"},
{"name":"mission","type":"mission"},
{"name":"name","type":"name"},
{"name":"phone","type":"phone"},
{"name":"product","type":"product"},
{"name":"ssn","type":"ssn"},
{"name":"state","type":"state"},
{"name":"street","type":"street"},
{"name":"string","type":"string"},
{"name":"title","type":"title"},
{"name":"zip","type":"zip"},
]
}
Type of the data to be generated into this column. As indicated some fields accept one of these options:
- Min: int mininum
- Max: int maximum
- Options: Array of possible values
- Num: int number of entities to create
Fields can be one of the following:
- Brand Brand generates brand name
- Character Character generates random character in the given language
- Characters Characters generates from 1 to 5 characters in the given language. Accepts: Num
- City City generates random city
- Color Color generates color name
- Company Company generates company name
- Continent Continent generates random continent
- Country Country generates random country
- CreditCardNum CreditCardNum generated credit card number according to the card number rules
- CreditCardType CreditCardType returns one of the following credit values: VISA, MasterCard, American Express and Discover
- Currency Currency generates currency name
- CurrencyCode CurrencyCode generates currency code
- Day Day generates day of the month
- Digits Digits returns from 1 to 5 digits as a string. Accepts: Num
- DomainName DomainName generates random domain name
- DomainZone DomainZone generates random domain zone
- EmailAddress EmailAddress generates email address
- EmailBody EmailBody generates random email body
- EmailSubject EmailSubject generates random email subject
- Enum Choose random entry from an array passed in as “Option”:[“value1”,“value2”,…]
- FemaleFirstName FemaleFirstName generates female first name
- FemaleFullName FemaleFullName generates female full name it can occasionally include prefix or suffix
- FemaleFullNameWithPrefix FemaleFullNameWithPrefix generates prefixed female full name if prefixes for the given language are available
- FemaleFullNameWithSuffix FemaleFullNameWithSuffix generates suffixed female full name if suffixes for the given language are available
- FemaleLastName FemaleLastName generates female last name
- FemalePatronymic FemalePatronymic generates female patronymic
- FirstName FirstName generates first name
- FullName FullName generates full name it can occasionally include prefix or suffix
- FullNameWithPrefix FullNameWithPrefix generates prefixed full name if prefixes for the given language are available
- FullNameWithSuffix FullNameWithSuffix generates suffixed full name if suffixes for the given language are available
- Gender Gender generates random gender
- GenderAbbrev GenderAbbrev returns first downcased letter of the random gender
- HexColor HexColor generates hex color name
- HexColorShort HexColorShort generates short hex color name
- IPv4 IPv4 generates IPv4 address
- IPv6 IPv6 generates IPv6 address
- Industry Industry generates industry name
- JobTitle JobTitle generates job title
- Language Language generates random human language
- LastName LastName generates last name
- Latitude Latitude generates latitude (from -90.0 to 90.0)
- LatitudeDegrees LatitudeDegrees generates latitude degrees (from -90 to 90)
- LatitudeDirection LatitudeDirection generates latitude direction (N(orth) o S(outh))
- LatitudeMinutes LatitudeMinutes generates latitude minutes (from 0 to 60)
- LatitudeSeconds LatitudeSeconds generates latitude seconds (from 0 to 60)
- Longitude Longitude generates longitude (from -180 to 180)
- LongitudeDegrees LongitudeDegrees generates longitude degrees (from -180 to 180)
- LongitudeDirection LongitudeDirection generates (W(est) or E(ast))
- LongitudeMinutes LongitudeMinutes generates (from 0 to 60)
- LongitudeSeconds LongitudeSeconds generates (from 0 to 60)
- MaleFirstName MaleFirstName generates male first name
- MaleFullName MaleFullName generates male full name it can occasionally include prefix or suffix
- MaleFullNameWithPrefix MaleFullNameWithPrefix generates prefixed male full name if prefixes for the given language are available
- MaleFullNameWithSuffix MaleFullNameWithSuffix generates suffixed male full name if suffixes for the given language are available
- MaleLastName MaleLastName generates male last name
- MalePatronymic MalePatronymic generates male patronymic
- Model Model generates model name that consists of letters and digits, optionally with a hyphen between them
- Month Month generates month name
- MonthNum MonthNum generates month number (from 1 to 12)
- MonthShort MonthShort generates abbreviated month name
- Paragraph Paragraph generates paragraph
- Paragraphs Paragraphs generates from 1 to 5 paragraphs. Accepts Num
- Password Password generates password with the length from atLeast to atMOst charachers, allow* parameters specify whether corresponding symbols can be used
- Patronymic Patronymic generates patronymic
- Phone Phone generates random phone number using one of the formats format specified in phone_format file
- Product Product generates product title as brand + product name
- ProductName ProductName generates product name
- Sentence Sentence generates random sentence
- Sentences Sentences generates from 1 to 5 random sentences. Accepts Num
- SimplePassword SimplePassword is a wrapper around Password, it generates password with the length from 6 to 12 symbols, with upper characters and numeric symbols allowed
- State State generates random state
- StateAbbrev StateAbbrev generates random state abbreviation
- Street Street generates random street name
- StreetAddress StreetAddress generates random street name along with building number
- Title Title generates from 2 to 5 titleized words
- TopLevelDomain TopLevelDomain generates random top level domain
- UseExternalData UseExternalData sets the flag that allows using of external files as data providers (fake uses embedded ones by default)
- UserAgent UserAgent generates a random user agent.
- UserName UserName generates user name in one of the following forms first name + last name, letter + last names or concatenation of from 1 to 3 lowercased words
- WeekDay WeekDay generates name ot the week day
- WeekDayShort WeekDayShort generates abbreviated name of the week day
- WeekdayNum WeekdayNum generates number of the day of the week
- Word Word generates random word
- Words Words generates from 1 to 5 random words. Accepts Num
- Year Year generates year using the given boundaries
- Zip Zip generates random zip code
Contact
Send us an email:
Privacy
PanadaData respects privacy and as a result we are not collecting any identifying information or usage information of the API itself.
Cookies
PanadaData (“we” or “us” or “our”) may use cookies, web beacons, tracking pixels, and other tracking technologies when you visit our website panadadata.com, including any other media form, media channel, mobile website, or mobile application related or connected thereto (collectively, the “Site”) to help customize the Site and improve your experience.
We reserve the right to make changes to this Cookie Policy at any time and for any reason. We will alert you about any changes by updating the “Last Updated” date of this Cookie Policy. Any changes or modifications will be effective immediately upon posting the updated Cookie Policy on the Site, and you waive the right to receive specific notice of each such change or modification.
You are encouraged to periodically review this Cookie Policy to stay informed of updates. You will be deemed to have been made aware of, will be subject to, and will be deemed to have accepted the changes in any revised Cookie Policy by your continued use of the Site after the date such revised Cookie Policy is posted.
What are cookies?
A “cookie” is a string of information which assigns you a unique identifier that we store on your computer. Your browser then provides that unique identifier to use each time you submit a query to the Site. We use cookies on the Site to, among other things, keep track of services you have used, record registration information, record your user preferences, keep you logged into the Site, facilitate purchase procedures, and track the pages you visit. Cookies help us understand how the Site is being used and improve your user experience.